Although the online world is abuzz with rumors and questions about Microsoft's .NET strategy, the foundation of .NET is already here, and it's in surprisingly good shape. When it began plotting the move to an Internet-based revenue model, Microsoft realized it would need some way to extend its existing desktop platforms—primarily Windows and Office—into subscription-based software services that could operate over the Internet. The basis for making this model work— a world where Web sites can expose services in the same way that COM objects do so locally today—is XML.
XML is, in many ways, what HTML should have been. That is, it's a meta-markup language, not a standard markup language like HTML. The popular HTML format describes what a document, typically a Web page, will look like, but it does so in very limited terms, according to the latest HTML specification and the support for the specification in popular browsers. But the sin of HTML, from a content developer's standpoint, is that HTML doesn't separate content from the description of that content. That is, the data and the "look and feel" of that data are bound into the same document, so displaying that data in different ways is difficult at best.
As Web technologies progressed, intermediary solutions to such limitations appeared. A typical example is Cascading Style Sheets (CSS), a technology that lets you apply visual styles— such as text blocks, headings, and captions—to elements in an HTML document. Using CSS, you can display the same document—or data—in different ways. But CSS as a standard was as poorly executed as HTML was, so documents tend to display differently in different browsers. And CSS does nothing to fix HTML's other problems, such as its limited set of tags—so it's really just a Band-Aid solution.
Enter XML, which finally gives us a way to represent data in a structured format that is self-describing—a feature that makes it easy to work with virtually any type of document, including simple text documents, structured documents such as databases, database query results, and even application UIs. An XML document is alive in the sense that you can view the data it contains in different formats and even edit it in real time, without requiring a return trip to the server from which the document originated. And because XML is lightweight and designed for the Internet, the entire industry has embraced the standard as the future of data formats. Microsoft, of course, has implemented XML support in Internet Explorer (IE) 5.x, Windows 2000, and Office 2000, as well as its .NET Enterprise Servers and all future platform products. XML is the future, but it's also here today, ready and waiting.
XML typically works over the Internet using HTTP, the protocol the Web uses. As such, XML-compatible applications can communicate with each other over the Internet using XML. And XML isn't tied to any particular OS or programming language, so you can write client and server applications in any language, using any OS platform. So it's not just conceivable but likely that we'll see Windows-based applications written in Visual Basic (VB) communicating with Linux-based applications written in Java, or even Perl.
XML is a high-level standard, however, and there are a couple of features that the XML specification doesn't address, so Microsoft has created an XML-based protocol called Simple Object Access Protocol (SOAP). SOAP extends XML with garbage collection and message batching, as well as object referencing and activation features. These are all developer-oriented features that help programmers write distributed applications that can work over the Internet. If you're familiar with remote procedure call (RPC), you might think of SOAP as "RPC over HTTP" because SOAP basically makes it possible for applications to activate software objects on other systems over the Internet. And like XML itself, SOAP is an open standard, so we'll also see SOAP implemented on a variety of non-Windows platforms as well, on both the client and server.
All this is just background material, of course. The technology behind .NET is vast and ever expanding. In the coming weeks, Dino Esposito will walk us through the various technologies that make up .NET, as well as the developer products and initiatives we can expect to see in the coming days. The Microsoft Developer Network (MSDN) also has an amazing amount of information about XML, SOAP, and .NET from a programmer's perspective. If you're looking to move your applications to .NET, you should definitely spend some time on MSDN.