Introduction to Microsoft.NET
Due to the ever evolving requirements of programming and technology, Microsoft realized that there was a need for a development platform that was unrestricting and accessible. In a rather successful attempt to address the problems faced by developers to overcome installation, integration, and legacy issues, Microsoft created its .NET (pronounced dot-net) platform.
The .NET technology provides a new approach to software development. This is the first development platform designed from the ground up with the Internet in mind. Previously, Internet functionality has been simply bolted on to a pre-Internet operating systems like Unix and Windows. This has required Internet software developers to understand a host of technologies and integration issues. .NET is designed and intended for highly distributed software, making Internet functionality and interoperability easier and more transparent to include in systems than ever before. .NET was first introduced in the year 2002 as .NET 1.0 and was intended to compete with Sun's Java. And .NET is very easy but the basics of the C language is required and if you know them then by step you can know and do it well. Unlike Java, .Net is not Free Software, yet source for the Base Class Library is available under the Microsoft Reference License. .NET is designed for ease of creation of Windows programs. Various other implementations of .NET exist, such as the Mono Project, and dotGNU.
The vision of .NET is globally distributed systems, using XML as the universal glue to allow functions running on different computers across an organization or across the world to come together in a single application.
.NET Framework Architecture
Common Language Runtime (CLR)
CLR is the main runtime engine for .Net . This is responsible for verifying type safety, garbage collection and error handling along with Code Access Security. All code that is executed by the CLR ( or targeted to run by the CLR) is called managed code. Any code that is executed directly on the Operating System is called unmanaged code. CLR implements Code Access Security based on the evidence for an Assembly. Evidence can be such as from which site the code is being downloaded, any strong name key available or digital signatures and assigns the code to a particular code group based on the evidence. Each code group has a set of permissions which define what all the assembly can access and perform. By default memory management is done by CLR and the garbage collection runs as a low priority thread. The execution of this is non deterministic. This implies that no more pointer access by default. Relinquishing of memory is done by the garbage collection once the object are marked for garbage collection. However Microsoft hasn’t removed the feature of pointers completely. One can use pointers by writing unmanaged code using keyword unsafe. CLR is also known as Virtual Execution System(VES).
Framework Class Libraries (FCL)
In the .NET Framework classes, interfaces, and value types are bundled together into a library. With all of those elements bundled together the development process is much faster because all needed elements are there and ready to go. It also creates a more efficient environment by making system functionality readily accessible. One of the big advantages of the Microsoft .NET platform is due to the FCL. As long as the compiler conforms to the Common Language Specifications(CLS), any programming language can use the .NET Framework types. This greatly increases the ease of interoperability between languages.
Support for standard networking protocols & specifications
These support information is mainly used for the networking protocols in case a system failure.
Support for different programming languages
since the .Net introduction and due to it's flexibility on different platforms different programming languages have been made available.
Support for programming libraries developed in different languages
Support for different platforms
Executables verse assemblies
Where To Go Next
|Topics in C#|
|Part of the School of Computer Science|