Partilhar via


Programação funcional versus procedural (LINQ to XML)

Há vários tipos de aplicativos XML:

  • Alguns aplicativos utilizam documentos XML de origem e geram novos documentos XML que estão em um formato diferente do que os documentos de origem.

  • Alguns aplicativos utilizam documentos XML de origem e produzem documentos de resultado em um formato totalmente diferente, como arquivos de texto HTML ou CSV.

  • Alguns aplicativos utilizam documentos XML de origem e inserem registros em um banco de dados.

  • Alguns aplicativos utilizam dados de outra origem, como um banco de dados e criam documentos XML a partir deles.

Esses não são todos os tipos de aplicativos XML, mas são um conjunto representativo de tipos de funcionalidade que um programador XML tem que implementar.

Com todos esses tipos de aplicativos, há duas abordagens contrastantes que um desenvolvedor pode utilizar:

  • Construção funcional usando uma abordagem declarativa.

  • Modificação da árvore XML na memória usando código procedural.

O LINQ to XML oferece suporte às duas abordagens.

Ao usar a abordagem funcional, você escreve as transformações que utilizam os documentos de origem e geram documentos de resultado completamente novos com o formato desejado.

Ao modificar uma árvore XML no lugar, você escreve o código que percorre e navega por meio de nós em uma árvore XML na memória, inserindo, excluindo e modificando os nós conforme o necessário.

Você pode usar LINQ to XML com qualquer abordagem. Você usa as mesmas classes e, em alguns casos, os mesmos métodos. No entanto, a estrutura e as metas das duas abordagens são muito diferentes. Por exemplo, em situações diferentes, uma ou outra abordagem terá geralmente melhor desempenho, e usará mais ou menos memória. Além disso, uma ou outra abordagem será mais fácil de escrever e produzirá um código mais sustentável.

Para ver as duas abordagens contrastadas, consulte Alteração de memória da árvore XML na construção XML funcional (LINQ te o).

Para gravar um tutorial sobre como escrever transformações funcionais, consulte Transformações funcionais puras XML.

Consulte também

Conceitos

Visão geral da programação LINQ to XML