Introducing .NET


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.

You might also like...



Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“If debugging is the process of removing software bugs, then programming must be the process of putting them in.” - Edsger Dijkstra