The.NET Earthquake hits IT
By David Chappell
The following digest article is adapted from Chapter 1 of
Understanding .NET, A Tutorial and Analysis
by David Chappell. Used with the permission of
the author and Addison–Wesley, 2002. Go to http://www.aw.com/catalog/academic/product/1,4096,0201741628,00.html for more information on this fine book.
The world of software development is a volatile place. New ideas appear and are quickly embodied in new technologies. Sometimes those new technologies can be absorbed incrementally, adding to what software professionals already know. Other times, the changes are too great to be introduced as gradual innovations in what already exists. In cases like this, software developers, architects, and managers all experience a fundamental tectonic shift, an earthquake, in their world.
Microsoft's .NET initiative is this kind of earthquake. It will affect everybody who works in the Windows environment, and it will generate aftershocks in the wider world, too. By giving us so much change to adapt to at once, Microsoft has made our lives more difficult in the short run—there's a lot to learn. Once we've absorbed this new set of tools and technologies, however, most Windows developers will find themselves capable of building more powerful, more useful software in less time.
Defining .NET
Microsoft views .NET as a vision, a platform for the digital future. A more concrete and equally accurate way to think about this initiative is to understand that .NET is a brand, one that Microsoft has applied to several different technologies. Some of these technologies are entirely new, providing new services and new possibilities. Others allow an updated approach to creating the kinds of Windows applications we know today. Still other parts of the .NET family are just new releases of existing technologies dressed up with the .NET brand.
The most important new technology in .NET is Web services. As the name suggests, a Web service provides some function that can be invoked programmatically via the Web. Most technologies that carry the .NET brand have direct support for Web services in some way, yet .NET is more than just Web services. The technologies that Microsoft has placed under the .NET umbrella today include the following:
² The .NET Framework: Includes the Common Language Runtime (CLR) and the .NET Framework class library. The CLR is a standard foundation for building a range of new applications, while the .NET Framework class library provides standard implementations of many new services for CLR-based applications. Among the technologies in the library are ASP.NET, which is the next generation of Active Server Pages (ASP); ADO.NET, the next generation of ActiveX Data Objects; support for building and using Web services; and much more. Microsoft is also releasing a trimmed-down incarnation of the .NET Framework called the .NET Compact Framework. This version is intended for use in smaller devices, such as personal digital assistants (PDAs).
² Visual Studio.NET: Supports several programming languages that can be used with the .NET Framework. These languages include Visual Basic.NET, which is the next generation of Visual Basic; an enhanced version of C++; and a wholly new language called C# designed explicitly for the .NET Framework.
² NET My Services: A group of services that allow users to store and access personal information, such as a calendar and address book, on Internet-accessible servers. These services also provide more general features such as authentication, which allows a client to prove its identity, and a way to send alert messages to clients on various devices.
² The .NET Enterprise Servers: A family of software servers that includes BizTalk Server 2000, Application Center 2000, Commerce Server 2000, Host Integration Server 2000, SQL Server 2000, Exchange Server 2000, Mobile Information Server 2001, and Internet Security and Acceleration Server 2000. In their current releases, these products are largely independent from the other .NET technologies listed here. They don't, for example, make use of the .NET Framework, nor do they provide much direct support for Web services.
Standards for Web services
Web services are an unassailably good idea. Yet if these technologies were supported by Microsoft alone, they wouldn't be very interesting. Fortunately, Microsoft, IBM, Sun, Oracle, BEA, and many other vendors have all endorsed the core Web services technologies of SOAP, WSDL, and UDDI. Some of those technologies have been submitted to the World Wide Web Consortium (W3C) and so are on their way to becoming official standards. For example, the W3C has created an XML Protocol working group. This group now owns SOAP and is working to create the next version of this workhorse protocol for Web services. The key point is that while not all of these Web services technologies are official standards yet, all of them have broad vendor support.
Also, none of [these technologies] contains dependencies on Microsoft-specific technologies such as the .NET Framework. This is a little surprising, given that Microsoft was a major player in the creation of each one. Despite the company's less than stellar reputation for conforming to multi-vendor standards, Microsoft seems to have realized that Web services cannot succeed without widespread endorsement. Accordingly, the Web services decision-makers within the Redmond giant have thus far chosen to work with their competitors to make this new technology a multi-vendor reality.
—David Chappell
Understanding .NET requires understanding Web services. It also requires grasping at least the basics of each of the .NET technologies listed above.
David Chappell is principal at Chappell & Associates, an education and consulting firm focused on enterprise software technologies. He can be reached via E-mail at david@davidchappell.com.