.NET Framework and Architecture
This article will help your in understanding .NET and .NET architecture.
What is the .NET Framework?
The .NET Framework is a new and revolutionary platform created by Microsoft for developing applications.
- It is a platform for application developers.
- It is a Framework that supports Multiple Language and Cross language integration.
- IT has IDE (Integrated Development Environment).
- Framework is a set of utilities or can say building blocks of your application system.
- .NET Framework provides GUI in a GUI manner.
- .NET is a platform independent but with help of Mono Compilation System (MCS). MCS is a middle level interface.
- .NET Framework provides interoperability between languages i.e. Common Type System (CTS) .
- .NET Framework also includes the .NET Common Language Runtime (CLR), which is responsible for maintaining the execution of all applications developed using the .NET library.
- The .NET Framework consists primarily of a gigantic library of code.
Definition: A programming infrastructure created by Microsoft for building, deploying, and running applications and services that use .NET technologies, such as desktop applications and Web services.
Cross Language integration
You can use a utility of a language in another language (It uses Class Language Integration).
.NET Framework includes no restriction on the type of applications that are possible. The .NET Framework allows the creation of Windows applications, Web applications, Web services, and lot more.
The .NET Framework has been designed so that it can be used from any language, including C#, C++, Visual Basic, JScript, and even older languages such as COBOL.
Difference between Visual Studio and Visual Studio .NET
Visual Studio | Visual Studio |
It is object based | It is object oriented |
Internet based application - Web Application - Web services - Internet enable application - Third party API - Peer to peer Application | All developing facilities in internet based application |
Poor error handling Exception/Error | Advance error handler and debugger |
Memory Management System Level Task | Memory Management Application Domain with help of GC (Garbage Collector) |
DLL HELL | VS .NET has solved DLL HELL Problem |
Simple explanation of definition used in the above comparision:
Web Application
All websites are example of web application. They use a web server.
Internet Enabled Application
They are desktop application. Yahoo messenger is an example of desktop application.
Peer to Peer
Communication through computers through some system.
Web Services
It doesn't use web-based server. Internet payment systems are example of web services.
DLL Hell
"DLL Hell" refers to the set of problems caused when multiple applications attempt to share a common component like a dynamic link library (DLL) or a Component Object Model (COM) class.
The reason for this issue was that the version information about the different components of an application was not recorded by the system. (Windows Registry cannot support the multiple versions of same COM component this is called the dll hell problem.)
.Net Framework provides operating systems with a Global Assembly Cache (GAC). This Cache is a repository for all the .Net components that are shared globally on a particular machine. When a .Net component is installed onto the machine, the Global Assembly Cache looks at its version, its public key, and its language information and creates a strong name for the component. The component is then registered in the repository and indexed by its strong name, so there is no confusion between different versions of the same component, or DLL.
Architecture of .NET Framework
Architecture of CLR
CLS (Common Language Specification)
It is a subset of CTS. All instruction is in CLS i.e. instruction of CTS is written in CLS.
Code Manager
Code manager invokes class loader for execution.
.NET supports two kind of coding
1) Managed Code
2) Unmanaged Code
Managed Code
The resource, which is with in your application domain is, managed code. The resources that are within domain are faster.
The code, which is developed in .NET framework, is known as managed code. This code is directly executed by CLR with help of managed code execution. Any language that is written in .NET Framework is managed code.
Managed code uses CLR which in turns looks after your applications by managing memory, handling security, allowing cross - language debugging, and so on.
Unmanaged Code
The code, which is developed outside .NET, Framework is known as unmanaged code.
Applications that do not run under the control of the CLR are said to be unmanaged, and certain languages such as C++ can be used to write such applications, which, for example, access low - level functions of the operating system. Background compatibility with code of VB, ASP and COM are examples of unmanaged code.
Unmanaged code can be unmanaged source code and unmanaged compile code.
Unmanaged code is executed with help of wrapper classes.
Wrapper classes are of two types: CCW (Compilation Callable Wrapper) and RCW (Runtime Callable Wrapper).
Wrapper is used to cover difference with the help of CCW and RCW.
Native Code
The code to be executed must be converted into a language that the target operating system understands, known as native code. This conversion is called compiling code, an act that is performed by a compiler.
Under the .NET Framework, however, this is a two - stage process. With help of MSIL and JIT.
Comments