XML was everywhere at PDC, even if you didn’t notice it. Bill Gates said in his keynote something like “In .Net V1, we put in XML at the surface, with 2.0, Windows Vista and Office 12, we are putting XML at the core of all our products, not only for interop but also in our file formats”. By one count, he used the term “XML” 37 times in his 1 hour presentation.
The WebData XML team showed several different technologies at PDC:
Tools in Visual Studio 2005 and .NET 2.0
Denise Draper gave a talk, and Stan Kitsis had a lab, on the new tools for working with XML in .NET 2.0, especially the new XML editor. Like XML itself, the Visual Studio 2005 XML Editor was used in lots of demos, even if few people made a big deal out of that. It was shown as a configuration file editor, as a Sparkle and Quark designer, in the Web Services and LINQ demo, and played a small role in most of the keynote presentations. We’ve previously seen how the years of work that have gone into building rock solid platform components such as MSXML and System.Xml have paid off for Microsoft and the customers. Now we are leveraging our investments to build XML tools, and it’s nice to see those investments pay off already.
Those producing and using XML directly face a number of challenges, since XML is basically simple but is quite unforgiving if its numerous details are not handled exactly right. Likewise, XSLT is an extremely powerful language but is difficult for most new users to work with. Visual Studio 2005 includes some great new tools for working with XML, especially the new XML editor and the XSLT debugger.
The new XML editor in Visual Studio 2005 validates XML documents with smart IntelliSense and error messaging in the source with tool tips, color coding syntax, and more. XML document validation is supported for any XML document in the XML editor based on the W3C rules of XML as well as any referenced XSD schema or DTD. The XML editor can be customized to create domain-specific editors for different XML vocabularies, and can be “hooked in” to provide advanced editing functionality in custom designers with the Visual Studio SDK.
The new XML tools in Visual Studio includes full debugging of XSLT documents with graphical preview and source output integrated within the Visual Studio 2005 IDE. The XSLT debugger gives developers a window into the dynamic behavior of their XSLT transformations, helping them both understand their stylesheet and learn to grok the XSLT approach.
Language Integrated Query and XML
Dave Remy presented, and Erik Saltwell wrote a lab, on XLinq, the XML support in the forthcoming Language Integrated Query feature of .NET. Dave, Soumitra, and Mike have already blogged about this in some detail.
One of the key challenges to working with XML data has been the impedance mismatch between XML and programming languages. A future release of Visual Studio will provide programming languages and frameworks to help integrate XML and database queries with C# and Visual Basic. XLinq offers a straightforward, easy to use programming model that is lighter from a memory and performance perspective. It is distinguished from APIs based on the W3C DOM in several ways:
o XLinq supports an approach to building XML trees in a top-down manner using functional construction. DOM-like APIs use a bottom-up approach that has been confusing to many developers.
o There is no need to create an XML Document object to hold the XML tree. The XLinq object model does provide an XML Document but you only need to use it when it is necessary, for example if you need to add a comment or processing instruction at the top of the document
o XLinq goes out of its way to make XML names as straightforward as possible to deal with, whereas most developers find the DOM-based APIs quite confusing in their treatment of namespaces and related concepts.
o XLinq has no text nodes, instead developers can simply cast elements as well as attributes to the type of data they represent.
XML support in Visual Basic 9
Erik Meijer and Peter Drayton presented, and Avner Aharoni had a lab, on the XML support in Visual Basic 9. VB9 will offer radical improvements in its ability to work with data in all its forms: as objects, as XML, as relational data. It has features such as query comprehensions, object initializers and anonymous types that enable querying data in a more flexible, natural way than ever before. Also, VB becomes a state-of-the-art dynamic programming environment, with coverage of new features intended to radically simplify working with dynamically typed data on the .NET platform.
Visual Basic will be extended to cover a wide variety of data programming features, taking full advantage of the entire LINQ project, including XLINQ. The two main Xml features of VB will be XML literals and late-binding over XML. XML literals allow programmers to construct XLinq objects such as XDocument and XElement directly using Xml syntax. Values within these objects can be created with expression evaluation and variable substitution. Late-binding over XML allows programmers to access XML nodes directly by name, rather than indirectly using method calls.
How do all these PDC activities relate to one another? The short answer is making XML more usable by mainstream developers. XML now shows up just about everywhere, and it is being used as a file format for everything from configuration files to Office documents to UI specifications. This means that XML is coming to developers who may not be ready or willing to deal with it using the low-level XML tools prevalent today, which force the user to understand the complexities and subtleties of XML in some detail. Furthermore XML builds on a different view of data than do the SQL database tools that most organizations use to manage their information, and it is also distinct from the object-oriented programming style used by most developers. The technologies we showed at PDC aim to improve XML’s usability for users as well as its programmability for programmers.
For More Information
The conference website has links to presentation slides, video of some of the keynotes, instructions for ordering the 30GB of information distributed to attendees, and much more. I trust that team members who participated will update the team blog and their own blogs (linked off the team blog) with more details, their thoughts on what they learned from the experience, and point to the material they put together that may not be easy to find on the conference site.
One more plug – several of us will be at XML 2005 and will dive deeper into some of this material for a more XML-specific audience. We hope to see you there, and hear your response in person or via the contact or comment links here.
Mike Champion (stealing liberally from information supplied by several other team members)