Compartir a través de


LINQ to XML frente a otras tecnologías XML

En este artículo se compara LINQ to XML con las siguientes tecnologías XML: XmlReader, XSLT, MSXML y XmlLite. Esta información puede ayudarle a decidir qué tecnologías usar.

Para obtener una comparación de LINQ to XML con el Modelo de objetos de documento (DOM), vea LINQ to XML frente a DOM.

LINQ to XML frente a XmlReader

XmlReader es un analizador rápido, de solo avance y sin almacenamiento en caché.

LINQ to XML se implementa sobre XmlReadery están estrechamente integrados. Sin embargo, también puede usar XmlReader directamente.

Por ejemplo, supongamos que va a crear un servicio web que analizará cientos de documentos XML por segundo y los documentos tienen la misma estructura, lo que significa que solo tiene que escribir una implementación del código para analizar el XML. En este caso, probablemente quiera usar XmlReader directamente.

Por el contrario, si va a crear un sistema que analiza muchos documentos XML más pequeños y cada uno es diferente, querrá aprovechar las mejoras de productividad que proporciona LINQ to XML.

LINQ to XML frente a XSLT

Tanto LINQ to XML como XSLT proporcionan amplias funcionalidades de transformación de documentos XML. XSLT es un enfoque declarativo basado en reglas. Los programadores avanzados de XSLT escriben XSLT en un estilo de programación funcional que enfatiza un enfoque sin estado. Las transformaciones se pueden escribir mediante funciones puras que se implementan sin efectos secundarios. Este enfoque funcional o basado en reglas es desconocido para muchos desarrolladores y puede ser difícil y lento para aprender.

XSLT puede ser un sistema productivo que produce aplicaciones de alto rendimiento. Por ejemplo, algunas grandes empresas web usan XSLT como una manera de generar HTML a partir de XML que se ha extraído de diferentes tipos de almacenes de datos. El motor XSLT administrado compila XSLT en código de Common Language Runtime (CLR) y funciona aún mejor en algunos escenarios que el motor XSLT nativo.

Sin embargo, XSLT no aprovecha los conocimientos de C# y Visual Basic que muchos desarrolladores tienen. Requiere que los desarrolladores escriban código en un lenguaje de programación diferente y complejo. El uso de dos sistemas de desarrollo no integrados como C# (o Visual Basic) y XSLT da como resultado sistemas de software más difíciles de desarrollar y mantener.

Después de convertirse en experto en el uso de expresiones de consulta LINQ to XML, las transformaciones LINQ to XML son una tecnología eficaz que es fácil de usar. Básicamente, se forma el documento XML mediante la construcción funcional, la extracción de datos de varios orígenes, la XElement construcción de objetos dinámicamente y el montaje de todo en un nuevo árbol XML. La transformación puede generar un documento completamente nuevo. La construcción de transformaciones en LINQ to XML es relativamente fácil e intuitiva, y el código resultante es legible. Esto reduce los costos de desarrollo y mantenimiento.

LINQ to XML no está diseñado para reemplazar XSLT. XSLT sigue siendo la herramienta preferida para transformaciones XML complicadas y centradas en documentos, especialmente si la estructura del documento no está bien definida.

XSLT tiene la ventaja de ser un estándar de World Wide Web Consortium (W3C). Si tiene un requisito de usar solo tecnologías que son estándares, XSLT podría ser más adecuado.

XSLT es XML y por eso se puede manipular mediante programación.

LINQ to XML frente a MSXML

MSXML es la tecnología basada en COM para procesar XML que se incluye con Microsoft Windows. MSXML proporciona una implementación nativa del DOM con compatibilidad con XPath y XSLT. También contiene el analizador sin caché basado en eventos SAX2.

MSXML funciona bien, es seguro de forma predeterminada en la mayoría de los escenarios y se puede acceder a él en un explorador para realizar el procesamiento XML del lado cliente en aplicaciones de estilo AJAX. MSXML se puede usar desde cualquier lenguaje de programación que admita COM, incluidos C++, JavaScript y Visual Basic 6.0.

MSXML no se recomienda para su uso en código administrado basado en CLR.

LINQ to XML frente a XmlLite

XmlLite es un analizador de extracción sin almacenamiento en caché, de solo avance. Los desarrolladores usan principalmente XmlLite con C++. No se recomienda que los desarrolladores usen XmlLite con código administrado.

La principal ventaja de XmlLite es que es un analizador XML ligero y rápido que es seguro en la mayoría de los escenarios. Su área expuesta a amenazas es pequeña. Si tiene que analizar documentos que no son de confianza y desea protegerse frente a ataques como la denegación de servicio o la exposición de datos, XmlLite podría ser una buena opción.

XmlLite no está integrado con Language-Integrated Query (LINQ). No produce mejoras de productividad del programador que son la fuerza motivadora detrás de LINQ.

Consulte también