.NET architecture ( name chosen to show the importance attached to the network, have to participate more in the operation of applications using Web services) technology called in its infancy NGWS (Next Generation Web Services ) is a Windows layers , or rather a collection of freely distributable DLL and now directly incorporated into the core of the new versions of Windows. This layer contains an impressive number ( thousands ) of classes (all .NET languages should be object oriented ) , and an execution environment ( a run-time , or software layer if you prefer) for the program s ' running under control .NET environment. This is called managed code . The notion of run-time has nothing new : The Visual Basic programmers have long been aware . Java programmers are also familiar with the concept of virtual machine. However, even if the run-time .NET is, in fact, a virtual machine, Microsoft has always carefully avoided using the term, probably too tied to Java and Sun ... A run-time provides services for programs that run under its control. In the case of .NET architecture, these services are part of what is called the CLR ( Common Language Runtime) and ensure:
• load and the controlled execution of programs;
• isolation of the program with respect to each other;
• type checks during function calls (with refusal casts hazardous);
• converting bytecode to native code during program execution, operation called JIT (Just In Time Compiler);
• Access to metadata (information about the code that are part of the same code)
• checks during memory access (no possible access outside the allocated area
program) and Tables (no access beyond its limits);
• The memory management with automatic garbage collection;
• exception handling;
• Automatic adjustment of programs with national characteristics (language, representation of numbers and symbols, etc.).
• compatibility with DLL and existing COM modules that are running in native code uncontrolled by .NET.
.NET classes can be used by languages supporting .NET architecture These classes are grouped into namespaces (namespaces) that are somewhat like directories of classes. There is full compatibility between all the languages of . NET architecture:
• .NET class can be used the same way (the language syntax near) in any language that generates .NET code;
• A class can be created in a first language, use the base class to a derived class implemented in a second language, and the latter class instantiated in a third language;
• How to create and use objects is identical.
.NET Services create objects (everything is an object in the architecture. NET) and take care of automatically releasing the memory objects that can not be used: Technic of garbage collection (garbage collector). We have found this method in the Smalltalk language created by the Park (Palo Alto Research Center) of Xerox , at the origin of GUI, of the mouse and many other things, especially in the field of object-oriented . Java has also
largely borrowed many concepts in Smalltalk. There is no shame in admitting that .NET architecture and the C # language in particular, take the best of C + +, Delphi,
Java, Visual Basic, Smalltalk, and others who prefer to remain too often confined into cenacles , usually academic.
The languages of .NET architecture
All .NET languages must have some common characteristics:
• same data types (size and representation), what is called the CTS (Common TypeSystem) precisely defining these characteristics;
• The same use of the classes, the same way to create and manage objects;
• The same intermediate code, called MSIL, generated (MSIL or Microsoft Intermediate Language or just IL in the documents of standardization).
Compilers creating programs. NET must generate an intermediate code, called MSIL or IL. This is an intermediate code between source code (eg code C # or Visual Basic) and native code directly executable by the microprocessor. This intermediate code is independent of the low-level code that is machine language, but it is capable of handling these high-level constructs such as objects. It would almost talk about IL "code universal machine" or "code virtual machine." This explains why. NET could be ported to other platforms such as Linux .
When you run a program, this intermediate code is supported by .NET that makes it run, function after function, by a JIT compiler. . NET proceeds by compiling and not by interpretation: It is indeed a compilation (IL code to native code) running program. When starting the execution of a function, but at the first call only, NET Call JIT. JIT, that knows runtime environment, including the type of microprocessor, compiles the intermediate of the function code to native code, depending on the microprocessor actually used (which allows optimization). Native code is therefore executed. The process is repeated when another function, not yet compiled (IL code into machine code) is called. Very quickly, we run only native code optimized for the microprocessor of the user.
Compilers provided by Microsoft with Visual Studio are:
• Visual Basic was profoundly changed and became fully object-oriented;
• Visual C + + that can work in two modes:
-In the first mode, compatible with previous versions, the generated code is native code
of Microprocessor and classes are MFC classes. This mode is not compatible with .NET and does not use the possibilities , neither for the development nor for execution. This mode is there to ensure compatibility with the existing;
-The second-mode (managed code) aims .NET architecture and uses the resources of the new
development environment. Developed in C + + with .NET remains heavy especially when the facility offered by C # is known, the new language introduced by Microsoft;
.NET Languages, however, are not limited to these ones. Microsoft publishes all the necessary documentation to enable other compiler vendors to deliver .NET versions of their product :Eiffel, Pascal, Perl, Cobol, Python, Oberon, Smalltalk and many others
Microsoft .NET isn't simply a distinct spin on the Win32 in operation model. moreover, despite reports to the contrary, it's not Java in wolf's consumer goods. you'll ne'er perceive or adequately make a case for .NET just by comparison it to existing product. .NET is new. As such, .NET introduces a recent in operation modality and perspective on computing code and devices.
But recognizing that Microsoft isn't teetering on a drop named .NET doesn't diminish the importance of .NET. .NET will represent a brand new philosophy in development. From .NET can emerge a wholly new family of product which will drive Microsoft sales into the layer over succeeding five to ten years. If the .NET initiative fails, or additional probably is adopted slowly, Microsoft can recover and continue, though perhaps with a bit less luster. significantly, .NET permits Microsoft to flee the Windows brain-teaser. though Windows has been hugely undefeated, it's still a box. .NET helps Microsoft emerge from that box and develop applications for a universal audience. This new chance can fuel growth not only for Microsoft, except for code developers everyplace.
.NET Is net Enabled
Microsoft .NET is net sceptred. Developers will use ASP.NET, XML net services, and ADO.NET to simply produce feature-rich net applications. This represents the front, middle,a bottom tier of an n-tiered enterprise application. Despite this, don't believe the rhetoric stating that Microsoft has abandoned client-side applications—some applications can ne'er be suited to server-side operations. Windows Forms, a brand new forms generation engine, and alternative additions within the .NET Framework create development of ancient Windows applications additional intuitive, whereas adding extra options.
.NET introduces a brand new part model that's mostly implicit. The messiness of COM (Component Object Model) is removed. In .NET, developers use commonplace language syntax to form, publish, and export parts. there's nothing else to be told. .NET addresses several of the shortfalls of COM, as well as status to DLL Hell, language incompatibilities, reference tally,
Common sort System
The Common type System (CTS) may be a catalog of .NET types.System.Int32, System.Decimal, System.Boolean, and so on. Developers aren't needed to use these sorts directly. These sorts ar the underlying objects of the precise knowledge sorts provided in every managed language.