Table of contents
No headings in the article.
Metadata is information about assemblies, modules and types that constitute .NET programs.
In .Net, metadata is a common mechanism that the .NET runtime, compilers and tools all can use. Microsoft .NET uses metadata to describe all types that are used and exposed by a particular .NET assembly.
In this sense, metadata describes an assembly in detail, including descriptions of its identity ( a combination of assembly name, version, culture and public key), the types that it references, the type that it exports and the security requirements for execution. Much richer than a type library, metadata includes descriptions of assembly and modules, classes, interfaces, methods, properties, fields, events, global methods and so forth.
Metadata provided enough information for any runtime, tool or program to find out everything that is needed for component integration. The .Net runtime does not support features such as memory management, debugging, type checking, security management, memory layout and so on without the richness of metadata.
Therefore Metadata is an imp part of .NET so one could safely say there is .NET without metadata.