Arquitectura del Common Language Runtime

Slides:



Advertisements
Presentaciones similares
La plataforma .NET David Carmona
Advertisements

Introducción a la plataforma .NET.
Rossy Garita Componentes fundamentales de CLR y
Introducción a Microsoft .NET
Agenda Conceptos Claves.
Programación Visual de Sistemas
Introducción a Microsoft .NET
Introducción a la plataforma .NET.
Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización Entre plataformas Entre lenguajes.
La plataforma .NET David Carmona
Plataforma Microsoft.NET
Interacción Persona Ordenador
Programación e Ingeniería de Software III Informática UNIVERSIDAD AUTÓNOMA DE SINALOA Material Proporcionado por: MC. Gerardo Gálvez Gámez.
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Introducción .NET Framework
Arquitectura del Common Language Runtime Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.
Los ensamblados y el código IL Contenido Módulo ¿Qué es un Ensamblado? El código MSIL.
Introducción a la plataforma .NET Erich Bühler
Clase I Curso Microsoft .NET I.S.F.T. N° 182.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Semana 2.
• SQL Server Integration Services SSIS
INFORMATICA I PROYECTO SIRLA Jorge Walter Sosa Esteban Parra González Juan Camilo Morales.
TEMA 8 Introducción a Windows 2008 Server Msc. Rina Arauz.
Taller de Inteligencia de Negocios SQL Server Integration Services SSIS Sesión 2.
Tipos de aplicaciones en Visual Studio. Índice Introducción Introducción Aplicaciones instaladas Aplicaciones instaladas Aplicaciones Web Aplicaciones.
Introducción Framework 3.0. Introducción Junto con Windows Vista se libera al mercado una serie de tecnologías para desarrolladores de software que cambiarán.
 La web es la información que mueve al Internet.  Los efectos de la red son movidos por una arquitectura de participación.  La innovación surge de.
Lenguajes de programación Web Juan Felipe Muñoz Fernández.
Clasificación del Software Prof. Laura Cardozo. Software Se denomina software, programática, equipamiento lógico o soporte lógico a todos los componentes.
Entrega final de proyecto Software para la gestión de inscripciones en cursos Universidad Nacional de Colombia Maestría en Ingeniería de Sistemas y Computación.
WINE ¿Qué es Wine? Wine es una reimplementación de software libre del API de Windows (Win16 y Win32) para sistemas operativos basados en Unix bajo plataformas.
INTRODUCCIÓN A VB.NET YESENIA ESCOBAR. .NET es un proyecto de Microsoft para crear una nueva plataforma de desarrollo de software con énfasis en transparencia.
 Herramientas de Administración de Bases de Datos  Oracle Universal Installer  Instalación no Interactiva con Archivos de Respuesta  Asistente de.
Web Services en Sakai Universidad Pública de Navarra Daniel Merino Echeverría (Centro Superior de Innovación Educativa)
Introducción al Framework 3.0. Introducción Junto con Windows Vista se liberará al mercado una serie de tecnologías para desarrolladores de software que.
1 LENGUAJES DE PROGRAMACIÓN. Son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. 2.
Nombre José Francisco Luna Jurado Matricula Asignatura
NAVEGADORES WEB.
Introducción a ASP.NET.
INSTALACIÓN DEL SISTEMA C.A.N.O.A.
Portales colaborativos
Tutorial de reportes y estadísticas de EBSCOadmin
ORIENTACION EN OFIMATICA BASICA
Conectividad de Bases de Datos
En la siguiente presentación veremos algunos términos que debemos conocer para iniciar la educación virtual.
Desarrollo Actividad Número 3
Introducción a Visual Studio .NET
Presentamos.
Unidad 1. Conceptos básicos
Es un programa Sistema de gestión de base de datos relacional creado y modificado por Microsoft para uso personal de pequeñas organizaciones. Es un componente.
Organización y Descripción de Archivos
CONOCIMIENTOS PREVIOS TELEMÁTICA
Las herramientas Case Julian madrigal.
Introducción a la plataforma Microsoft .NET
SERGIO DANILO HENAO JONATHAN LANCHEROS 901 JM
Tema 1 El entorno de desarrollo de C#
Fundamentos de Programación
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
Protocolos Protocolos de red.
Conceptos básicos de.NET Explorar el entorno de desarrollo Crear un proyecto Visual Basic.NET Use Visual Studio.NET Acceso a datos Depurar e implantar.
Noviembre18, 2017 Concepción, Chile #sqlsatconce.
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Tema 1 El entorno de desarrollo de C#
Plataforma Clever X-PRO
Programación al lado del servidor
Acceso a bases de datos ADO.NET
Introducción a los sistemas operativos en red
AUTOR: SALGADO ESCOBAR STALIN SEBASTIAN DIRECTOR: ING. JOSE SANCHO
TIPOS Y COMPONENTES DE UN NAVEGADOR
Transcripción de la presentación:

