Programowanie funkcjonalne a proceduralne (LINQ to XML)
Istnieją różne typy aplikacji XML:
- Niektóre aplikacje przyjmują źródłowe dokumenty XML i tworzą nowe dokumenty XML, które znajdują się w innym kształcie niż dokumenty źródłowe.
- Niektóre aplikacje przyjmują źródłowe dokumenty XML i generują dokumenty wynikowe w zupełnie innej formie, takiej jak pliki tekstowe HTML lub CSV.
- Niektóre aplikacje przyjmują źródłowe dokumenty XML i wstawiają rekordy do bazy danych.
- Niektóre aplikacje przyjmują dane z innego źródła, takiego jak baza danych, i tworzą na ich podstawie dokumenty XML.
Nie są to wszystkie typy aplikacji XML, ale są to reprezentatywny zestaw typów funkcji, które musi zaimplementować programista XML.
W przypadku wszystkich tych typów aplikacji istnieją dwa kontrastujące podejścia, które deweloper może wykonać:
- Konstrukcja funkcjonalna przy użyciu podejścia deklaratywnego.
- Modyfikowanie drzewa XML w pamięci przy użyciu kodu proceduralnego.
LINQ to XML obsługuje obie metody.
W przypadku korzystania z podejścia funkcjonalnego można pisać przekształcenia, które przyjmują dokumenty źródłowe i generują całkowicie nowe dokumenty wynikowe z żądanym kształtem.
Podczas modyfikowania drzewa XML pisze się kod, który przechodzi i przechodzi przez węzły w drzewie XML w pamięci, wstawia, usuwa i modyfikuje węzły w razie potrzeby.
Można użyć LINQ to XML z jedną z metod. Używasz tych samych klas, a w niektórych przypadkach te same metody. Jednak struktura i cele tych dwóch podejść są różne. Na przykład w różnych sytuacjach jedno lub drugie podejście często będzie miało lepszą wydajność i używa więcej lub mniej pamięci. Ponadto jedno lub drugie podejście będzie łatwiejsze do pisania i zwracania bardziej konserwowalnego kodu.
Aby zobaczyć dwa kontrastowe podejścia, zobacz Modyfikacja drzewa XML w pamięci a konstrukcja funkcjonalna.
Aby zapoznać się z samouczkiem dotyczącym pisania przekształceń funkcjonalnych, zobacz Wprowadzenie do czystych przekształceń funkcjonalnych.