Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Не зная ничего другого о вашем приложении, наборы данных .NET, вероятно, будут вашим легким вариантом, потому что Writexml а также Readxml уже существует.

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top