LINQ naar XML versus andere XML-technologieën
Dit artikel vergelijkt LINQ met XML met de volgende XML-technologieën: XmlReader, XSLT, MSXML en XmlLite. Met deze informatie kunt u bepalen welke technologieën u wilt gebruiken.
Zie LINQ naar XML versus DOM voor een vergelijking van LINQ naar XML met HET DOCUMENT Object Model (DOM).
LINQ naar XML versus XmlReader
XmlReader is een snelle parser voor alleen-doorsturen, niet-caching.
LINQ naar XML wordt geïmplementeerd boven op XmlReaderen ze zijn nauw geïntegreerd. U kunt echter ook rechtstreeks gebruiken XmlReader .
Stel dat u een webservice bouwt waarmee honderden XML-documenten per seconde worden geparseerd en dat de documenten dezelfde structuur hebben, wat betekent dat u slechts één implementatie van de code hoeft te schrijven om de XML te parseren. In dit geval wilt u waarschijnlijk rechtstreeks gebruiken XmlReader .
Als u daarentegen een systeem bouwt dat veel kleinere XML-documenten parseert en elk document anders is, wilt u profiteren van de productiviteitsverbeteringen die LINQ aan XML biedt.
LINQ naar XML versus XSLT
Zowel LINQ naar XML als XSLT bieden uitgebreide mogelijkheden voor XML-documenttransformatie. XSLT is een op regels gebaseerde, declaratieve benadering. Geavanceerde XSLT-programmeurs schrijven XSLT in een functionele programmeerstijl die een staatloze benadering benadrukt. Transformaties kunnen worden geschreven met behulp van pure functies die zonder bijwerkingen worden geïmplementeerd. Deze op regels gebaseerde of functionele benadering is onbekend voor veel ontwikkelaars en kan lastig en tijdrovend zijn om te leren.
XSLT kan een productief systeem zijn dat hoogwaardige toepassingen oplevert. Sommige grote webbedrijven maken bijvoorbeeld gebruik van XSLT als een manier om HTML te genereren op basis van XML die is opgehaald uit verschillende soorten gegevensarchieven. De beheerde XSLT-engine compileert XSLT naar CLR-code (Common Language Runtime) en presteert in sommige scenario's nog beter dan de systeemeigen XSLT-engine.
XSLT maakt echter geen gebruik van de kennis van C# en Visual Basic die veel ontwikkelaars hebben. Hiervoor moeten ontwikkelaars code schrijven in een andere en complexe programmeertaal. Het gebruik van twee niet-geïntegreerde ontwikkelsystemen zoals C# (of Visual Basic) en XSLT resulteert in softwaresystemen die moeilijker te ontwikkelen en te onderhouden zijn.
Nadat u linq hebt gebruikt voor XML-queryexpressies, is LINQ naar XML-transformaties een krachtige technologie die eenvoudig te gebruiken is. In principe vormt u uw XML-document met behulp van functionele constructie, het ophalen van gegevens uit verschillende bronnen, het dynamisch samenstellen van XElement objecten en het samenvoegen van het geheel in een nieuwe XML-structuur. De transformatie kan een volledig nieuw document genereren. Het bouwen van transformaties in LINQ naar XML is relatief eenvoudig en intuïtief en de resulterende code kan worden gelezen. Dit vermindert de ontwikkelings- en onderhoudskosten.
LINQ naar XML is niet bedoeld om XSLT te vervangen. XSLT is nog steeds het hulpmiddel van de keuze voor gecompliceerde en documentgerichte XML-transformaties, met name als de structuur van het document niet goed is gedefinieerd.
XSLT heeft het voordeel dat het een W3C-standaard (World Wide Web Consortium) is. Als u een vereiste hebt dat u alleen technologieën gebruikt die standaarden zijn, is XSLT mogelijk geschikter.
XSLT is XML en daarom kan het programmatisch worden gemanipuleerd.
LINQ naar XML versus MSXML
MSXML is de COM-technologie voor het verwerken van XML die is opgenomen in Microsoft Windows. MSXML biedt een systeemeigen implementatie van de DOM met ondersteuning voor XPath en XSLT. Het bevat ook de SAX2 niet-caching, gebeurtenisgebaseerde parser.
MSXML presteert goed, is standaard veilig in de meeste scenario's en kan worden geopend in een browser voor het uitvoeren van XML-verwerking aan de clientzijde in AJAX-toepassingen. MSXML kan worden gebruikt vanuit elke programmeertaal die COM ondersteunt, waaronder C++, JavaScript en Visual Basic 6.0.
MSXML wordt niet aanbevolen voor gebruik in beheerde code op basis van de CLR.
LINQ naar XML versus XmlLite
XmlLite is een niet-caching, alleen voorwaarts, pull-parser. Ontwikkelaars gebruiken voornamelijk XmlLite met C++. Het wordt niet aanbevolen voor ontwikkelaars om XmlLite te gebruiken met beheerde code.
Het belangrijkste voordeel van XmlLite is dat het een lichtgewicht, snelle XML-parser is die in de meeste scenario's veilig is. Het bedreigingsoppervlak is klein. Als u niet-vertrouwde documenten moet parseren en u wilt beschermen tegen aanvallen zoals denial of service of blootstelling van gegevens, is XmlLite mogelijk een goede optie.
XmlLite is niet geïntegreerd met Language-Integrated Query (LINQ). Het levert de productiviteitsverbeteringen van de programmeur niet op die de motiverende kracht achter LINQ zijn.