Microsoft .NET
(pronounced “dot net”) is a software component that runs on the Windows
operating system. .NET provides tools and libraries that enable developers to
create Windows software much faster and easier.
TO RUN IT .NET Framework must be
installed on a user’s PC to run .NET applications.
.NET
The .NET Framework
is Microsoft's application development platform that enables developers to
easily create Windows applications, web applications, and web services using a
myriad of different programming languages, and without having to worry about
low-level details like memory management and processor-specific instructions.
Common
Language Runtime Engine
The Common Language Runtime (CLR) is the
execution engine of the .NET Framework. All .NET programs execute under the
supervision of the CLR, guaranteeing certain properties and behaviors in the
areas of memory management, security, and exception handling.
Language
Independence
The .NET Framework introduces a Common Type System,
or CTS. The CTS specification
defines all possible datatypes and programming constructs supported by the CLR
and how they may or may not interact with each other conforming to the Common
Language Infrastructure (CLI) specification. Because of this
feature, the .NET Framework supports the exchange of types and object instances
between libraries and applications written using any conforming .NET language.
Base
Class Library
The Base Class Library
(BCL), part of the Framework Class Library (FCL), is a library of functionality
available to all languages using the .NET Framework. The BCL provides classes
which encapsulate a number of common functions, including file reading and writing, graphic
rendering, database interaction, XML
document manipulation and so on.
What is the .NET architecture?
Microsoft .NET consists of four major components:
·
Common Language Specification (CLS) – blue in the diagram below
·
Framework Class Library (FCL) – red
·
Common Language Runtime (CLR) – green
·
.NET Tools – yellow
At the base of the diagram in gray is the operating system,
which technically can be any platform but typically is Microsoft Windows 2000
or greater, accessed through the Win32 API (Application Programming Interface).
Common Language Specification (CLS)
The CLS is a common platform that integrates code and components
from multiple .NET programming languages. In other words, a .NET application
can be written in multiple programming languages with no extra work by the
developer (though converting code between languages can be tricky).
.NET includes new object-oriented programming languages such as C#, Visual Basic .NET,
J# (a Java
clone) and Managed C++. These languages, plus other experimental
languages like F#,
all compile to the intermediate language(msil) which fulfill this Common Language Specification and
can work together in the same application.
Framework Class Library (FCL)
The FCL is a collection of more than 12000 class libraries and data types that enable
.NET applications to read and write files, access databases, process XML,
display a graphical user interface, draw graphics, use Web services, etc. The
FCL wraps much of the massive, complex Win32 API into more simple .NET objects
that can be used by C# and other .NET programming languages.
.NET Tools
Visual Studio .NET is
Microsoft’s flagship tool for developing Windows software. Visual Studio
provides an integrated development environment (IDE) for developers to create
standalone Windows applications, interactive Web sites, Web applications, and
Web services running on any platform that supports .NET.
In addition, there are many .NET Framework tools designed to help
developers create, configure, deploy, manage and secure .NET applications and
components.
What are the benefits of .NET?
.NET
provides the best platform available today for delivering Windows software.
.NET helps make software better, faster, cheaper, and more secure..
For developers,
.NET provides an integrated set of tools for
building Web software and services and Windows desktop applications. .NET
supports multiple programming languages and Service Oriented Architectures
(SOA).
For companies,
.NET provides a stable, scalable and secure
environment for software development. .NET can lower costs by speeding
development and connecting systems, increase sales by giving employees access
to the tools and information they need, and connect your business to customers,
suppliers and partners.
For end-users,
.NET results in software that’s more reliable
and secure and works on multiple devices including laptops, Smartphone’s and
Pocket PCs.
CLR
|
||||
Boxing and unboxing
IT Compilers in .NET Environment
JIT (Just in time) compiler is a part of the .NET runtime execution environment. Unlike traditional compilers JIT doesn’tcompile the full class file in one shot. Compilation is done on function basis or file basis. JIT compilation has advantage
over traditional compilation that heavy parsing of original source code is avoided. Compilation in .NET is done on the basis
and it’s in steps most of the time.
In .NET environment there are three types of JIT compilers:
Pre-JIT : Per-JIT compiler compiles source code into native code in a single compilation cycle. Pre-JIT sits at the stage of
deployment of the application.
Econo- JIT: Econo-JIT compiles methods that are called at runtime. However, these compiled methods are discarded when they’re not required.
JIT (Normal JIT) – They’re called “JIT” or “Normal JIT”. Normal JIT only compiles the methods which are called at runtime.
These methods are compiled the first time they’re called and then they’re stored in cache. When the same methods are called again, the compilation code from cache is used for execution.
In computing, just-in-time
compilation (JIT), also known as dynamic translation, is a
method to improve the runtime performance of computer
programs. Historically, computer programs had two modes of runtime
operation, either interpreted or static (ahead-of-time)
compilation. Interpreted code is translated from a high-level language to a
machine code continuously during every execution, whereas statically compiled
code is translated into machine code before execution, and only requires this
translation once.