Каков наилучший способ хранения / извлечения данных для рабочего стола без использования базы данных? - PullRequest
5 голосов
/ 11 февраля 2010

У меня есть вопрос о хранении данных для настольного приложения, если я разверну приложение без базы данных MS SQL, Как я могу облегчить получение / хранение данных. Я знаю, что могу также сериализовать объекты данных в файл (например, файл XML), есть ли другой, более эффективный или действенный способ?

Ответы [ 5 ]

4 голосов
/ 11 февраля 2010

SQLite отлично работает как встроенная база данных. Доступны даже .NET / Mono .

2 голосов
/ 11 февраля 2010

Вы можете посмотреть SQL Server Compact Edition .

1 голос
/ 12 февраля 2010

Если вы работаете в Windows и вам нужно просто запрашивать данные, рассмотрите встроенный механизм базы данных ESENT (http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx). В CodePlex имеется оболочка .NET, включающая класс PersistentDictionary (http://managedesent.codeplex.com/) работает как словарь .NET, но поддерживается файлом базы данных на диске.

1 голос
/ 11 февраля 2010

Я не думаю, что вы должны спрашивать, какой путь "лучший", но какой будет лучшим для ВАС.

Когда вы говорите, что не можете иметь базу данных, я предполагаю, что вы имеете в виду, что приложение должно быть автономным, но может использовать файл локальной базы данных?Если это так, и вы считаете, что потребуются большие объемы хранилища данных, то вы можете обнаружить, что хотите использовать один из нескольких компактных продуктов для локальных баз данных.Например, SQLite и InnoDB приходят на ум.

Если вы собираетесь хранить только небольшие объемы данных, вам лучше подойдет XML или простой двоичный файл, так как это уменьшит объем вашего приложения и приведет к удалениюзависимость от стороннего продукта.Мы иногда (и я очень редко подчеркиваю!) По-прежнему используем классический INI-файл, потому что он хорошо поддерживается в коде и приводит к чрезвычайно компактному коду.

Что касается эффективности и результативности, то все сводится к тому, как выпринять решение о реализации вашего доступа к данным.Разумеется, тип используемой вами базы данных оказывает влияние, но вы также должны поддерживать то, что вы реализуете, поэтому стоит посмотреть, как API-интерфейс базы данных определен и задокументирован, есть ли у него активное сообщество для поддержки,и т.д., и выберите тот, с которым вам удобнее всего работать.

1 голос
/ 11 февраля 2010

Существует множество вопросов, которые можно задать, чтобы ответить на ваш вопрос. Для целей этого ответа я собираюсь предположить:

1) Необходимо хранить ограниченное количество данных. 2) Встроенная возможность (без требований сторонних производителей или базы данных).

Наиболее удобным, встроенным (присущим базовой установке .NET) является DataSet, в частности типизированный DataSet.

Вы можете добавить неопределенный объем таблиц и данных в свой набор данных (ограниченный доступной памятью) и легко сохранять и загружать данные с диска. DataSet легко сериализуется в привязанные к схеме данные XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...