Investigating .NET Page 7

The X-ml Factor

I’m not going to bore you with an explanation of XML, but I will mention why it is important both politically and technically to .Net. If you cast your minds back a few years you’ll recall that the non-Microsoft computing world was latching onto Java in a big way, while Sun was busy ensuring that Microsoft would abandon Java. It was around 1997, when you might also recall a power struggle in ISO, about whether Sun could hand over Java as an ISO standard without ceding control of its specification. Oddly, Sun won the battle but never followed through. It’s relevant here, because Microsoft could see both that Java was not going to go away, and that Sun, Microsoft’s fiercest antagonist, was going to retain control over it. It was pretty much impossible for Microsoft to pin its future to Java, but at the same time it posed a problem for the company. If the non-Microsoft world were to run on Java, how would Microsoft sell its incompatible technology?

XML was not so hot a topic back in 1997, but Microsoft pounced on it as a solution to its problem. It could use XML as language-neutral protocol, enabling both data exchange and remote procedure calls between the Microsoft and Java worlds. For that matter, it could provide a simpler, more robust protocol for any widely distributed application. So Microsoft became an enthusiast for XML web services. It was calling a halt to the CORBA, COM, Distributed COM, JAVA RMI wars by advocating loosely coupled remote objects talking XML to one another.

This is why Microsoft sometimes refers to .NET as its platform for XML web services. XML is woven deeply into the framework. There are libraries for parsing and transforming XML; you can easily serialize objects to XML; and creating or consuming web services is a snap. As Microsoft foresaw, this is becoming very important for interoperability. This year Amazon.com introduced web services for its affiliates, enabling them to search and retrieve data from Amazons vast catalogue programmatically, so as to create own-brand Amazon web sites. Amazon’s web service is driven by Java. However, web sites running on .Net can easily consume the Amazon web service using C#, VB.Net or any of the .Net languages.

ASP.NET

Talking of web sites, I need to talk a little about ASP.Net. This is the most immediately successful part of .Net and the area that probably received the greatest attention from Microsoft. Despite its name, ASP.Net has little in common with the old Active Server Pages or ASP. Here is what it provides:

An easy way to hook up HTML pages to compiled, server-side .NET assemblies

Separation of page design from program code

Automatic (but controllable) page state persistence

Session-state persistence using a state server, to support web farms.

Server-side controls that can be bound to data. These can render different HTML for different browser types or devices.

Dynamic code update: simply upload the updated binaries. No need to restart the server.

Rich class library, including web-specific classes and the full Framework library.

Intelligent caching

Next