LINQ to XML a inne technologie XML

W tym artykule porównano LINQ to XML z następującymi technologiami XML: XmlReader , XSLT, MSXML i XmlLite. Te informacje mogą pomóc w podjęciu decyzji, których technologii użyć.

Aby uzyskać porównanie LINQ to XML z Document Object Model (DOM), zobacz LINQ to XML vs. DOM.

LINQ to XML a XmlReader

XmlReader to szybki, nie buforowania parser tylko do przodu.

LINQ to XML są implementowane na podstawie systemu XmlReader i są ściśle zintegrowane. Można jednak również użyć XmlReader bezpośrednio.

Załóżmy na przykład, że budować usługę sieci Web, która będzie analizować setki dokumentów XML na sekundę, a dokumenty mają tę samą strukturę, co oznacza, że wystarczy napisać tylko jedną implementację kodu, aby analizujeć kod XML. W tym przypadku prawdopodobnie chcesz użyć XmlReader bezpośrednio.

Z kolei w przypadku tworzenia systemu, który analizuje wiele mniejszych dokumentów XML, a każdy z nich jest inny, warto skorzystać z ulepszeń produktywności zapewnianych przez LINQ to XML xml.

LINQ to XML a XSLT

Zarówno LINQ to XML, jak i XSLT zapewniają rozbudowane możliwości przekształcania dokumentów XML. XSLT to deklaratywne podejście oparte na regułach. Zaawansowani programiści XSLT piszą kod XSLT w funkcjonalnym stylu programowania, który kładzie nacisk na podejście bez stanowe. Przekształcenia można zapisywać przy użyciu czystych funkcji, które są implementowane bez efektów ubocznych. Takie podejście oparte na regułach lub funkcjonalne jest nieznane wielu deweloperom i może być trudne i czasochłonne.

XSLT może być produktywnym systemem, który daje aplikacje o wysokiej wydajności. Na przykład niektóre duże firmy internetowe używają formatu XSLT jako sposobu generowania kodu HTML z kodu XML, który został ściągnięty z różnych magazynów danych. Zarządzany aparat XSLT kompiluje kod XSLT do kodu środowiska uruchomieniowego języka wspólnego (CLR) i działa jeszcze lepiej w niektórych scenariuszach niż natywny aparat XSLT.

Jednak język XSLT nie wykorzystuje języka C# i nie Visual Basic wiedzy wielu deweloperów. Wymaga to od deweloperów pisania kodu w innym i złożonym języku programowania. Użycie dwóch nie zintegrowanych systemów programistyczych, takich jak C# (lub Visual Basic) i XSLT, powoduje, że systemy oprogramowania są trudniejsze do opracowania i konserwacji.

Gdy już wybędą umiejętności w używaniu wyrażeń zapytań LINQ to XML, przekształcenia LINQ to XML zaawansowanej technologii, która jest łatwa w użyciu. Zasadniczo dokument XML tworzy się przy użyciu konstrukcji funkcjonalnej, ściągania danych z różnych źródeł, dynamicznego konstruowania obiektów i budowania całości w nowym XElement drzewie XML. Przekształcenie może wygenerować zupełnie nowy dokument. Konstruowanie przekształceń w LINQ to XML jest stosunkowo łatwe i intuicyjne, a wynikowy kod jest czytelny. Zmniejsza to koszty projektowania i konserwacji.

LINQ to XML nie jest przeznaczony do zastępowania XSLT. XSLT jest nadal narzędziem do wyboru w przypadku skomplikowanych i zorientowanych na dokumenty przekształceń XML, zwłaszcza jeśli struktura dokumentu nie jest dobrze zdefiniowana.

Zalety XSLT to standard organizacja World Wide Web Consortium (W3C). Jeśli wymagane jest używanie tylko technologii, które są standardami, XSLT może być bardziej odpowiednie.

XSLT to kod XML, dlatego można nim manipulować programowo.

LINQ to XML a MSXML

MSXML to technologia oparta na technologii COM do przetwarzania kodu XML, która jest zawarta w programie Microsoft Windows. MSXML zapewnia natywną implementację modelu DOM z obsługą XPath i XSLT. Zawiera również nie buforowanie, oparte na zdarzeniach parser SAX2.

MSXML działa dobrze, jest domyślnie bezpieczny w większości scenariuszy i można uzyskać do niego dostęp w programie Internet Explorer do przetwarzania kodu XML po stronie klienta w aplikacjach w stylu AJAX. MSXML można używać z dowolnego języka programowania obsługującego model COM, w tym C++, JavaScript i Visual Basic 6.0.

MSXML nie jest zalecane do użycia w kodzie zarządzanym opartym na clr.

LINQ to XML a XmlLite

XmlLite to nie buforowanie, tylko do przodu, parser ściągania. Deweloperzy korzystają głównie z biblioteki XmlLite w języku C++. Deweloperzy nie zalecają używania programu XmlLite z kodem zarządzanym.

Główną zaletą usługi XmlLite jest to, że jest to lekki, szybki parser XML, który jest bezpieczny w większości scenariuszy. Jej obszar powierzchni zagrożeń jest mały. Jeśli konieczne jest analizowanie niezaufanych dokumentów i chcesz chronić się przed atakami, takimi jak odmowa usługi lub narażenie danych, dobrym rozwiązaniem może być xmlLite.

Język XmlLite nie jest zintegrowany z Language-Integrated Query (LINQ). Nie daje ono programistom ulepszeń produktywności, które są motywacją dla LINQ.

Zobacz też