Thoughts from the office by Ed Ball
Friday, March 05, 2004

The intersection of the .NET Framework and XML is certainly worthy of its own book, and Applied XML Programming for Microsoft .NET, by Dino Esposito, fits the bill nicely. It was quite refreshing to read a specialized technical book that doesn't teach you the basics, but goes straight into the interesting topics. This book doesn't start by describing the CLR, or how to write C# code, or even what an XML document looks like. Instead it starts with the unique low-level XML parsing technology provided by the .NET Framework, explaining why the standard XML DOM isn't good enough (it requires the entire XML document to live in memory) and why the pull model of XmlReader is more useful than the push model of SAX (which can easily be implemented with XmlReader, but not vice versa).

The XML support of the .NET Framework uses many different technologies (DOM, DTD, XSD, XPath, XSLT, etc.), and I thought that Dino did a good job of representing those technologies without reproducing their specifications. I love XPath, so I took special interest in the XPathDocument class, an alternate representation of an XML document that's optimized for XPath queries. I also enjoyed the chapter on XML serialization, and now have a firm grasp of the difference between the SOAP formatter and the XML serializer, which both convert between objects and XML, but do so in very different ways. I'm not much of an ASP.NET/ADO.NET guy, so the stuff about data sets and Web services wasn't that useful to me, but it was easy to skip/skim.

Every .NET developer should read this book (because every .NET developer is going to have to work with XML sooner or later). I only hope that I can find more specialized technical books like this one that don't spend the first 100 pages telling me what I have already learned from the “broad overview” books.

3/5/2004 12:54:30 PM (Pacific Standard Time, UTC-08:00) | Comments [0] | Books#
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Search
Archive
Links
Categories
Administration
Blogroll