This is a sample chapter from Introducing .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 BackOffice.
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 comes 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 beta-one of which became
available in November 2000. No firm dates are available for the full 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.
Your Introduction to .NET
This book will preview much of the technology and structure of .NET, concentrating
on the .NET Framework. It should help the reader understand the magnitude of
changes involved in the new technology; together with some of the benefits gained
and costs endured. The aim is to enable intelligent decisions to be made about
the short-term role of .NET, and establish a foundation from which further study
can be conducted.
This first chapter will summarize many of the most important aspects of .NET.
We'll start by looking at some of the serious drawbacks of current software development
that prompted Microsoft to rethink their entire development structure. Then we'll
progress to an overview of the overall vision and the major elements in the .NET
Framework. Along the way, this chapter will refer to later chapters, which will
fill in the details.
Please remember that this book discusses unreleased products. There will no doubt
be many changes during the development cycle. In particular, many of the changes
relating to language syntax and features are subject to revision. The bottom
line is - don't bet the farm on the information presented here. Be prepared for
changes as .NET moves closer to actual production.
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. More of these are coming, and most will
be released by the time this book is published. Some of the marketing literature
for these products emphasizes that they are part of Microsoft's .NET strategy.
However, it is important that you understand the difference between these products
and the .NET Framework, which is the major focus of this book. 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.
Chapter 12 in this book summarizes these products and explains their purposes.
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 in the .NET Enterprise Servers for functions
like data storage and messaging.
When this book refers to .NET, it should be understood that this is generally
intended to mean the technologies in the Microsoft.NET Framework.
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 WebClasses 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 they 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 (then 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 very 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.
Comments