/ / Serializacja kontra LINQ - c #, xml

Serializacja kontra LINQ - c #, xml

Obecnie piszę aplikację do zarządzanianiektórzy klienci. Klienci mają pewne relacje, takie jak zamówienia. Możesz sobie wyobrazić, że jest to baza danych Northwind. Chcę zapisać dane w pliku XML. Moja aplikacja powinna czytać, modyfikować i zapisywać dane. Myślę, że są dwa podejścia. Pierwszym podejściem jest zapisywanie, odczytywanie i modyfikowanie danych za pomocą klasy XmlSerializer. Drugie podejście polega na wykonaniu operacji za pomocą LINQ-to-XML. Wszystkie moje zajęcia są napisane w prostych klasach C #. Więc nie jestem pewien. Co myślisz? Co powinienem użyć na moje potrzeby?

Z góry dziękuję!

Odpowiedzi:

9 dla odpowiedzi № 1

LINQ to XML jest dobry do wysyłania zapytań do dokumentów XML.

Jeśli zmienisz / serializuje obiekt, pozostawiłbym go klasie XmlSerializer.


0 dla odpowiedzi nr 2

Czy naprawdę, naprawdę jesteś pewien, że chcesz tego użyć?XML do tego celu? Możesz użyć SQL Server Compact Edition, aby mieć funkcje SQL Server, które są wbudowane w skompilowaną aplikację bez zewnętrznego śladu. Baza danych jest znacznie lepszym wyborem niż używanie XML-a w opisywanym przez ciebie sposobie.


0 dla odpowiedzi № 3

Jest wiele rzeczy do rozważeniaserializacja. Mimo że jest to związane z C ++, omawia niektóre z powikłań serializacji i struktur danych, które mają być używane podczas serializacji.

http://www.parashift.com/c++-faq-lite/serialization.html

Również jeśli inna aplikacja będzie korzystała z serializacji danych wyjściowych, unikałbym używania klasy XmlSerializer i tworzenia własnego schematu z myślą o migracji danych i kompatybilności wstecznej.


0 dla odpowiedzi nr 4

Linq do XML, więc mniej, jeśli zmienisz zdanie, aby ustawić w EF lub Linq na SQL będzie łatwe.


0 dla odpowiedzi № 5

Zalecam użycie DataContractSerializer zamiast XmlSerializer. XmlSerializer jest nadal obsługiwany, ale naprawiane są tylko krytyczne błędy (patrz komentarz do XSD.EXE - niepoprawna klasa wygenerowana dla abstrakcyjnego typu z pochodnymi typami w dniu 10/1/2008:

Niestety, naprawiamy tylko proaktywnienajważniejsze problemy wpływające na klienta w XmlSerializer i xsd.exe. Jeśli ten problem wpływa na działalność, skontaktuj się z Pomocą techniczną firmy Microsoft, a my z przyjemnością zbadamy różne opcje.

Jedynym minusem, jeśli takowy jest, jest to, żeXmlSerializer umożliwia szczegółową kontrolę nad formatem XML. Jeśli zamierzasz używać XML tylko do własnych celów, to nie ma to znaczenia, a ulepszony zestaw szybkości i zestawu funkcji DataContractSerializer powinien być atrakcyjny dla Ciebie.

BTW, pozwala ci "najlepsze z obu światów". Może serializować dane do postaci binarnej XML, która jest bardziej kompaktowa, ale nadal jest XML i może być odczytywana przez klasę XmlDictionaryReader (która jest XmlReader).