2011-07-16 14 views
5

Poszukuję prostego rozwiązania do serializowania i przechowywania obiektów, które zawierają konfigurację, stan aplikacji i dane. Jest to prosta aplikacja, nie ma wiele danych. Prędkość nie jest problemem. Chcę, żeby to było w toku. Chcę, aby był łatwiejszy do edycji w edytorze tekstu niż w xml.Najprostszym sposobem serializowania i przechowywania obiektów wC#?

Nie mogę znaleźć żadnej bazy danych dokumentów dla .NET, która może obsłużyć ją w procesie. Po prostu serializowanie do xml Im nie pewnie chcę zrobić, ponieważ jego ... xml. Serializing do JSON wydaje się bardzo specyficzny dla javascript, a ja nie będę używał tych danych w javascript.

Sądzę, że jest to bardzo przyjemny sposób, ale ATM jest skłonny do używania JSON pomimo jego inklinacji javascript.

+0

"Nie mogę znaleźć żadnej bazy danych dokumentów dla .NET, która może obsłużyć to w procesie" - co masz na myśli? w trakcie procesu mylić .. – Tigran

+0

Patrząc na MongoDB wymaga osobnego procesu do obsługi wniosków o dane. Id raczej pominąć uruchomienie innego procesu i mieć wszystko w tym samym procesie. – MatteS

+0

ok, więc może być w mojej odpowiedzi, druga opcja może stać się jednym z opcji dla ciebie. – Tigran

Odpowiedz

5

Tylko dlatego, że "JSON" jest akronimem dla JavaScript Object Notation, nie ma znaczenia, jeśli pasuje do Twoich potrzeb, a nie jako format danych. JSON jest lekki, oparty na tekście, łatwo czytelny dla człowieka/edytowalny i pomimo nazwy ma format agnostyczny.

Zdecydowanie pochylam się, by go użyć, ponieważ brzmi to idealnie w twojej sytuacji.

1

Podam kilka możliwości:

  1. Binary serializacji: zależy od zawartości swoich obiektach, jeśli skomplikowane drzewo dependecy może stworzyć problemy na szeregowania. Również nie jest zbyt elastyczny, jak standardowa serializacja binarna udostępniana przez sklepy Microsoft zapisujące informacje o typie. Oznacza to, że jeśli zapiszesz typ w pliku binarnym, a po miesiącu zdecydujesz się na reorganizację kodu i, powiedzmy, przenieś tę samą klasę do innego obszaru nazw, na desirializację z wcześniej zapisanego pliku binarnego nie uda się, ponieważ typ nie jest taki sam . Jest na to kilka obejść, ale ja osobiście staram się unikać tego rodzaju serializacji, jak tylko mogę.

  2. Mapowanie ORM i przechowywanie go w małej bazie danych. SQLite jest świetnym wyborem dla tego rodzaju rzeczy, ponieważ jest to mały (pojedynczy plik) i pełna baza danych obsługi ACID. Potrzebujesz programu odwzorowującego lub sam musisz zaimplementować program odwzorowujący.

Jestem pewien, że za kilka minut otrzymasz od ludzi inny wybór.

Wybór należy do Ciebie.

Powodzenia.

Powiązane problemy