Arquitectura del Common Language Runtime 1/13/2018 12:54 AM Arquitectura del Common Language Runtime Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft

.NET Visual Studio.NET Orquestación .NET Enterprise Servers 1/13/2018 12:54 AM .NET Visual Studio.NET Protocolos abiertos SOAP, SCL, DISCO HTTP, SMTP, XML, WAP, XSD Sus Servicios Internos Su Aplicación y Servicio Web Orquestación .NET Enterprise Servers .Net Framework Otras Aplicaciones usando su servicio Operaciones Windows CE, ME, 2000, .NET Servicios “Building Block” Usuarios Finales Web Services Públicos

Microsoft® .Net Framework Base Classes Data & XML User Interface Common Language Runtime Web Services Orchestration “Bringing them closer.” .NET – Tools and Frameworks; Base Infrastructure – Windows, Servers; Building Block Services; Internet User Experience – on previous slide .NET Framework .NET Enterprise Servers Building Block Services Windows (CE, ME, 2000, and .NET)

Common Language Runtime 1/13/2018 12:54 AM Common Language Runtime Frameworks Base Classes Common Language Runtime IL to native code compilers Execution Support Security GC, stack walk, code manager Class loader and layout

Desarrollos más fáciles 1/13/2018 12:54 AM Desarrollos más fáciles Escribir menos, re-usar más Marco de trabajo amplio, consistente Clases al mismo tiempo que interfaces Desaparece la “plomería” Metadata Proxies transparentes Administración de la memoria Buen soporte a herramientas WYSIWYG Diseñadores y asistentes Depuradores Administradores de perfiles Classes are great within a component, interfaces are better between components Metadata is like COM type libraries Transparent proxies are like remoting stubs Memory management is like addref/release

Desarrollo Simple y Seguro 1/13/2018 12:54 AM Desarrollo Simple y Seguro Sin Registración, instalaciones “cero impacto” Instalación con XCOPY, descarga (download) incremental Versiones lado a lado de componentes compartidos Captura de la versión en la compilación Políticas de administración en tiempo de ejecución Política de seguridad basada en evidencia Tanto en código como en el usuario Origen del código (ubicación) Publicador (clave pública)

Escalabilidad De dispositivos inteligentes a granjas de servidores 1/13/2018 12:54 AM Escalabilidad De dispositivos inteligentes a granjas de servidores Administración de memoria automática Auto configurable Ajuste dinámico “Thread pool” Mensajes asincrónicos Objetos remotos Eventos Versión para dispositivos inteligentes Múltiples SOTRs Las mismas herramientas que para el escritorio

Clientes Web ricos, publicación en Web segura 1/13/2018 12:54 AM Clientes Web ricos, publicación en Web segura Win Forms en el cliente ASP.Net Web Forms en el servidor Se asignan permisos al código Las políticas de seguridad se manejan por evidencias Aplicaciones que pueden iniciar el motor de ejecución Internet Explorer, IIS, SQL Server™, Shell Proveen cierta evidencia Se controla el código que se carga Se relacionan las aplicaciones con procesos

