Sé que es un Windows PE32, pero también sé que la unidad de implementación en .NET es un ensamblado que a su vez tiene un manifiesto y puede estar compuesto por varios módulos administrados.¿Qué es un módulo administrado .NET?
Mis preguntas son:
1) ¿Cómo usted crear varios módulos administrados en la construcción de un proyecto como una librería de clases o una aplicación de consola, etc.
2) ¿Hay una manera de especificar que esto el compilador (a través de las propiedades del proyecto, por ejemplo) para dividir los archivos de código fuente en varios módulos administrados. Si es así, ¿cuál es el beneficio de hacerlo?
3) ¿Los módulos administrados pueden abarcar ensamblajes?
4) ¿Se crean archivos separados en el disco cuando se compila el código fuente o se crean en la memoria y se incrustan directamente en un ensamblaje?
EDIT:
@ Jon:
Para 2): Por lo tanto, no compilación de fuente/edificio en Visual Studio siempre crear un único módulo administrado? Si es así, no entiendo por qué VS no proporciona un mecanismo para hacerlo a pesar del hecho de que .NET admite hacerlo. Acepto que sería inmanejable crear un ensamblaje con módulos de diferentes idiomas. ¿Es esa la única razón por la cual .NET permite crear ensambles de múltiples módulos? Leí en Richter's CLR a través de C# que los módulos también pueden abarcar ensamblajes, y esto puede ayudar a mantener reducidos los tamaños de ensamblaje y reducir la huella de memoria descargando montajes bajo demanda cuando se invoca determinada funcionalidad por primera vez, pero no estoy seguro En cuanto a por qué uno querría abarcar un módulo a través de ensamblajes, ¿por qué no simplemente crear un nuevo ensamblaje cuya implícita crea un nuevo módulo en el proceso? Aún obtendrías los mismos beneficios.
Elemento 4) estaba relacionado con los archivos ".netmodule". Como parte del proceso de compilación VS, no he visto ningún archivo ".netmodule" creado en el directorio obj. Normalmente he notado .pdb, .dll/.exe y un archivo * FileListAbsolute y, por lo tanto, la pregunta sobre si se crean archivos separados para los módulos administrados.
EDIT: @ Jon: Aquí está el extracto de CLR a través de C# (3ª edición) Pg 43: Tal vez estoy leyendo mal esto, pero me suena que un módulo (que es un archivo que pertenece a una asamblea) se puede descargar a pedido.
"Por ejemplo, un conjunto puede constar de varios tipos. Se puede poner los tipos utilizados con frecuencia en un archivo y los tipos de uso menos frecuente en otro archivo. Si el montaje se despliega mediante la descarga a través de Internet, el archivo con los tipos poco utilizados pueden no tener que descargarse nunca al cliente si el cliente nunca accede a los tipos. Por ejemplo, un proveedor de software independiente (ISV) especializado en controles de interfaz de usuario puede elegir implementar tipos de accesibilidad activa en un módulo separado (al satisface los requisitos del logotipo de Microsoft). Solo los usuarios que requieran las características adicionales de accesibilidad requerirían que este módulo se descargue. lleno de
Configura una aplicación para descargar archivos de ensamblaje especificando un elemento codeBase (explicado en el Capítulo 3) en el archivo de configuración de la aplicación.El elemento codeBase identifica una URL que apunta a donde todos los archivos de un ensamblaje se puede encontrar "
@Jon: Gracias por la respuesta. No tengo suficientes caracteres para incluir mis comentarios en este espacio, así que los agregué a la publicación original. Las ideas serían muy apreciadas. –
@Jon: tienes razón. el libro no dice que un módulo puede abarcar ensamblajes. Lo leí mal pero dice que un módulo se puede descargar a pedido. He incluido el extracto de CLR a través de C# (3ª edición) Pg 43 en la publicación original. –