Compartilhar via


Aplicabilidade da transformação funcional (LINQ to XML)

Transformações funcionais puras são aplicáveis em uma ampla variedade de situações.

A abordagem de transformação funcional é ideal para consultar e manipular dados estruturados; portanto, ele se encaixa bem com as tecnologias LINQ. No entanto, a transformação funcional tem uma aplicabilidade muito maior do que o uso com LINQ. Qualquer processo em que o foco principal esteja na transformação de dados de um formulário para outro provavelmente deve ser considerado como um candidato para a transformação funcional.

Essa abordagem é aplicável a muitos problemas que, à primeira vista, podem não parecer candidatos. Usada em conjunto com ou separadamente do LINQ, a transformação funcional deve ser considerada para as seguintes áreas:

  • Documentos baseados em XML. Dados bem formados de qualquer dialeto XML podem ser facilmente manipulados por meio da transformação funcional. Para obter mais informações, consulte a transformação funcional de XML.
  • Outros formatos de arquivo estruturados. De arquivos Windows.ini a documentos de texto sem formatação, a maioria dos arquivos tem alguma estrutura que se presta à análise e à transformação.
  • Protocolos de streaming de dados. A codificação de dados e a decodificação de dados de protocolos de comunicação geralmente podem ser representadas por uma transformação funcional simples.
  • Dados RDBMS e OODBMS. Bancos de dados relacionais e orientados a objetos, assim como XML, são fontes de dados estruturadas amplamente usadas.
  • Soluções matemáticas, estatísticas e científicas. Esses campos tendem a manipular grandes conjuntos de dados para ajudar o usuário a visualizar, estimar ou realmente resolver problemas não triviais.

Conforme descrito em Refatorar em funções puras, usar funções puras é um exemplo de programação funcional. Além de seus benefícios imediatos, o uso de funções puras fornece uma experiência valiosa em pensar sobre problemas de uma perspectiva de transformação funcional. Essa abordagem também pode ter um grande impacto no design de programas e classes. Isso é especialmente verdadeiro quando um problema se presta a uma solução de transformação de dados, conforme descrito acima.

Embora estejam além do escopo deste tutorial, os designs que são influenciados pela perspectiva de transformação funcional tendem a se concentrar mais em processos do que em objetos como atores, e a solução resultante tende a ser implementada como uma série de transformações em grande escala, em vez de alterações de estado de objeto individuais.

Novamente, lembre-se de que o C# e o Visual Basic dão suporte a abordagens imperativas e funcionais, portanto, o melhor design para seu aplicativo pode incorporar elementos de ambos.

Consulte também