Convergencia de Modelos de Programación COM, ASP, Data Todos los servicios están disponibles Muchos rediseñados Fáciles de usar Escalables API consistente El marco consistente permite un mayor nivel de abstracción Transición gradual desde lo simple hasta el control completo

Múltiples Lenguajes “Common type system” Guías de diseño del marco CLS 1/13/2018 12:54 AM Múltiples Lenguajes “Common type system” Orientado a objetos Se soportan también lenguajes procedurales Es posible además la utilización de lenguajes “por funciones” Guías de diseño del marco CLS Reglas para un alcance amplio Toda la funcionalidad del marco está disponible Más de 15 lenguajes investigados La mayoría son consumidores Muchos pueden extender el marco

Resumen Código Multi-lenguaje, seguro, móvil 1/13/2018 12:54 AM Resumen Código Multi-lenguaje, seguro, móvil Escalable desde dispositivos móviles hasta servidores Versionamiento lado a lado Auto descriptivo Marcos poderosos Modelo de programación simplificado Fuerte integración de las herramientas

Metadata Clave para un modelo de programación simple Generada automáticamente Se almacena con el código en el ejecutable (.dll o .exe) Usa formato COFF existente Por un mecanismo de extensión Almacenado en formato binario Convertible de/a “Schema XML” Convertible de/a librerías de tipos COM

1/13/2018 12:54 AM ¿Qué hay en la Metadata? Descripción de la unidad de instalación (assembly) Identidad: nombre, versión, cultura[, clave pública] Que tipos se exportan De que otros Assemblies depende Permisos de seguridad necesarios para la ejecución Descripción de tipos Nombre, visibilidad, clase base, interfaces implementadas Miembros (métodos, campos, propiedades, eventos, tipos heredados) Atributos personalizados Del usuario Del compilador Del marco

Metadata: Creación y Uso 1/13/2018 12:54 AM Metadata: Creación y Uso Reflection Source Code Serialization (e.g. SOAP) Designers Compiler Other Compiler Debugger Metadata (y código) Type Browser Profiler Proxy Generator Schema Generator XML encoding (SDL o SUDS)

Los compiladores usan la Metadata Par importar datos entre lenguajes Se emite la metadata junto con el código compilado Describe los tipos definidos y los que utiliza Registra los assemblies externos referenciados Registra la información de versión Atributos personalizados Obsoletos Compatibilidad CLS Compilado para depuración Marcadores específicos del lenguaje

Otras herramientas usan Metadata Comportamiento del diseñador Controlado por atributos del usuario Categoría Descripción Extensibilidad del diseñador Atributos de usuario que especifican código a utilizar Convertidores de tipo Editores Los métodos como Servicios Web se marcan por atributos personalizados Visor de tipos

Assemblies Unidad de instalación Versionamiento Límites de seguridad Uno o más archivos, independiente del empaquetado Auto descriptivos a través de metadata (“manifiesto”) Versionamiento Capturado por el compilador Políticas por aplicación y por máquina Límites de seguridad Los Assemblies garantizan permisos Los métodos pueden reclamar prueba que toda la cadena de llamadas tiene permisos adecuados Importación y exportación mediada por tipos Los tipos se nombran relativos a los assemblies

Aplicaciones Las aplicaciones son unidades configurables 1/13/2018 12:54 AM Aplicaciones Las aplicaciones son unidades configurables Uno o más assemblies Archivos o datos específicos por aplicación Los Assemblies se buscan basados en… Su nombre lógico La aplicación que lo carga Las aplicaciones pueden tener versiones privadas de los Assemblies La versión privada se prefiere respecto de la compartida La política de versiones puede ser por aplicación

