Introduction
The present enterprise setup's need to have n-tire architecture with diverse platforms and object models communicating with each other. The present applications are to be created such that those applications have to run in any platform (like Windows, Linux, Mac , Unix etc) and which consist of components written in many programming languages and object models.
Many language vendors have tried to upgrade their languages, but there is a limit to which they have been successful since they have to maintain backward capability and face many other problems too.To solve the problem of the current programmers Microsoft has come with a very promising solution "The .NET Platform".
Overview of the .NET
The .NET infrastructure comprises the .NET Framework, Microsoft Visual Studio.NET, the .NET Enterprise Servers, and Microsoft Windows.NET.
.NET is Microsoft's strategy for developing and delivering next generation software products and web services.
Three key elements of .NET are:
- Microsoft .NET platform
Includes .NET infrastructure and tools to build and operate a new generation of services, .NET user experience to enable rich clients, .NET building block services and .NET device software to enable a new generation of smart Internet devices.
- Microsoft .NET products and services
Includes Microsoft Windows.NET (with a core integrated set of building block services), MSN.NET, personal subscription services, Microsoft Office.NET, Microsoft Visual Studio.NET, and Microsoft bCentral for .NET.
- Third-party .NET services
A vast range of partners and developers will have the opportunity to produce corporate and vertical services built on the .NET platform.
The .NET infrastructure refers to all the technologies that make up the new environment for creating and running robust, scalable,distributed applications. The part of .NET that lets us develop these applications is the .NET Framework.
The .NET Framework consists of the:
- Common Language Runtime (CLR)
Microsoft's JVM equivalent is CLR (Common Language Runtime), accept that the CLR accommodates more than one languages, such as C#, VB.Net, JScript,C++ and also 22 other languages like Perl, Python, COBOL etc. A source code is converted to intermediate language code (IL) by the respective compiler, and then the IL code is converted to native code using the JIT compiler during the run-time.
The CLR services include:
- Code management (loading and execution).
- Application memory isolation.
- Verification of type safety.
- Conversion of IL to native code.
- Access to metadata (enhanced type information).
- Managing memory for managed objects.
- Enforcement of code access security.
- Exception handling, including cross-language exceptions.
- Interoperation between managed code, COM objects, and pre-existing DLLs (unmanaged code and data).
- Automation of object layout.
- Support for developer services (profiling, debugging, and so on).
- .NET Framework class libraries sometimes called the Base Class Library (BCL). All .NET languages have the .NET Framework class libraries at their disposal. The .NET Framework class libraries include support for everything from file I/O and database I/O to XML and SOAP.
- Universal type system called the .NET Common Type System (CTS).The code written in any of the CTS compliant languages can be used (extended/inherited) form any other Language on the .NET. This feature has brought the interoperability issue between languages to a extinction. In addition to defining all types, the (CTS) also stipulates the rules that the CLR follows with regard to applications declaring and using these types. In the world of .NET and C# everything in the CTS is an object. In fact, not only is everything an object but, even more importantly, all objects implicitly derive from a single base class defined as part of the CTS. This base class called System.Object.
- NGWS software development kit defines a "Common Language Subset" (CLS), that ensures seamless interoperability between CLS-compliant languages and class libraries.For example for C# developers, this means that even though C# is a new language, it has complete access to the same rich class libraries that are used by seasoned tools such as Visual Basic and Visual C++.
C# itself does not include a class library. Because the same .NET base class library is shared between all programming languages, a developer can take his knowledge of this library with him as he migrates from language to language.
Imprative Features of .NET
- Platform Independent:
On the .NET Platform files are compiled into PE files (i.e. Dll's and Exe's). This makes your files truly Platform Independent.
- Language Independence:
One more added advantage of .NET Platform is Language Independence. Since all the code on the .NET ultimately gets converted to IL, you can use components written in one language in another language without writing any extra code!
- Developed specially for the Internet Age:
The .NET platform has been designed specifically for the internet age. The ASP.NET and Web Services API will help programmers build the applications of the future with minimum coding and better performance. The .NET platform has been designed for the new service base computing scenario where instead of using third party components programmers will now use third party services and build their applications. The Web Services API will also help businesses collaborate better with each other in B2B activities.
- Upgrade for Mainframes based architecture to .NET Platform:
Many big companies still rely on the Mainframes based architecture. Revival of the the Mainframes languages like COBOL, FORTRAN to COBOL.NET and FORTRAN.NET will help mainframe based programs to be easily upgraded with minimal changes. Also since the .NET Platform has been submitted to the ECMA authorities, if Microsoft does not provide a .NET for the Mainframes some other vendor might due the tremendous demand for such a platform.
- Processor Independence:
One more feature which is not being talked about much is Processor Independence which .NET offers apart from Platform Independence. C++ / VB code today compiles into platform and processor specific native code. So if you are selling products you have to sell different builds of the same product depending upon the process. Example: There might be a separate build for Intel processors, AMD processors, Cyrix processors etc. One common feature although among all these processors is that they are all 32 bit processors.
On the .NET platform although, you just create one build and the .NET runtime takes care of executing your code on these different processors! Different .NET JIT'ers will be designed for different processors so that your code runs on all the processors, also these JIT'ers will be optimized according to the processor so that it will be able to make full use of all the features your processor.
- Build Better Applications:
Automatic Garbage collection will relive the programmers the worry of managing memory and at the same time it will produce more managed applications. Memory leaks are one of the major bugs which surface in today's applications.
The enhanced Win Form API and ASP.NET API aim at providing rich and easy to create user interfaces. Freedom from the windows registry and xcopy deployment will also come as a blessing to desktop users.
- Security
.NET's features like versioning, type-safety and enhanced security also are worth mentioning. You can run 2 versions of the same component at the same time, this is called Side-by-Side execution. Example: You can run ver1 of your Calculator component together with ver2 of it. The application that you wrote with the ver1 does not break-up even when you upgrade your components to ver2.
Conclusion
Its the first solid step which will enable Microsoft dominate the Internet Age. The .NET has really dived deep into the problems faced by today's programmers and tried to give solution to these in the new platform.