InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Conceptos generales .NET
Introducción a .NET
.NET FrameWork
Common Language Runtime - CLR
MSIL - Microsoft Intermediate Language
Metadatos
Assemblies
Librería de clases
Common Type System (CTS)
Common Language Specification (CLS)
También puedes ver ...
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008
Replicación con SQL Server y SQL Server Mobile
Referencia de iconos del examinador de objetos (Object Browser) en Visual Studio.net
Como clonar objetos .net implementando Iclonable
Introducción a .NET
Common Language Runtime - CLR
MSIL - Microsoft Intermediate Language
Assemblies
Librería de clases
Common Type System (CTS)


Metadatos

    En la plataforma .NET se distinguen dos tipos de módulos de código compilado: ejecutables (extensión .exe) y librerías de enlace dinámico (extensión .dll generalmente) Ambos son ficheros que contienen definiciones de tipos de datos, y la diferencia entre ellos es que sólo los primeros disponen de un método especial que sirve de punto de entrada a partir del que es posible ejecutar el código que contienen haciendo una llamada desde la línea de comandos del sistema operativo. A ambos tipos de módulos se les suele llamar ejecutables portables (PE), ya que su código puede ejecutarse en cualquiera de los diferentes sistemas operativos de la familia Windows para los que existe alguna versión del CLR.

    El contenido de un módulo no es sólo MSIL, sino que también consta de otras dos áreas muy importantes: la cabecera de CLR y los metadatos:

  • La cabecera de CLR es un pequeño bloque de información que indica que se trata de un módulo gestionado e indica es la versión del CLR que necesita, cuál es su firma digital, cuál es su punto de entrada (si es un ejecutable), etc.

  • Los metadatos son un conjunto de datos organizados en forma de tablas que almacenan información sobre los tipos definidos en el módulo, los miembros de éstos y sobre cuáles son los tipos externos al módulo a los que se les referencia en el módulo. Los metadatos de cada modulo los genera automáticamente el compilador al crearlo, y entre sus tablas se incluyen[1]:

 

Tabla

Descripción

ModuleDef

Define las características del módulo. Consta de un único elemento que almacena un identificador de versión de módulo (GUID creado por el compilador) y el nombre de fichero que se dio al módulo al compilarlo (así este nombre siempre estará disponible, aunque se renombre el fichero)

TypeDef

Define las características de los tipos definidos en el módulo. De cada tipo se almacena su nombre, su tipo padre, sus modificadores de acceso y referencias a los elementos de las tablas de miembros correspondientes a sus miembros.

MethodDef

Define las características de los métodos definidos en el módulo. De cada método se guarda su nombre, signatura (por cada parámetro se incluye una referencia al elemento apropiado en la tabla ParamDef), modificadores y posición del módulo donde comienza el código MSIL de su cuerpo.

ParamDef

Define las características de los parámetros definidos en el módulo. De cada parámetro se guarda su nombre y modificadores.

FieldDef

Define las características de los campos definidos en el módulo. De cada uno se almacena información sobre cuál es su nombre, tipo y modificadores.

PropertyDef

Define las características de las propiedades definidas en el módulo. De cada una se indica su nombre, tipo, modificadores y referencias a los elementos de la tabla MethodDef correspondientes a sus métodos set/get.

EventDef

Define las características de los eventos definidos en el módulo. De cada uno se indica su nombre, tipo, modificadores. y referencias a los elementos de la tabla MethodDef correspondientes a sus métodos add/remove.

AssemblyRef

Indica cuáles son los ensamblados externos a los que se referencia en el módulo. De cada uno se indica cuál es su nombre de fichero (sin extensión), versión, idioma y marca de clave pública.

ModuleRef

Indica cuáles son los otros módulos del mismo ensamblado a los que referencia el módulo. De cada uno se indica cuál es su nombre de fichero.

TypeRef

Indica cuáles son los tipos externos a los que se referencia en el módulo. De cada uno se  indica cuál es su nombre y, según donde estén definidos, una referencia a la posición adecuada en la tabla AssemblyRef o en la tabla ModuleRef.

MemberRef

Indican cuáles son los miembros definidos externamente a los que se referencia en el módulo. Estos miembros pueden ser campos, métodos, propiedades o eventos; y de cada uno de ellos se almacena información sobre su nombre y signatura, así como una referencia a la posición de la tabla TypeRef donde se almacena información relativa al tipo del que es miembro.

Principales tablas de metadatos

    Nótese que el significado de los metadatos es similar al de otras tecnologías previas a la plataforma .NET como lo son los ficheros IDL. Sin embargo, los metadatos tienen dos ventajas importantes sobre éstas: contiene más información y siempre se almacenan incrustados en el módulo al que describen, haciendo imposible la separación entre ambos. Además, como se verá más adelante, es posible tanto consultar los metadatos de cualquier módulo a través de las clases del espacio de nombres System.Reflection de la BCL como añadirles información adicional mediante atributos (se verá más  adelante)


