1 / 20

Los ensamblados y el código IL

Los ensamblados y el código IL. Contenido. Módulo ¿Qué es un Ensamblado? El código MSIL. Módulos. En .NET Framework se llama Módulo a un archivo DLL o EXE. Contiene código en Lenguaje Intermedio (IL), metadatos y opcionalmente el manifiesto del Ensamblado ( Assembly ).

kirsi
Download Presentation

Los ensamblados y el código IL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Los ensamblados y el código IL

  2. Contenido • Módulo • ¿Qué es un Ensamblado? • El código MSIL

  3. Módulos • En .NET Framework se llama Módulo a un archivo DLL o EXE. • Contiene código en Lenguaje Intermedio (IL), metadatos y opcionalmente el manifiesto del Ensamblado (Assembly). • Pueden ser de 2 tipos: • Archivos de Recursos. • Archivos de Código compilado.

  4. Ensamblado • Un ensamblado es la unidad mínima (primaria) de distribución, implantación y versionado en .NET • Es autodescriptivo e independiente de la plataforma. • Tiene extensión DLL o EXE (PE) • Compuesto de un manifiesto y de uno o más módulos. • Parecido al código ensamblador, pero de alto nivel. • Todas las aplicaciones .NET generan código MSIL.

  5. Descripción de Tipos Clases Clases Base Interfaces Implementadas Atributos de las Clases Métodos de las Clases MiBiblioteca.DLL Metadata Manifiesto del Assembly Código CompiladoMSIL Nombre Versión Cultura Recursos Otros Assemblies Permisos de Seguridad Tipos Externos Assembly

  6. NETModule • En .NET, existe un tercer tipo de archivo (que no es un ensamblado, sino parte de él). • Se utiliza para conformar un solo ensamblado de varios archivos. • Son archivos con extensión *.netmodule • No se pueden utilizar directamente como ensamblados. • Un módulo no es un ensamblado, sino sólo una pieza para formar uno.

  7. Assemby sencillo Assembly complejo A.netmodule Manifest (No Assembly Metadata) ThisAssembly.dll ThisAssembly.dll Metadata Manifest Manifest MSIL MetaData MetaData MSIL MSIL B.netmodule Resources Resources Manifest (No Assembly Metadata) Metadata MSIL Tipos de Ensamblados

  8. Características de un Assembly • Unidad de distribución • Uno o mas archivos independientemente del empaquetado ( packaging) • Auto descriptivo usando el metadata • Reflection • Versionado • Capturada por el Compilador • Frontera de Seguridad • Contienen permisos de ejecución • Seguridad basada en evidencias • Los métodos pueden demandar pruebas de permisos concedido para todo el proceso de ejecución.

  9. Que es el Metadata? • Describe a un assembly • Identifica: Nombre, versión, Cultura, Llaves publicas • Que tipos son exportados • A que otros assemblys hace referencia • Permisos que se necesitan para la ejecución • Descripción de tipos • Nombre, visibilidad, clases base, interfaces que implementa • Miembros ( métodos, campos, propiedades, eventos, tipos anidados) • Sentencias declarativas • Atributos definido por el usuario • Atributos definidos por el compilador • Atributos definidos por el framework

  10. Manifiest

  11. Global Assembly Cache • Cache a nivel máquina • Almacena assemblies que deben ser compartidos por diferentes aplicaciones • Instalar en GAC solo los assemblies que deben ser compartidos y mantener privados a los que no • Para instalar en GAC un assembly • Utilizar un instalador • Utilizar la herramienta gacutil.exe • Utilizar el Windows Explorer para arrastrar los assemblies al cache

  12. Que son los AppDomains? • Procesos lógicos dentro del CLR • Corren dentro de un proceso del Sistema Operativo • Un proceso del sistema operativo puede contener varios AppDomains • Es mucho mas barato que múltiple procesos del sistema operativo • Mucho menos costoso el intercambio de ejecución • Un assembly y sus tipos son siempre cargados dentro de un AppDomain • Provee una frontera para • Fallos • Tipos • Seguridad

  13. CLR, AppDomains y Assemblies

  14. Assemblies - Aplicaciones .NET • Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios? • El ClassLoader busca en el directorio local (preferido) • Global Assembly Cache (GAC) • Diferentes aplicaciones pueden usar diferentes versiones • Actualizaciones más simples • Desinstalación más simple

  15. Ensamblado

  16. MSIL • Microsoft IntermediateLanguage Es el lenguaje nativo de .NET. • Como su nombre lo indica es el Lenguaje Intermedio entre la aplicación y el procesador. • Independiente al Procesador en el que se vaya a ejecutar. • Parecido al código ensamblador, pero de alto nivel. • Todas las aplicaciones .NET generan código MSIL.

  17. CLR - MSIL

  18. Código MSIL

  19. ILDASM • Herramienta para navegar por el IL de un PE

More Related