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.
|