Я думаю, что стоит записать хорошее покрытие модульного теста для кода, что Вы собираетесь быть работой с путем в будущее. Например, когда Вы работаете на производственную компанию, путем записи качественных случаев модульного теста Вы просто делаете инвестиции времени, зная, что вся тяжелая работа, пишущий тестовые сценарии окупится и сделает Вашу жизнь легче по линии.
печальная истина - то, что много программистов работает над внутренней разработкой приложений или заключением контракта и просто попыткой получить некоторое программное обеспечение снаружи. В тех случаях инвестиции времени не имеют так большого смысла, поскольку возможности - Вы, никогда не смотрите эту груду кода никогда снова.
Мы можем все утверждать, что соблюдение твердых методов разработки программного обеспечения является ответственностью каждого разработчика. Однако ROI значит много для отдельных разработчиков, как он делает к управлению.
SQLite . Он небольшой и имеет отличную оболочку для .Net.
Или есть Esent, встроенная база данных, которая существует в каждой копии Windows. Прочтите об этом здесь: http://ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx
Если вы чувствуете себя смелым, я Мы собрали простой документ db PieDb (как в «easy as»).
Вы можете использовать SQL Server Compact Edition (входит в состав Visual Studio) или SQLite .
Есть много других, но они наиболее распространены.
Я большой поклонник SQLite, потому что он крошечный, простой и быстрый. Для него есть замечательный провайдер ADO.NET , который поддерживает Entity Framework.
Если вы настроены на использование встроенной БД, то, вероятно, лучшим вариантом будет SQL Server Compact Edition, за которым следует SQLite в качестве второго.
Если вы говорите об одной таблице, похоже, что встроенная БД может быть излишней, и вам может лучше подойти простой текстовый файл.
Вы можете создать массив своего класса, пометить его [Serializable] и просто использовать встроенные методы сериализации / десериализации для сохранения.
порт .NET SQLite находится по адресу http: // code. google.com/p/csharp-sqlite/. Это чистый .NET, поэтому вы можете превратить ILMerge в один .exe
Я второй голосую за SQLite. SQL Server CE слишком тяжел для любых встраиваемых целей, если вам не нужна простая синхронизация с центральной базой данных - тогда это фантастика.
Если это не обязательно должна быть SQL-совместимая база данных, я бы также посмотрел на Db4o. Db4o - это объектная база данных для Java и .NET. Версия .NET полностью написана на C #.
Если вы говорите об одной таблице, я не совсем понимаю, почему вы считаете, что ДОЛЖНЫ использовать реляционную базу данных для достижения своих целей. А как насчет одного файла?
Естественно, в зависимости от причины, по которой вам нужно хранить информацию, и способа связи данных, может быть причина, по которой вам понадобится база данных. Но вы должны подумать, действительно ли БД вам нужна в этом случае.
Реляционная база данных не должна БЫТЬ стандартом де-факто для хранения данных. Перед выбором СУБД следует рассмотреть множество альтернатив.
См., Например, сообщение mcintyre321.
Второй SQL Lite или простой XML-файл с функцией записи deflate для минимизации размера. Быстро и не так уж и плохо.
Однажды я исследовал ту же проблему. Из всех возможных кандидатов двое выглядели хорошо. Это SQLite и Firebird (firebirdsql.org). Но у firebird было больше возможностей, чем у SQLite.
UPD: Вот интересная информация о firebird + dotnet http://www.firebirdsql.org/dotnetfirebird/embedded/index.html
Для чего-то такого маленького и простого я, вероятно, выбрал бы XML, а не базу данных. Если вы абстрагируете код CRUD, вы можете позже изменить часть кода уровня данных, чтобы он использовал базу данных, когда данные увеличиваются в размере и сложности.
Berkeley DB также является хорошим выбором для встроенной базы данных. И есть библиотека , которая предоставляет для него интерфейс .NET 2.0.