Metadata Issues


The metadata system is the essential link that bridges the gap between the type system and the execution engine. Currently, three significant issues exist in regard to the metadata facilities in many software architectures:

  • Traditionally, metadata has been found in language-specific files, but providing interoperability between such files across language boundaries is almost impossible . Also, compilers routinely remove most of this information when the source files are compiled. As a consequence, executable files often have little or no metadata about their types available at runtime.

  • In many systems, a component's metadata is often not stored with the component. Rather, metadata may be stored in auxiliary files, such as Interface Definition Language (IDL) files, interface repositories, implementation repositories, type libraries, or the Registry. This situation leads to versioning and inconsistency problems between components and their metadata descriptions.

  • Metadata facilities remain primitive. Most allow developers to specify the syntax of an interface but not its semantics. Proof of this problem lies with the number of IDL "extensions" that can be found in many systems, such as TINAC's Object Definition Language (ODL), an extension to CORBA's IDL for use in the telecommunications domain.

It is important that developers understand that CLR compilers describe the types they produce with metadata, for two major reasons:

  • Metadata permits types defined in one language to be used in another language. Metadata and the common type system are the facilities that help ensure language interoperability in the CLR.

  • The execution engine requires metadata to manage objects. Managing objects includes services such as the layout of objects in memory, memory management, and security.

Although metadata is stored in files in a binary format, developers do not need to understand or program against its binary layout; instead, a number of types and methods are available for reading and writing metadata. These facilities represent a higher level of abstraction that make the metadata facilities more intuitive to developers and provide a layer of insulation against the underlying format.



Programming in the .NET Environment
Programming in the .NET Environment
ISBN: 0201770180
EAN: 2147483647
Year: 2002
Pages: 146

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net