A .NET Scenario
Describing the parts of .NET separately can help in understanding the trees of this technology initiative. The best way to get a view of the forest, however, is to see how these
work together. To do this, see Figure 1-8. It shows how various .NET technologies might be used to construct an e-commerce Web site.
Figure 1-8. An e-commerce Web site might use many .NET technologies.
An example can
NET technologies interact
This site is built around an ordering application that lets a user place an order from her browser. The site might sell books or CDs or toys or anything else that's available on the Internet. This site relies on Passport for authentication, so the
contacts this part of .NET My Services to obtain a way to identify herself reliably (step 1). (It's worth pointing out that using Passport authentication for a Web site built using the .NET Framework isn't required, but rather it is just one of several available options.) Next, she uses her browser to access the appropriate pages in the ordering application, a .NET Framework application built, say, in C# using ASP.NET and relying on SQL Server for storage (step 2). If this customer allows it, the ordering application can access .NET My Services to acquire information about her, such as her credit card number and mailing address (step 3). Next, the ordering application communicates with a separate shipping application across an intranet. This shipping application might be built on a non-Windows system, such as Linux, so BizTalk Server provides the glue between these disparate applications (step 4). Finally, the ordering application uses SOAP to communicate with a billing application, also across the intranet (step 5). Given that Web services are supported by many different
, this billing application might be a .NET Framework application or something else, such as an application written using Java running on an IBM mainframe. In either case, the same technologies -SOAP and XML -can
be used to interact with it.
The broad set of technologies grouped under the .NET banner can be applied in many different ways. The e-commerce Web site shown here provides a good example of how they might be used, but there are plenty of other choices. Depending on the problem to be
, different .NET technologies can be combined with one another and with other technologies as needed.
NET technologies address a broad set of problems
The .NET initiative is a big step for Microsoft. By providing a new foundation for building Windows applications, the company is all but forcing developers to begin climbing a long learning curve. Yet the benefits brought by Web services, the .NET Framework, .NET My Services, and the other aspects of .NET are significant. The new development environment is much more modern, and it provides many more services. Once developers have internalized at least the
.NET technologies, their productivity should improve significantly. And with the built-in support for Web services, whole new classes of applications can be created. Ultimately, .NET is likely to be another step in the ladder toward the ultimate goal: producing the best possible software in the least amount of time.
NET provides a better, more powerful environment for developers
The Pain of Change
During a .NET seminar I gave in Moscow, one of the
raised his hand with a worried expression. “I'm an
Windows DNA developer,” he said. “If I learn this .NET stuff, can you promise me that this is the last new technology Microsoft will ever make me learn?”
I couldn't, of course. I could promise him, however, that he was in the wrong profession. Even if my worried interlocutor sticks with Microsoft for the rest of his career, it's all but certain that new technologies that he'll need to get his mind around will appear. As long as the hardware we depend on keeps getting faster, smaller, and cheaper, new software technologies will continue to exploit those advances.
Fortunately, changes as large as .NET aren't common. Bringing out new languages, a large new library, and significant revisions to other core technologies all at once is almost too much to swallow. Yet bringing out those same changes piecemeal would likely have been
, if only because the integration among them would
have suffered. The bottom line is simple: If you don't like change, get out of the software business.
The price of more power is accepting change
The downside of all of this power is that it comes at the price of substantial change. Windows developers must learn many new language features (and in the case of C#, perhaps even an entirely new language), at least
of a large new standard li brary, and various new concepts, such as Web services. Even scarier for some developers, a large
of their existing knowledge is no longer useful. For example, COM isn't used in the .NET Framework, except for interoperability with existing code, and so the detailed COM knowledge that many Microsoft-oriented software professionals have painfully
isn't needed to build Framework-based applications. With the introduction of the .NET Framework's Windows Forms, knowing how to use existing GUI technologies is much less
. Even data access is substantially different, with ADO
by ADO.NET. There's no use complaining, however. The only real choice for developers who wish to continue working in this environment is to
the time required to come to grips with .NET. It's the future of application development on Windows.