Microsoft® .NET is a set of Microsoft software technologies for connecting information, people, systems, and devices. It enables a high level of software integration through the use of Web services—small, discrete, building-block applications that connect to each other as well as to other, larger applications over the Internet.
The .NET Framework consists of two main parts:
the common language runtime (CLR) and a unified, hierarchical class library that includes a revolutionary advance to Active Server Pages (ASP.NET®), an environment for building smart client applications (Windows Forms), and a loosely-coupled data access subsystem (ADO.NET®).
The Microsoft .NET Framework Software Development Kit (SDK) includes the .NET Framework, as well as everything you need to write, build, test, and deploy .NET Framework applications: documentation, samples, and command-line tools and compilers.
The .NET Framework SDK also provides the .NET Framework class library, which is organized into a single hierarchical tree of namespaces.
At the root is the System namespace, which contains objects (including predefined types, such as classes and interfaces) that can be used from any supported language. System objects, which are contained in Mscorlib.dll, are used by all applications. The .NET Framework class library also includes namespaces for abstract base classes and derived class implementations, including those for file I/O, messaging, networking, and security. You can use these classes as is or derive your own classes from them.
Runtime-based class libraries are organized into hierarchical namespaces, and namespaces are stored in portable executable (PE) files — typically DLL and EXE files. You can have several namespaces — including nested namespaces — in one PE file, and you can split a namespace across multiple PE files.
One or more PE files are combined together to create an assembly, which is a physical unit that can be deployed, version numbered, and reused. The runtime uses assemblies to locate and bind to the referenced types.
Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. An assembly provides the common language runtime with the information it needs to be aware of type implementations. To the runtime, a type does not exist outside the context of an assembly.
Metadata is binary information describing your program that is stored either in a common language runtime portable executable (PE) file or in memory. When you compile your code into a PE file, metadata is inserted into one portion of the file, while your code is converted to Microsoft intermediate language (MSIL) and inserted into another portion of the file. Every type and member defined and referenced in a module or assembly is described within metadata. When code is executed, the runtime loads metadata into memory and references it to discover information about your code's classes, members, inheritance, and so on.
Metadata describes every type and member defined in your code in a language-neutral manner. Metadata stores the following information:
Description of the assembly: Identity (name, version, culture, public key); The types that are exported; Other assemblies that this assembly depends on; Security permissions needed to run. Description of types: Name, visibility, base class, and interfaces implemented; Members (methods, fields, properties, events, nested types).
Attributes: Additional descriptive elements that modify types and members.
To ensure that your managed code is accessible to developers using any programming language, the .NET Framework provides the Common Language Specification (CLS), which describes a fundamental set of language features and defines rules for how those features are used.
Common Language Specification (CLS) compliance generally refers to the claim that CLS rules and restrictions are being followed.