Compartir a través de


Programación funcional frente a programación de procedimientos (LINQ to XML)

Existen varios tipos de aplicaciones XML:

  • Algunas aplicaciones toman los documentos XML de origen y crean nuevos documentos XML que tienen una forma diferente que los documentos de origen.
  • Algunas aplicaciones toman documentos XML de origen y crean documentos de resultado de una forma totalmente diferente, como archivos HTML o de texto CSV.
  • Algunas aplicaciones toman documentos XML de origen e insertan registros en una base de datos.
  • Algunas aplicaciones toman datos de otro origen de datos, como una base de datos y crean documentos XML a partir de él.

Estos no son todos los tipos de aplicaciones XML, pero son un conjunto representativo de los tipos de funcionalidad que un programador XML debe implementar.

Con todos esos tipos de aplicaciones un desarrollador puede tomar dos enfoques opuestos:

  • Construcción funcional usando un enfoque declarativo.
  • Modificación del árbol XML en memoria usando código de procedimiento.

LINQ to XML admite ambos enfoques.

Cuando se utiliza el enfoque funcional, se escriben transformaciones que toman los documentos de origen y generan documentos de resultados completamente nuevos con la forma que se desee.

Cuando se modifica un árbol XML, se escribe código que atraviese los nodos de un árbol XML y navegue por ellos en memoria para insertar, eliminar y modificar nodos según sea necesario.

Puede usar LINQ to XML con cualquier enfoque. Se usan las mismas clases y, en algunos casos, los mismos métodos. No obstante, la estructura y los objetivos de los dos enfoques son diferentes. Por ejemplo, en situaciones diferentes, uno u otro enfoque tendrá a menudo un rendimiento mejor y usará más o menos memoria. Asimismo, uno u otro enfoque será más fácil de escribir y proporcionará código más fácil de mantener.

Para obtener una comparación de los dos enfoques, vea Modificación del árbol XML en memoria frente a la construcción funcional.

Para obtener un tutorial sobre la escritura de transformaciones funcionales, vea Introducción a las transformaciones funcionales puras.