.NET Overview
In July 2000, Microsoft held the Professional Developers Conference (PDC) in
Orlando, Florida, where they revealed many details to the public about their
next generation platform for Windows and Internet software development - .NET.
Microsoft’s .NET initiative is broad-based and very ambitious. It revolves
around the .NET Framework, which encompasses the actual language and execution
platform, plus extensive class libraries providing rich built-in functionality.
At its core, the .NET framework embraces XML and SOAP to provide a new level of
integration of software over the Internet. There is also a family of
server-based products called .NET Enterprise Servers that are to be the next
generation of Microsoft’s Back Office.
The .NET Framework introduces a completely new model for the programming and
deployment of applications. In his PDC keynote speech, Bill Gates stated that a
transition of this magnitude only come along once every five to six years. The
last comparable shifts were the switch from DOS to Windows in 1990 and the
migration from 16-bit to 32-bit development (Windows 3.x to Windows 95/NT) in
the mid-nineties.
Developers at PDC were excited by the prospect of a dramatically better
architecture for software development within the .NET Framework, even though
Microsoft made it clear that released products based on .NET are still well into
the future. The first release will probably be Visual Studio .NET, the
commercial release but general expectation is for fall 2001 at the earliest.
How important is this to Microsoft? Well, their executives have publicly stated
that 80% of R & D resources in 2001 are being spent on .NET and the expectation
is that most Microsoft products will be ported onto the .NET platform. Also C#
(pronounced C-sharp), a new language specifically created for .NET, looks set to
become the standard language for internal development within Microsoft.
A Broad and Deep Platform for the Future
Calling the Microsoft .NET Framework a “platform” doesn’t begin to describe how
broad and deep it is. It encompasses a virtual machine that abstracts away much
of the Windows API from development. It includes a class library with more
functionality than any other created to date, and a development environment that
spans multiple languages. Further more, it exposes an architecture that makes
multiple language integration simple and straightforward.
In short, .NET presents a radically new approach to software development. This
is the first development platform designed from the ground up with the Internet
in mind. Previously, Internet functionality has simply been bolted on to
pre-Internet operating systems like Unix and Windows. This has required Internet
software developers to understand a host of technologies and integration issues.
.NET is designed and intended for highly distributed software, making Internet
functionality and interoperability easier and more transparent to include in
systems than ever before.
The vision of .NET is globally distributed systems, using XML as the universal
glue to allow functions running on different computers across an organization or
across the world to come together in a single application. In this vision,
systems from servers to wireless palmtops, will share the same general platform,
with versions of .NET available for all of them, and with each of them able to
integrate transparently with the others. But this does not leave out classic
applications, as we’ve always known them. .NET also aims to make traditional
business applications easier to develop and deploy. Some of the technologies of
.NET, such as WinForms, demonstrate that Microsoft has not forgotten the
traditional business developer.
Avoiding Confusion – the Role of the .NET Enterprise Servers
Microsoft has already released several products, which they describe as part of
the .NET Enterprise Server family. There is marketing literature for these
products that emphasizes that they are part of Microsoft’s .NET strategy.
It is important to understand the difference between these products and the .NET
Framework. The .NET Enterprise Servers are not built on the .NET Framework. Most
of them are successors to previous server-based products, and they use the same
COM/COM+ technologies their predecessors did.
These .NET Enterprise Servers still have a major role to play in future software
development projects. When actual .NET Framework projects are developed, most
will depend on the technologies n the .NET Enterprise Servers for functions like
data storage and messaging.
What’s Wrong With What We Have Now?
Starting in late 1995, Microsoft made a dramatic shift towards the Internet. The
company was refocused on marrying their Windows platform to the Internet, and
they have certainly succeeded in making Windows a serious Internet platform as
well as a solid platform for all the business-oriented software developed with
the Windows DNA programming model.
However, Microsoft had to make some serious compromises to quickly produce
Internet-based tools and technologies. In particular, Active Server Pages (ASP)
has always been viewed as a bit clumsy. After all, writing reams of interpreted
script is a real step backwards from structured and object-oriented development.
Designing, debugging and maintaining such unstructured code is also a headache.
Other languages such as Visual Basic have been used successfully in Internet
applications on Microsoft platforms, but mostly as components that worked
through Active Server Pages. Presently, Microsoft’s tools lack the level of
integration and ease-of-use for web development that would be ideal. A few
attempts were made to place a web interface on traditional languages, such as
WebClassess in VB, but none of these gained wide acceptance.
Microsoft has attempted to bring some order to the chaos with their concept of
Windows DNA applications. DNA paints a broad picture of standard three-tier
development based on COM, with Active Server Pages in the presentation layer,
business objects in a middle layer, and a relational data store and engine in
the bottom layer. The concept behind DNA is reasonably sound, but actually
making it work has many challenges. Developing COM components requires a level
of development expertise that takes a lot of time to reach, though some
languages, such as Visual Basic, make it easier than others. Also, the
deployment of DNA applications can be nightmarish, with many problems that can
arise from the versioning and installation of components, and the components
that the rely on.
Microsoft realized that, while it was possible to write good Internet
applications with Windows-based technologies, it was highly desirable to find
ways to develop applications faster and make it far easier to deploy them. Other
platforms (such as Unix) and other development environments (such as ColdFusion)
were continuing to raise the bar for developing Internet applications, making it
essential that Microsoft address the limitations of the DNA programming model.
The Origins of .NET
In the beginning 1998, a team of developers at Microsoft had just finished work
on a new version of Internet Information Server (version 4.0), including several
new features in Active Server Pages. While developers were pleased to see new
capabilities for Internet development on Windows NT, the development team at
Microsoft had many ideas for its improvement. That team began to work on a new
architecture implementing those ideas. This project eventually came to be known
as Next Generation Windows Services (NGWS).
After Visual Studio 6 was released in late 1998, work on the next version of
Visual Studio (than called Visual Studio 7) was folded into NGWS. The COM+/MTS
team brought in their work on a universal runtime for all the languages in
Visual Studio, which they intended to make available for third party languages
as well.
The subsequent development was kept vary much under wraps at Microsoft. Only key
Microsoft partners realized the true importance of NGWS until it was
re-christened as .NET and introduced to the public at the PDC. At that point,
development had been underway for over two years, and most attendees were
pleasantly surprised to see the enormous strides Microsoft had made.
The concepts in .NET draw inspiration from many sources. Previous architectures,
from p-code in UCSD Pascal up through the Java Virtual Machine, have similar
elements. Microsoft has taken many of the best ideas in the industry, combined
with some ideas of their own, and brought them all into one coherent package.