Common Language Runtime 1/13/2018 12:54 AM Modelo de ejecución VB VC ... Script Native Code Install time Code Gen IL Common Language Runtime “Econo”JIT Compiler Standard JIT Compiler Native Code

El modelo de proceso App. Domain (Datos Compartidos de App. Domain 1/13/2018 12:54 AM El modelo de proceso Datos Compartidos de la clase y código nativo Hilo App. Domain (Datos Compartidos de la clase y código nativo) App. Domain Proceso

Código Administrado Provee... El motor de ejecución provee… 1/13/2018 12:54 AM Código Administrado Provee... Metadata que describe Ubicación de referencias a los objetos Tabla de controladores de excepciones El motor de ejecución provee… Manejo de excepciones Seguridad Manejo automático de la “vida” de los objetos Depuración y perfiles

Control de flujo del Motor 1/13/2018 12:54 AM Control de flujo del Motor Assembly Class Loader Primer referencia al tipo IL to native code compiler Execution Support Managed Native Code Primer llamada a un método Code Managers Security System CPU

Compilando IL a Cód. Nativo 1/13/2018 12:54 AM Compilando IL a Cód. Nativo “Econo” JIT Genera código nativo “no optimizado” El código puede descartarse y regenerarse “Standard” JIT Genera código optimizado Incluye verificación del código IL Generación del código en la instalación Reduce el tiempo de inicio El código nativo tiene control de versión y puede revertir al JIT si hay diferencias

Datos Manejados Disposición provista por el Motor 1/13/2018 12:54 AM Datos Manejados Disposición provista por el Motor Usualmente automática La Metadata puede especificar Orden Empaquetado Disposición explícita El tiempo de vida es manejado por el Motor (GC) Se compacta el área de trabajo Los datos se “mueven” Se actualizan las referencias a los objetos Menos intrusivo que un “fallo de página”

Llamando código “no manejado” Unmanaged Native Code Common Language Runtime “Econo”-JIT Compiler Standard JIT Compiler Managed Native Code

Cruzando los Límites Modo de transición para el manejador de código 1/13/2018 12:54 AM Cruzando los Límites Modo de transición para el manejador de código Las convenciones de llamadas difieren en x86 Rápido, aunque raramente mejor que la búsqueda en la Registry “Marshalling” de datos Las representaciones pueden no coincidir Pueden requerirse punteros, copias o cambios de formato Soporta “marshalling” personalizado El compilador IL a nativo ayuda Transición en línea de código y “marshalling” simple El costo por llamada es muy bajo Más un pequeño costo en la entrada a un procedimiento que puede hacer llamadas fuera de los límites

3 mecanismos Puntero a función “Funciona” “Platform invoke” (p/Invoke) 1/13/2018 12:54 AM 3 mecanismos Puntero a función No hay transición, ni “marshalling” Restricciones rigurosas en el código llamado “Funciona” Transición de modo, sin “marshalling” Todo el trabajo lo realizan las herramientas (VC) El vinculador(Linker) resuelve las referencias El “Class loader” crea manejadores de transición “Platform invoke” (p/Invoke) Transición de modo,”marshalling”

COM Interoperabilidad 1/13/2018 12:54 AM COM Interoperabilidad Usa mecanismos p/Invoke Se mantiene la identidad de los objetos (IUnknown) Interfaces COM creadas automáticamente Los tipos se exportan y registran automáticamente a COM Las bibliotecas de tipos de COM pueden convertirse a metadatas e importarse Muchos tipos de datos pueden manejarse por “marshalling”

Resumen Simple… Código multilenguaje, móvil, seguro 1/13/2018 12:54 AM Resumen Simple… Desarrollo, instalación, administración Código multilenguaje, móvil, seguro Todo el código se compila antes de ser ejecutado ¡No es una “máquina virtual” tradicional! Interoperabilidad completa con código no administrado COM, servicios COM+ 1.0, win32®, DLLs Escalable: de dispositivos móviles hasta granjas de servidores