Ищите самый безболезненный способ хранения без RDBMS в C # - PullRequest
1 голос
/ 29 марта 2010

Я пишу простую программу, которая будет работать полностью на стороне клиента. (Настольное программирование? Люди все еще так делают?) И мне нужен простой способ хранить тривиальные объемы данных в структурированной форме, но на самом деле не вижу необходимости использовать систему баз данных. Более того, некоторые данные должны быть сериализованы и переданы разным пользователям, например какой-то «файл» или, возможно, «документ». (кто-нибудь когда-либо делал это раньше?)

Итак, я рассмотрел использование .Net DataSets, LINQ, прямое манипулирование XML, и все они, похоже, выполнят свою работу, но я хотел бы знать, прежде чем углубляться в любой из них, если есть один метод это, как правило, считается проще для написания кода, чем другие. Как я уже сказал, объем хранимых данных тривиален, даже если все сто человек используют одну и ту же машину, мы не говорим о более чем 10 МБ, поэтому производительность не так важна, как кодируемость / ремонтопригодность. Спасибо всем заранее!

Ответы [ 4 ]

2 голосов
/ 29 марта 2010

Не зная ничего о вашем приложении, .Net DataSets, вероятно, будет вашим самым простым вариантом, потому что WriteXml и ReadXml уже существуют.

2 голосов
/ 29 марта 2010

Похоже, что Linq-to-XML - хороший вариант для этого.

Ссылка 1 Ссылка 2

Тонны информации об этом.

0 голосов
/ 29 марта 2010

Я бы выбрал встроенную базу данных.Использование чего-то вроде sqlite не кажется мне излишним.Вы даже можете попробовать его порт C # (http://code.google.com/p/csharp-sqlite/).

0 голосов
/ 29 марта 2010

Любой API сериализации здесь подойдет. Я бы порекомендовал что-то, основанное на контракте (, а не BinaryFormatter, которое основано на типах), так как это позволит использовать его с течением времени (при изменении сборки).

Итак, я бы построил базовую объектную модель (DTO) и использовал бы любое из:

  • XmlSerializer
  • DataContractSerializer
  • protobuf-net (вы все знали, что это произойдет ...)

ОО, просто и легко. И простой в использовании для передачи фрагментов данных (либо между пользователями на центральный сервер).

...