Что я должен использовать? Мне нужно хранить данные, и это нужно только на локальном компьютере. Я буду хранить все строковые переменные и во многих столбцах.
Что лучше? Будет ли это даже база данных?
Что я должен использовать? Мне нужно хранить данные, и это нужно только на локальном компьютере. Я буду хранить все строковые переменные и во многих столбцах.
Что лучше? Будет ли это даже база данных?
Я бы рекомендовал db4o - движок базы данных объекта. Это довольно просто, и на клиенте не требуется сервер или установка. Другой альтернативой будет SQLite. Вы можете получить .NET-провайдер здесь.
Edit
См. учебник db4o здесь.
SQL Server Compact 3.5 с пакетом обновления 1 (SP1) не требует установки (вам просто нужно доставить DLL, хотя проверьте лицензионное соглашение, если это разрешено) и довольно прямолинейно использовать.
Я бы рекомендовал использовать sqlite, это очень быстрая файловая, встроенная в функциональность, богатая базами данных. У меня есть легкий ORM с привязками С#, который абстрагирует и упрощает доступ к нему. Ниже приведена живая демонстрация веб-сервиса с использованием sqlite.
О, да, db4o - хороший выбор, который также имеет привязки базы данных С#, который поддерживает автоматические свойства С# (по умолчанию db4o провайдер) и другие общие сценарии доступа к данным.
Вы должны посмотреть на SQLite, если вы ищете RDBMS или что-то вроде MongoDB, если вы храните объекты или подобные.
Почему не SQL Server Express? Это даже бесплатно.
Я очень рекомендую проверить структуру сериализации. Он даже не близок к производительности базы данных, НО, если вы не говорите о большом количестве данных, это на 100% меньше накладных расходов. Сериализация объектов в файл в .net - это дочернее воспроизведение:
XmlSerializer serializer = new XmlSerializer(typeof(myObjectType));
using(FileStream stream = new FileStream("file", FileMode.Create, FileAccess.Write)
{
serializer.Serialize(stream, myObject);
}
Что это!
Чтение назад в значительной степени противоположно. LINQ предоставляет еще больше возможностей. Опять же, это даже не близко к db с точки зрения производительности, но я видел много и много реализаций, в которых база данных была чрезмерной избыточностью для объема хранимых данных. Очевидно, что если у вас есть явная потребность в масштабировании и т.д., Вам нужно планировать это. Правильный инструмент для правильной проблемы и всего этого.
Если вы просто хотите хранить небольшой объем данных в довольно простой структуре и не собираетесь выполнять сложные запросы, рассмотрите XML файл. Вам не нужно дополнительное программное обеспечение, и вы можете легко с ним работать, используя LINQ to XML.
XML может вместо вашего требования!
ознакомьтесь с memcache, если вы хотите очень быструю скорость. Но они не записываются на жесткий диск, поэтому вам может понадобиться другой упомянутый db, если вы хотите хранить их на разных сеансах. В моем проекте мы используем mongodb для буферизации данных и использования memcache для буферизации mongo. Таким образом, данные будут извлекаться из memcache сначала, если не найдены, попробуйте mongo. Если все еще не найден, мы получаем новые данные.
Для окон и .net посмотрите here