LINQ to XML a inne technologie XML

W tym artykule porównaliśmy linQ to XML z następującymi technologiami XML: XmlReader, XSLT, MSXML i XmlLite. Te informacje mogą pomóc w podjęciu decyzji o tym, które technologie mają być używane.

Aby zapoznać się z porównaniem linQ to XML z modelem obiektów dokumentów (DOM), zobacz LINQ to XML a DOM.

LINQ to XML a XmlReader

XmlReader jest szybkim analizatorem tylko do przodu, bez buforowania.

LINQ to XML jest implementowany na platformie XmlReaderi jest ściśle zintegrowany. Można jednak również użyć XmlReader bezpośrednio.

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

Natomiast jeśli tworzysz system, 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.

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 podejście deklaratywne oparte na regułach. Zaawansowani programiści XSLT piszą XSLT w funkcjonalnym stylu programowania, który podkreśla podejście bezstanowe. Przekształcenia można zapisywać przy użyciu czystych funkcji, które są implementowane bez skutków ubocznych. To podejście oparte na regułach lub funkcjonalne jest nieznane wielu deweloperom i może być trudne i czasochłonne do nauki.

XSLT może być wydajnym systemem, który daje aplikacje o wysokiej wydajności. Na przykład niektóre duże firmy internetowe używają języka XSLT jako sposobu generowania kodu HTML z kodu XML, który został pobrany z różnych rodzajów 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 XSLT nie korzysta z wiedzy języka C# i Visual Basic, którą ma wielu deweloperów. Wymaga to od deweloperów pisania kodu w innym i złożonym języku programowania. Użycie dwóch niezintegrowanych systemów programistycznych, takich jak C# (lub Visual Basic) i XSLT, skutkuje systemami oprogramowania, które są trudniejsze do opracowywania i konserwacji.

Po ukończeniu korzystania z wyrażeń zapytań LINQ to XML przekształcenia LINQ to XML są zaawansowaną technologią, która jest łatwa w użyciu. Zasadniczo dokument XML jest tworzony przy użyciu konstrukcji funkcjonalnej, ściągania XElement danych z różnych źródeł, tworzenia obiektów dynamicznie i tworzenia całości w nowym 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 programowania i konserwacji.

LINQ to XML nie ma na celu zastąpienia XSLT. XSLT jest nadal narzędziem do wyboru w przypadku skomplikowanych i skoncentrowanych na dokumentach przekształceń XML, zwłaszcza jeśli struktura dokumentu nie jest dobrze zdefiniowana.

XSLT ma przewagę nad standardem World Wide Web Consortium (W3C). Jeśli masz wymaganie, że używasz tylko technologii, które są standardami, XSLT może być bardziej odpowiednie.

XSLT to KOD XML i dlatego można go programowo manipulować.

LINQ to XML a MSXML

MSXML to technologia oparta na modelu COM do przetwarzania kodu XML dołączonego do systemu Microsoft Windows. Program MSXML zapewnia natywną implementację modelu DOM z obsługą bibliotek XPath i XSLT. Zawiera również analizator saX2, który nie jest buforowaniem, opartym na zdarzeniach.

Program MSXML działa dobrze, jest domyślnie bezpieczny w większości scenariuszy i może być dostępny w przeglądarce do wykonywania przetwarzania XML po stronie klienta w aplikacjach w stylu AJAX. Program MSXML może być używany z dowolnego języka programowania obsługującego język COM, w tym C++, JavaScript i Visual Basic 6.0.

Program MSXML nie jest zalecany do użycia w kodzie zarządzanym na podstawie środowiska CLR.

LINQ to XML a XmlLite

XmlLite to buforowanie, tylko do przodu, analizator ściągania. Deweloperzy korzystają głównie z biblioteki XmlLite z językiem C++. Nie zaleca się, aby deweloperzy używali interfejsu XmlLite z kodem zarządzanym.

Główną zaletą xmllite jest to, że jest to lekki, szybki analizator XML, który jest bezpieczny w większości scenariuszy. Jego obszar powierzchni zagrożenia jest mały. Jeśli musisz przeanalizować niezaufane dokumenty i chcesz chronić przed atakami, takimi jak odmowa usługi lub ujawnienie danych, rozwiązanie XmlLite może być dobrym rozwiązaniem.

XmlLite nie jest zintegrowany z zapytaniem zintegrowanym z językiem (LINQ). Nie daje to ulepszeń produktywności programistów, które są siłą motywającą LINQ.

Zobacz też