Inicio | Conceptos generales .NET MSIL - Microsoft Intermediate LanguageConceptos generales .NETAssemblies Versión para imprimir Foros de consulta

 
que gonorrea de pagina por juan pablo gil
Respuesta recibida el [08/04/2008 08:43:15]
manada de gonorreas creen que esta pagina es una chimba pero que hp pescao de pagina cojan jucio manada de malparidos de juan pablo gil para esta chanda de pagina

 
manada de malparidos por carlota
Respuesta recibida el [08/04/2008 08:46:40]
perros hp nosaben ni q hacer con la plata solo hacen cosas sin saber

 
los semilleros por de la cabesona andres ramires
Respuesta recibida el [08/04/2008 08:49:06]
que hubo manadas de gonorreas creen que la paagina es muy chimba o que, los semilleros mandamos hp. esto va para esta perra chanda de pagina

 
Primates...no valoran el conoc... por jef
Respuesta recibida el [21/07/2008 02:27:50]
Primates...no valoran el conocimiento, si supieran que los que nos dan esta información son personas ocupadas q dedican un poco de su tiempo con deseos de q uds mismos aprendan y salgan de la ignorancia....

 
Nunca se debe desestimar el conocimiento por Paola
Respuesta recibida el [25/07/2008 08:55:54]
Por que insultar asi y menospreciar el trabajo de otros?? Me parece que siquieren insultar hagan un foro para eso!!! Pero aqui todo lo que nos dan y brindan a nivel conocimiento es mas que valorable e importante. Asi que simios Abstenerse!!!!!! Muy buena la pagina los felicito a mi en particular me super ayuda!!!! GRACIAS!!!!

 
que lastima por ESTEBAN
Respuesta recibida el [24/09/2008 01:12:01]
que pena que consideren el conocimiento gratuíto con repugnancia. No parecen profesionales quienes san estos canales para esto. felicitaciones, buen sitio

 
Que absurdo por Fulano
Respuesta recibida el [26/09/2008 05:20:19]
Que absurdos comentarios. En pro de la información útil en la inet, bastaría que los borrasen.

El artículo me parece bastante útil, sucinto y aclara varias ideas. Gracias.

 
Homo Habilis Vs Australopithecus por Loso
Respuesta recibida el [06/10/2008 08:09:12]
Me encanta ver, como una subcultura que apenas ha salido de la selva... Intenta volver con total desesperacion..

Un saludo a todos aquellos que dedican su tiempo libre en sacarnos las castañas del fuego.

PD:(Australopithecus transcription)
Grrooarr... Tam, tam, Huiiiiil¡¡¡¡
Unga, Unga... Chof Choff...



 
Hay criaturas para las cuales ... por Pedro m
Respuesta recibida el [16/12/2008 11:21:35]
Hay criaturas para las cuales el conocimiento es un paradigma al cual estan vedados, el insulto es solo una respuesta a la incapacidad de comprender algo un poco mas complejo que lo cotidiano, comparto la opiniòn de otro forista, bastaría eliminar los comentarios de este desadaptado.

 
Aporte por Byron M
Respuesta recibida el [02/11/2009 12:19:11]
Esta es la segunda vez que los datos entregados en esta pagina me salvan para entender la logica del programa en el cual estoy trabajando, muchas gracias a quienes publican esto =)


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Conceptos generales .NET MSIL - Microsoft Intermediate LanguageConceptos generales .NETAssemblies Versión para imprimir

Metadatos
Autor: José Antonio González Seco
Visitas: 8871 Fecha de publicación: 29/09/2006
José Antonio es experto en tecnologias Microsoft. Imparte cursos y conferencias en congresos sobre C# y .NET en Universidades de toda España (Sevilla, Barcelona, San Sebastián, Valencia, Oviedo, etc.) en representación de grandes empresas como Microsoft.




Visitas: 112 | Comentarios: 3 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 813 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 770 | Comentarios: 3 | Archivo: Articulos
Visitas: 3187 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14577 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1503 | Comentarios: 3 | Archivo: Articulos
Visitas: 698 | Comentarios: 2 | Archivo: Articulos
Visitas: 370 | Comentarios: 0 | Archivo: Articulos
Visitas: 2035 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
AYUDA URGENTE PARA CONSULTA ENTRE DOS TABLAS por pepe ... [SQL] 0 15/03/2010
CERTIFICACION CESANTIAS por linda ... [Actualidad] 0 15/03/2010
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 143 26/01/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 62 10/02/2010
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 127 12/01/2010
certificacion cesantias porvenir por martha perez ... [Actualidad] 6 04/03/2010
cerificado fondo horizonte de pensiones y cesantias por carlos fideligno torres herrera ... [Actualidad] 148 18/01/2010
certificado de afiliacion por EDDY ... [Actualidad] 0 14/03/2010
Cursores por nopodes ... [ORACLE] 0 14/03/2010
peticion urgente mi nombre es juan pablo osorio cardona cc 71115218 por juancho ... [Actualidad] 0 14/03/2010
peticion por juancho ... [Actualidad] 0 14/03/2010
estrato de pencion por carlos antonio mateus gomez ... [Actualidad] 0 14/03/2010

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
19/09/2007 Triggers en Transact SQL    forma parte de...Tutorial de Transact SQL
05/07/2007 Consultar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
02/09/2007 Procedimientos almacenados en Transact SQL    forma parte de...Tutorial de Transact SQL
14/05/2007 Fundamentos de Transact SQL    forma parte de...Tutorial de Transact SQL
10/06/2007 Multiples escritorios en Windows XP
22/10/2005 El lenguaje SQL    forma parte de...Tutorial SQL
22/10/2005 Introducción SQL    forma parte de...Tutorial SQL
28/06/2006 Procedimientos almacenados en PL/SQL    forma parte de...Tutorial PL/SQL
11/10/2006 Métodos    forma parte de...Tutorial C#

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]