You are on page 1of 3

Microsoft .

NET Fundamentals --------------------------Common Language Infrastructure: It is a specification defined by Microsoft, Inte l and HP for a programming environment that allows development of architecture-neutral so ftwares in multiple high-level languages. CLI describes standards for the following elem ents 1. Common Type System: It specifies how language-independent types are defined, used and handled at runtime. CTS classifies types (both inbuilt and user-defined) into two categories : (a) Value Type: A variable of value type identifies its actual value. (b) Reference Type : A variable of reference type identifies the location of its value. 2. Common Language Specification : It's a set of rules for implementing language -neutral user-defined types under CLI. The visible aspect of a CLS compliant user-defi ned type can contain only a subset of CTS builtin types which is guaranteed to be supp orted by all programming languages which target CLI. 3. Common Intermediate Language: It is a CPU independent instruction set for imp lementing methods in CLI. A high-level compiler compiles the specified source-code into CIL and then assembles this code to create a portable-executable deployment unit call ed assembly. An assembly contains: (a) Manifest providing information for identifying the assembly and its depen dencies. (b) Meta-Data describing all the types implemented in the assembly. (c) CLI opcodes for the methods implemented in the assembly. (d) Embedded resources included during compilation. 4. Virtual Execution System : It provides the required support to execute CIL co de within CLI assemblies. It creates one or more isolated execution environments called App Domain for a CLI application and provides it with following services at runtime. (a) Locating and loading dependent assemblies. Compiling their methods if nec essary to native-code just in time (JIT) of invocation. (b) Allocating memory-blocks for instances of reference types and reclaiming these blocks when they are no longer referenced (Garbage Collection) (c) Restricting a method's access to the underlying system resources dependin g upon the evidence supplied by its assembly and the permissions granted by the user . 5. Common Standard Libraries : It provides a set of types which encapsulate the underlying system. Organized under System namespace and its sub-namespaces these types s erve as the

platform-adaptation layer for CLI applications and components. These librarie s are classified into following groups: (a) Kernel Profile Libraries which are available on all CLI implementations a nd include (i) Base Class Library : Support for built-in types(System), multithread ing (System.Threading), input and output(System.IO), text processing(Sys tem.Text), general-purpose containers(System.Collections), security management( System.Security) and application configuration (System.Configuration). (ii) Runtime Infrastructure Library : Support for implementing and access ing compilers (System.Runtime.CompilerServices), object persistence(System.Runtime .Serialization) and inter app-domain communication (System.Runtime.Remoting) (b) Compact Profile Libraries which are only available on CLI implementations for a platform with sufficient amount of memory and include (i) Reflection Library(System.Reflection) : Support for accessing type information. (ii) XML Library(System.Xml) : Support for creating and parsing XML docu ments. (iii) Network Library(System.Net) : Support for communicating over networ k and HTTP. (c) Extension Libraries which are only available on CLI implementations for p latforms with required CPU capablilites and include (i) Extension Numerics Library : Support for floating-point and high pre cision numbers. (ii) Extension Array Library : Support for handling multi-dimension array s.

.NET Framework : It's Microsoft's implementation and extension of CLI targeting windows platform. It includes: (1) Microsoft Intermediate Language : It implements the CIL specified by CLI wit h few extra instructions for interop. (2) Common Language Runtime : It implements the VES specified by CLI. Implemente d as a COM component (mscoree.dll) it also provides a mechanism for invoking native(unm anaged) code directly from CIL(managed) code. (3) Framework Class Library : It implements the Common Standard Libraries specif ied by CLI and other types which encapsulate Windows specific objects and services. The extension includes support for windowing(System.Windows.Forms), graphics(System.Drawin g), component design(System.ComponentModel), interoperating with native-code (System.Runti me.InteropServices), data-access or ADO.NET(System.Data), Windows Services(System.ServiceProcess) , web-server applications or ASP.NET(System.Web), accessing MSMQ(System.Messaging) and us ing COM+

component services(System.EnterpriseServices)

Other CLI implementations: (1) Rotor : A shared-source implementation developed by Microsoft targeting MacOS-X and FreeBSD (2) Mono: An opensource implementation sponsored by Novel targeting Linux (3) Portable.NET : An opensource implementation developed by GNU targeting multi ple platforms.