Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
.NET define un formato de archivo binario, ensamblado, que se usa para describir completamente y contener programas .NET. Los ensamblados se usan para los programas, así como para las bibliotecas dependientes. Un programa .NET se puede ejecutar como uno o varios ensamblados, sin otros artefactos necesarios, más allá de la implementación de .NET adecuada. Las dependencias nativas, incluidas las API del sistema operativo, son una preocupación independiente y no están contenidas en el formato de ensamblado de .NET, aunque a veces se describen con este formato (por ejemplo, WinRT).
Cada componente de la CLI incluye los metadatos de declaraciones, implementaciones y referencias específicas de ese componente. Por lo tanto, los metadatos específicos del componente se conocen como metadatos del componente y se dice que el componente resultante es autodescriptante, de ECMA 335 I.9.1, Componentes y ensamblados.
El formato está totalmente especificado y estandarizado como ECMA 335. Todos los compiladores y entornos de ejecución de .NET usan este formato. La presencia de un formato binario documentado y con poca frecuencia actualizado ha sido una ventaja importante (posiblemente un requisito) para la interoperabilidad. El formato se actualizó por última vez de forma sustantiva en 2005 (.NET Framework 2.0) para dar cabida a genéricos y arquitectura del procesador.
El formato es independiente de la CPU y del sistema operativo. Se ha usado como parte de las implementaciones de .NET que tienen como destino muchos chips y CPU. Aunque el propio formato tiene el patrimonio de Windows, se puede implementar en cualquier sistema operativo. Posiblemente, la opción más importante para la interoperabilidad del sistema operativo es que la mayoría de los valores se almacenan en formato little-endian. No tiene una afinidad específica con el tamaño del puntero de máquina (por ejemplo, 32 bits, 64 bits).
El formato de ensamblado .NET también es muy descriptivo sobre la estructura de un programa o biblioteca determinado. Describe los componentes internos de un ensamblado, específicamente referencias y tipos de ensamblado definidos y su estructura interna. Las herramientas o LAS API pueden leer y procesar esta información para mostrar o tomar decisiones mediante programación.
Formato
El formato binario de .NET se basa en el formato de archivo de Windows PE . De hecho, las bibliotecas de clases de .NET son compatibles con los PE de Windows y aparecen de primera vista como bibliotecas de vínculos dinámicos (DLL) de Windows o ejecutables de aplicaciones (EXE). Esta es una característica muy útil en Windows, donde pueden hacerse pasar por archivos binarios ejecutables nativos y recibir un tratamiento similar (por ejemplo, carga del SO, herramientas PE).
Encabezados de ensamblado de ECMA 335 II.25.1, Estructura del formato de archivo en tiempo de ejecución.
Procesamiento de los ensamblados
Es posible escribir herramientas o API para procesar ensamblados. La información de ensamblado permite tomar decisiones programáticamente en tiempo de ejecución, reescribir ensamblados, proporcionar API IntelliSense en un editor y generar documentación. System.Reflection, System.Reflection.MetadataLoadContexty Mono.Cecil son buenos ejemplos de herramientas que se usan con frecuencia para este propósito.