Developers blog, .NET, C#, VB.NET, ATLAS, AJAX, WWF, ORM, LINQ, ARCHITECTURE and more by Frank Kroondijk
dinsdag, augustus 08, 2006
a freshen up article by Aaron Skonnard
System.Xml 2.0 Design Goals
Improving System.Xml performance was a driving force behind many of the changes in System.Xml 2.0. The team invested significant resources and were quite successful. Compared to their .NET Framework 1.1 predecessors, the new XmlTextReader and XmlTextWriter classes are now twice as fast as before, the XSLT performance is three to four times as fast, and XML Schema validation is faster by about 20 to 25 percent.
To achieve most of these performance improvements some significant redesign and targeted optimizations were required. For example, it took some serious reworking to make the .NET XSLT implementation just as fast as its unmanaged predecessor, MSXML 4.0. Now in System.Xml 2.0, the XSLT implementation builds Microsoft intermediate language (MSIL) directly, which is then JIT compiled by the .NET runtime and executed as machine code. The resulting performance is very similar to that of MSXML 4.0 in most cases.
Taking advantage of these performance benefits requires proper use of the new and improved System.Xml library, which I'll discuss in the sections that follow. In addition to performance, the other design goals included enhanced usability, compatibility, and standards. Towards the end of the System.Xml 2.0 development cycle, it became apparent that the System.Xml team really cared about making their offering the most practical and usable solution on the market today. This required some tough choices regarding the feature set, but in the end the library's usability speaks for itself.