Partager via


Comparaison de LINQ to XML et des autres technologies XML

Mise à jour : November 2007

Cette rubrique compare LINQ to XML aux technologies XML suivantes : XmlReader, XSLT, MSXML et XmlLite. Ces informations peuvent vous aider à décider de la technologie à utiliser.

Pour une comparaison de LINQ to XML et du modèle DOM (Document Objet Model), consultez Comparaison de LINQ to XML et DOM.

Comparaison de LINQ to XML et de XmlReader

XmlReader est un analyseur rapide, avant uniquement et sans mise en cache.

LINQ to XML est implémenté sur XmlReader et tous deux sont étroitement intégrés. Toutefois, vous pouvez également utiliser un XmlReader seul.

Par exemple, supposez que vous créez un service Web qui analysera des centaines de documents XML par seconde et que les documents ont la même structure, ce qui signifie que vous n'avez qu'une seule implémentation du code à écrire pour analyser le XML. Dans ce cas, vous souhaiterez probablement utiliser un XmlReader seul.

En revanche, si vous créez un système qui analyse beaucoup de petits documents XML et que chacun d'eux est différent, il est préférable de tirer parti des améliorations de productivité fournies par LINQ to XML.

Comparaison de LINQ to XML et XSLT

LINQ to XML et XSLT fournissent tous deux des fonctionnalités de transformation de documents XML étendues. XSLT est une approche déclarative basée sur des règles. Les programmeurs XSLT expérimentés écrivent du code XSLT dans un style de programmation fonctionnelle qui met l'accent sur une approche sans état. Les transformations peuvent être écrites à l'aide de fonctions pures implémentées sans effets secondaires. Cette approche fonctionnelle ou basée sur des règles est peu connue de la plupart des développeurs et son apprentissage peut être long et difficile.

XSLT peut être un système très productif qui génère des applications hautes performances. Par exemple, certaines grandes sociétés basées sur le Web utilisent XSLT afin de générer du code HTML à partir de code XML extrait de différents magasins de données. Le moteur XSLT managé compile XSLT en code CLR et, dans certains scénarios, offre des performances encore meilleures que le moteur XSLT natif.

Toutefois, XSLT ne tire pas parti des connaissances en C# et Visual Basic que de nombreux développeurs possèdent. Il exige des développeurs qu'ils écrivent du code dans un langage de programmation différent et complexe. L'utilisation de deux systèmes de développement non intégrés tels que C# (ou Visual Basic) et XSLT rend les systèmes logiciels plus difficiles à développer et à gérer.

Une fois que vous maîtrisez les expressions de requête LINQ to XML, les transformations LINQ to XML représentent une technologie puissante et facile à utiliser. En résumé, vous formez votre document XML en utilisant la construction fonctionnelle, en extrayant des données de diverses sources, en construisant des objets XElement de manière dynamique et en assemblant l'ensemble dans une nouvelle arborescence XML. La transformation peut générer un document complètement nouveau. La construction de transformations dans LINQ to XML est relativement facile et intuitive et le code obtenu est lisible. Cela permet de réduire les coûts de développement et de maintenance.

LINQ to XML n'a pas pour but de remplacer XSLT. XSLT est toujours l'outil de prédilection pour les transformations XML complexes et centrées sur les documents, en particulier si la structure du document n'est pas bien définie.

XSLT présente l'avantage d'être une norme World Wide Web Consortium (W3C). Si vous avez l'obligation d'utiliser des technologies qui constituent des normes, il peut être plus judicieux d'utiliser XSLT.

Le code XSLT étant du code XML, il peut par conséquent être manipulé par programme.

Comparaison de LINQ to XML et MSXML

MSXML est la technologie COM pour le traitement de code XML fournie avec Microsoft Windows. MSXML fournit une implémentation native du modèle DOM avec prise en charge de XPath et XSLT. Il contient également l'analyseur sans mise en cache et basé sur les événements SAX2.

MSXML offre de bonnes performances, est sécurisé par défaut dans la plupart des scénarios et est accessible dans Internet Explorer pour l'exécution de traitement XML du côté client dans les applications de style AJAX. MSXML peut être utilisé à partir de n'importe quel langage de programmation qui prend en charge COM, notamment C++, JavaScript et Visual Basic 6.0.

L'utilisation de MSXML n'est pas recommandée dans le code managé basé sur le Common Language Runtime (CLR).

Comparaison de LINQ to XML et de XmlLite

XmlLite est un analyseur de type extraction, avant uniquement et sans mise en cache. Les développeurs utilisent principalement XmlLite avec C++. Il est déconseillé aux développeurs d'utiliser XmlLite avec du code managé.

Le principal avantage de XmlLite est sa légèreté et sa rapidité d'analyse XML. De plus, il est sécurisé dans la plupart des scénarios. Sa surface de menace est très faible. Si vous devez analyser des documents non approuvés et que vous souhaitez vous protéger contre les attaques de type déni de service ou exposition de données, XmlLite peut constituer un bon choix.

XmlLite n'est pas intégré à LINQ (Language Integrated Query). Il ne procure pas les améliorations de productivité de programmeur qui constituent le facteur de motivation associé à LINQ.

Voir aussi

Autres ressources

Mise en route (LINQ to XML)