04-04-2013, 04:34 PM
Overview of the Microsoft .Net
Microsoft.doc (Size: 1.55 MB / Downloads: 22)
Architecture
Microsoft .NET is a software that connects information, people, systems and devices. It spans clients, servers and developer tools. It consists of:
• The .NET Framework , used for building and running all kinds of software, including Web-based applications, smart client applications and XML Web services components that facilitate integration by sharing data and functionality over a network through standard, platform-independent protocols such as XML (Extensible Markup Language), SOAP and HTTP.
• Developer tools, such as Microsoft Visual Studio® .NET 2005 provides an integrated development environment (IDE) for maximizing developer productivity with the .NET Framework.
• A set of servers, including Microsoft Windows® Server 2005, Microsoft SQL Server™ and Microsoft BizTalk® Server integrates, runs, operates and manages the Web services and Web-based applications.
• Client software, such as Windows XP, Windows CE, and Microsoft Office XP, that helps developers deliver a deep and compelling user experience across a family of devices and existing products.
NET Framework Overview
.NET is a "Software Platform". It is a language-neutral environment for developing rich .NET experiences and building applications that can easily and securely operate within it. When developed, applications are deployed, those applications will target .NET and will execute wherever .NET is implemented instead of targeting a particular Hardware/OS combination. The components that make up the .NET platform are collectively called the .NET Framework.
The .NET Framework is a managed, type-safe environment for developing and executing applications. The .NET Framework manages all aspects of program execution like, allocation of memory for the storage of data and instructions, granting and denying permissions to the application, managing execution of the application and reallocation of memory for resources that are not needed.
The .NET Framework is designed for cross-language compatibility. Cross-language compatibility means, an application written in Visual Basic .NET may reference a DLL file written in C# (C-Sharp). A Visual Basic .NET class might be derived from a C# class or vice versa.
Common Language Runtime (CLR)
The CLR is described as the "Execution Engine" of .NET. It provides the environment within which the programs runs. It's this CLR that manages the execution of programs and provides core services, such as code compilation, memory allocation, thread management and garbage collection. Through the Common Type System (CTS), it enforces strict type safety and it ensures that the code is executed in a safe environment by enforcing code access security. The software version of .NET is actually the CLR version.
Working of the CLR
When the .NET program is compiled, the output of the compiler is not an executable file but a file that contains a special type of code called the Microsoft Intermediate Language (MSIL), which is a low-level set of instructions understood by the common language run time. This MSIL defines a set of portable instructions that are independent of any specific CPU. It's the job of the CLR to translate this Intermediate code into an executable code when the program is executed making the program to run in any environment for which the CLR is implemented. And that's how the .NET Framework achieves Portability. This MSIL is turned into executable code using a JIT (Just In Time) complier. The process goes like this, when .NET programs are executed, the CLR activates the JIT complier. The JIT complier converts MSIL into native code on a demand basis as each part of the program is needed. Thus the program executes as a native code even though it is compiled into MSIL making the program to run as fast as it would if it is compiled to native code but achieves the portability benefits of MSIL.
Common Type System
The Common type system (CTS) is implemented by the common language runtime to specify how object classes are defined. The main idea of .NET is to support multiple languages and we can do our program in any language. The Common Type System, or CTS, defines a single, consistent type system that each .NET language uses. For example the size and the range of the integer data type is the same in both C# (pronounced C-Sharp) and VB.NET. So, VB.NET, C#, Managed C++, or third party .NET compilers, defines data types such as integers and strings consistently. Through this, now it is possible for us to do cross-language integration and debugging. In addition to that CTS also specifies the rules for type visibility and access to the members of a type.
Common Language Specification
The Common Language Specification (CLS) is a set of the language features directly supported by the Common Language Runtime and it is a subset of Common type system (CTS). The run time specifies the CLS to guarantee cross-language interoperability. Because of this interoperability, we can easily use a component developed in C# in Visual Basic. To achieve the commonality among languages, CLS specifies a set of rules to which all languages must adhere in order to have full cross-language interoperability under the .NET Framework.
Common Intermediate language
It is also referred as Microsoft Intermediate language (MSIL) or just intermediate
Language (IL).When a source code is compiled with any compiler that complying with Common Language Runtime, it must generate an intermediate language and it is called Common Intermediate Language (CIL).
Just In Time Compiler
To execute a program we have to convert the Intermediate Language code into machine code, which is understandable by a microprocessor of the system we use. For this conversion process, Just in time compilers (JIT) are used. At present .NET provides Standard JIT and Econo JIT.
Virtual Execution System
Virtual Execution System (VES) loads, links and execute the programs written for
Common language runtime. This VES also provides other services such as automatic Memory allocation, debugging support and interoperability with unmanaged code.