NO
EECALC
 
Design tools for electrical engineers
© 2007 EECALC, All Rights Reserved
Microsoft .NET 2.0 Framework
Traditionally, PC-based software applications have consisted of binary executables and associated run-time resources such as dynamic linked libraries. An executable was built for a particular processor during the compile process. Execution of an application essentially meant that the Operating System would load the .exe file into the computer's RAM, point the processor's program counter to the start of the file, pull the rip cord and bail out.

There are some obvious disadvantages to this traditional method of execution. For one, the run-time fate of an application is more or less unknown to the Operating System. If for some reason the application tried to access an inaccessible memory location the result would be an abrupt crash of that application. Details (if any) were provided in cryptic assembly language. The burden of preventing such 'illegal' operations largely fell on the programmer, adding cost to the development process that got passed on to the customer. In addition, different processors needed separate compilers which complicated the distribution enormously.


The .NET framework manages the detailed execution of the assembly by converting the IL into the appropriate processor instructions, and equally important, by controlling the memory management as well. If a particular instruction causes a fatal error then the framework itself throws an exception which describes what went wrong exactly and also gives a chance for the user to decide on the fate of the application. Very often an application can smoothly ''Continue'' operating through such exceptions, in contrast with the older ''illegal'' operation scenario. In particular, the framework provides for garbage collection (GC), which is the orderly disposal of memory resources that were allocated to program objects that are no longer required. A developer in the .NET framework is thus freed from having to perform the GC manually, a tricky error prone process at its best.


Apart from platform independence and multi-language support, the .NET framework offers substantial improvements in system security. Applications can be made to execute in separate 'domains' - you can think of these as sandboxes with restricted privileges. A user who does not have Administrator rights can be permitted to start a 'pseudo privileged' process inside its restricted domain without compromising the integrity of other processes or even the filesystem. Contrast this situation with a standard Windows/Unix environment wherein you must have Administrator privileges or be the root in order to start certain services/daemons. Then there is the Web flavor of .NET known as ASP.NET. These topics go well beyond the scope of this simple note, but you can get a sense that .NET is a powerful wide-ranging framework.

The core release of the .NET framework is 2.0. Starting with Microsoft Windows®  Vista™, the framework has been upgraded to 3.0 to include additional classes and methods. Note that .NET 3.0 is built upon (and fully includes) .NET 2.0, so if you are using Windows Vista you already have .NET 2.0.

The .NET 2.0 framework installation is free and can be downloaded directly from Microsoft.
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en



The Microsoft .NET Framework is a software development and execution paradigm developed to solve such problems (and more). Roughly speaking, the framework consists of two parts: (i) a Common Language Runtime (CLR) which manages the execution of all applications independent of programming language, and (ii) a set of standardized, language-and-processor independent object oriented types and methods defined via an Intermediate Language (IL). An application can be developed using multiple languages (such as C#, C++, and Visual Basic) with all of the modules being compiled into an IL assembly. The loading and execution of the assembly is managed by the CLR. In this sense .NET is similar to the Java™ framework from Sun Microsystems. However, note that .NET supports multiple languages.