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.