у меня есть вопрос о том, чтобы хранить данные для настольного приложения, если я - к развернутому приложение без базы данных SQL MS, как я мог упростить получение/хранение данных. Я знаю, что могу также сериализировать объекты данных в файл (такие как XML-файл), быть там каким-либо другим более эффективным или эффективным путем?
SQLite очень хорошо работает как встроенная база данных. Даже есть привязки .NET / Mono .
Я не думаю, что вам следует спрашивать, какой из них "лучший", но какой из них будет лучшим для ВАС.
Когда вы говорите, что у вас не может быть базы данных, я полагаю, вы имеете в виду, что приложение должно быть автономным, но может использовать локальный файл базы данных? Если это так и вы предполагаете, что потребуются большие объемы хранения данных, то вы можете обнаружить, что хотите использовать один из ряда компактных продуктов для локальных баз данных. На ум приходят, например, SQLite и InnoDB.
Если вы собираетесь хранить только небольшие объемы данных, вам может быть лучше использовать XML или простой двоичный файл, так как он уменьшит размер вашего приложения и устранит зависимость от стороннего продукта. Мы иногда (и я подчеркиваю очень редко!) Все еще используем классический файл INI, потому что он хорошо поддерживается в коде и приводит к чрезвычайно компактному коду.
Что касается эффективности и результативности, все сводится к тому, как вы решите реализовать свой доступ к данным. Конечно, тип базы данных, которую вы используете, имеет значение, но вы также должны поддерживать все, что вы реализуете, поэтому будет стоить посмотреть, как API базы данных определяется и документируется, есть ли у него активное сообщество для поддержки, и т.д ... и выберите тот, с которым вам удобнее всего работать.
Есть множество вопросов, которые можно задать, чтобы подойти к ответу на ваш вопрос. Для целей данного ответа я буду исходить из следующего:
1) Необходимо хранить ограниченное количество данных. 2) Встроенные возможности (не требуется сторонних производителей или баз данных).
Наиболее удобным, встроенным (присущим базовой установке .NET) является DataSet - в частности, типизированный DataSet.
Вы можете добавить неограниченное количество таблиц и данных в свой DataSet (ограниченное доступной памятью) и легко сохранять и загружать данные с диска. DataSet'ы легко сериализуются в привязанные к схеме данные Xml.
Если вы работаете в Windows и вам нужно запросить данные простым способом, рассмотрите встроенный механизм базы данных ESENT ( http://blogs.msdn.com/windowssdk/archive/2008/10/23/ esent-extension-storage-engine-api-in-the-windows-sdk.aspx ). CodePlex имеет оболочку .NET, которая включает класс PersistentDictionary ( http://managedesent.codeplex.com/ ), который работает как словарь .NET, но поддерживается файлом базы данных на диске.