Funkční a procedurální programování (LINQ to XML)

Existují různé typy aplikací XML:

  • Některé aplikace přebírají zdrojové dokumenty XML a vytvářejí nové dokumenty XML, které jsou v jiném tvaru než zdrojové dokumenty.
  • Některé aplikace přebírají zdrojové dokumenty XML a vytvářejí výsledné dokumenty v úplně odlišné podobě, jako jsou textové soubory HTML nebo CSV.
  • Některé aplikace přebírají zdrojové dokumenty XML a vkládají záznamy do databáze.
  • Některé aplikace přebírají data z jiného zdroje, například z databáze, a vytvářejí z nich dokumenty XML.

Nejedná se o všechny typy aplikací XML, ale jedná se o reprezentativní sadu typů funkcí, které musí implementovat programátor XML.

U všech těchto typů aplikací existují dva kontrastní přístupy, které může vývojář provést:

  • Funkční konstrukce s využitím deklarativního přístupu
  • Úpravy stromu XML v paměti pomocí procedurálního kódu

LINQ to XML podporuje oba přístupy.

Při použití funkčního přístupu napíšete transformace, které přebírají zdrojové dokumenty a generují zcela nové výsledné dokumenty s požadovaným obrazcem.

Při úpravě stromu XML na místě napíšete kód, který prochází a prochází uzly ve stromu XML v paměti, vkládání, odstraňování a úpravy uzlů podle potřeby.

Jazyk LINQ to XML můžete použít s některým z přístupů. Používáte stejné třídy a v některých případech stejné metody. Struktura a cíle těchto dvou přístupů se ale liší. Například v různých situacích bude mít jeden nebo druhý přístup často lepší výkon a používat více nebo méně paměti. Kromě toho bude jeden nebo druhý přístup jednodušší psát a poskytovat udržovatelnější kód.

Pokud chcete vidět dva přístupy naproti tomu, podívejte se na úpravy stromu XML v paměti vs. funkční konstrukce.

Kurz psaní funkčních transformací najdete v tématu Úvod k čistě funkčním transformacím.