C# J# Managed C++ F# Compile To The Common Language Specification

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

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 Common Language Specification and can work together in the
same application.

Framework Class Library (FCL)


The FCL is a collection of over 7000 classes 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.

Common Language Runtime (CLR)


The CLR is the execution engine for .NET applications and serves as
the interface between .NET applications and the operating system. The
CLR provides many services such as:

• Loads and executes code


• Converts intermediate language to native machine code
• Separates processes and memory
• Manages memory and objects
• Enforces code and access security
• Handles exceptions
• Interfaces between managed code, COM objects, and DLLs
• Provides type-checking
• Provides code meta data (Reflection)
• Provides profiling, debugging, etc.
.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 is the history of .NET?


.NET started as a classic Microsoft FUD operation. In the late 1990s,
Microsoft had just successfully fought off a frontal assault on its
market dominance by killing the Netscape Web browser with its free
Internet Explorer. But Microsoft was facing a host of new challenges,
including serious problems with COM, C++, DLL hell, the Web as a
platform, security, and strong competition from Java, which was
emerging as the go-to language for Web development.

Microsoft started building .NET in the late 90s under the name “Next
Generation Windows Services” (NGWS). Bill Gates described .NET as
Microsoft’s answer to the “Phase 3 Internet environment, where the
Internet becomes a platform in its own right, much like the PC has
traditionally been… Instead of a world where Internet users are limited
to reading information, largely one screen at a time, the Phase 3
Internet will unite multiple Web sites running on any device, and allow
users to read, write and annotate them via speech, handwriting
recognition and the like,” Gates said. We are certainly approaching
that vision.

Microsoft announced .NET to the world in June 2000 and released


version 1.0 of the .NET framework in January 2002. Microsoft also
labeledeverything .NET including briefly Office to demonstrate its
commitment and dominance on this new thing called the Web. But out
of that grand FUD campaign emerged the very capable and useful
.NET development environment and framework for both the Web and
Windows desktop.

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. .NET is not the only solution for developing Web software—
Java on Linux is a serious alternative. But on the Windows desktop,
.NET rules.

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, Smartphones and
Pocket PCs.

Why are you (this blog author) developing


in .NET?
The Mini-Tools developers were impressed with the Microsoft .NET
technology and development platform and felt it provided the best
environment with which to build and deliver innovative desktop and
Web software for Windows. All of our software is written in C# for .NET
on Windows.

Why should I install .NET on my


computer?
Because many new software applications require .NET. Having
the latest version already installed on your computer enables you run
new .NET applications immediately as they become available.

Which versions of .NET are available?


The newest version available today is NET v3.0, but most PC users
have v2.0 installed.

Although .NET v3.0 is now available, Windows Update is not


automatically installing it, hence few people have it. People who
purchase new PCs with Windows Vista pre-installed will receive the
latest .NET v3.0 but there may be some versioning issues. Microsoft
released a beta version of .NET v3.5 in April 2007.

Following are the production versions of .NET:

Version Name Version Number Release Date


1.0 1.0.3705.0 2002-01-05
1.0 SP1 1.0.3705.209 2002-03-19
1.0 SP2 1.0.3705.288 2002-08-07
1.0 SP3 1.0.3705.6018 2004-08-31
1.1 1.1.4322.573 2003-04-01
1.1 SP1 1.1.4322.2032 2004-08-30
2.0 2.0.50727.42 2005-11-07
3.0 3.0.4506.30 2006-11-06

How do I know if I already have .NET?


We have queried your Web browser, and it tells us that you have the
following .NET versions installed on your PC (note this only works for
Internet Explorer):

Another way to check if you have .NET:

1. Click Start on your Windows desktop.


2. Select Control Panel.
3. Double-click Add or Remove Programs.
4. When the Add/Remove window appears, scroll through the list of
applications and try to find Microsoft .NET Framework. There
you will see which versions of .NET are installed on your PC.

Where can I get .NET?


Microsoft .NET is available as a FREE download from Microsoft.

Why is .NET separate from the Windows


operating system?
Another way to ask this question is, "Why doesn't Microsoft ensure
every Windows PC has the latest version of .NET installed?" Since .NET
is so important to Windows, and Microsoft delivers both .NET and
Windows, why doesn't Microsoft simply make .NET part of Windows?

Just my theory, but it probably stems from the Sun vs. Microsoft bad
blood over Java. Sun and Microsoft got into a legal spat, Microsoft
stopped shipping Java with Windows, and so now Java is a separate
download for Windows users. As a result, perhaps Microsoft is wary of
appearing monopolistic, hence they maintain the .NET Framework as a
separate download too.

Why is this a problem? Because it is a large file that must be


downloaded and installed separately, naturally many people view .NET
with suspicion or at least hesitation. And this provides an
inconvenience and yet another barrier for a potential customer
purchasing our .NET software. So here's my plea:

Microsoft, please include the latest version of .NET as an


automatic download to every Windows PC as part of the normal
Windows Update process. Thank you.

You might also like