Встроенная база данных для .net, которая может работать вне сети

StackOverflow https://stackoverflow.com/questions/705

Вопрос

Я искал (и до сих пор ищу) встроенную базу данных для использования в приложении .net (c #).Предостережение:Приложение (или, по крайней мере, база данных) хранится на сетевом диске, но используется только 1 пользователем одновременно.

Итак, моей первой идеей было Версия SQL Server Compact edition.Это действительно хорошо интегрировано, но оно не может работать вне сети.

Жар - птица похоже, та же проблема, но интеграция с .net, похоже, на самом деле не первоклассная и в значительной степени недокументирована.

Blackfish SQL выглядит интересно, но пробной версии .net нет.Цены тоже в порядке вещей.

Любые другие предложения о чем-то, что хорошо работает с .net и работает вне сети без необходимости фактической установки серверного программного обеспечения?

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

Решение

SQLite - файл мне пришло в голову, когда я читал ваш вопрос, и я совершенно уверен, что к нему можно получить доступ с сетевого диска если вы ограничиваете себя количеством 1 пользователя одновременно.

SQLite на .NET - Запуск за 3 минуты

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

Я бы порекомендовал Advantage Database Server (www.advantagedatabase.com).Это зрелая встроенная база данных с отличной поддержкой, доступная со многих языков разработки в дополнение к .NET."Локальная" версия бесплатна, запускается в вашем приложении в виде библиотеки DLL, не требует установки на сервер / общий сетевой ресурс и поддерживает все основные функции базы данных.Вы можете хранить все файлы базы данных и / или приложения в сети;ему все равно, где находятся данные.

Отказ от ответственности:Я инженер в научно-исследовательской группе ADS.Обещаю, это потрясающе :)

Похоже, ADO / Access идеально подходит для ваших нужд.Он запечен в MS stack, хорошо выдержан и доступен для нескольких пользователей.

Вы можете программно создать базу данных следующим образом:

Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")

Затем вы можете использовать стандартные ADO.NET методы для взаимодействия с базой данных.

Вы можете использовать встроенную firebird, это просто библиотека dll, которую вам нужно будет отправить вместе с вашим приложением.

Насчет того, что все недокументировано, это не совсем так, драйвер firebird .NET реализует интерфейсы ADO, поэтому, если вы знаете ADO, вы можете работать с Firebird, в основном вместо SqlConnection вы будете использовать FBConnection и так далее, но мой совет - написать уровень доступа к данным и использовать только интерфейсы в своем коде, что-то вроде этого:

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
    FbConnection cn = new FbConnection("...");
    return cn;
}

Этот пример очень прост, но большего вам и не понадобится.

Мы используем firebird для всех наших приложений без каких-либо проблем, вы должны хотя бы попробовать его.

Проверьте VistaDB.У них очень хороший продукт, серверная версия (3.4) находится в стадии бета-тестирования и очень близка к выпуску.

Немного опоздал с публикацией здесь..И VistaDB уже упоминалось, но я хотел отметить, что VistaDB управляется на 100% (поскольку ваш пост был помечен как .net).Он может запускаться с общего сетевого диска и имеет размер 1 МБ xcopy.

Поскольку вы упомянули SQL CE, мы также поддерживаем синтаксис T-SQL и типы данных (фактически больше, чем SQL CE) и имеем обновляемые представления, процедуры TSQL и другие вещи, отсутствующие в SQL CE.

Почему бы не использовать SQL Server 2005 Express edition?

Это действительно зависит от того, что вы подразумеваете под "встроенным", но вы можете распространять SQLServer2005E со своими приложениями, и пользователю никогда не придется знать, что он там есть.

Встраивание SQL Server Express в приложения

Встраивание SQL Server Express в пользовательские приложения

Я озадачен.

Вы запрашиваете встроенную базу данных, где сама база данных хранится на сервере.это означает хранение файла данных на общем сетевом ресурсе.Затем вы говорите, что SQL Compact Edition не будет работать...за исключением того, что если взглянуть на этот документ:

Документ Word:
Выбор между SQL Server 2005 Compact Edition и SQL Server 2005 Express Edition

На странице 8 у вас есть красивая большая зеленая галочка рядом с надписью "Хранение файлов данных в общей сетевой папке".

Так что мне кажется, что ваша первая мысль была правильной.

Есть также Валентина.Я наткнулся на этот продукт, когда работал над каким-то реальным базовым проектом.Версия RB очень хороша.

Рассматривали ли вы возможность создания ООДБ?Я рекомендую использовать различные альтернативы из открытых источников db4o (извините за саморекламу :)) который может работать как встроенный, так и в режиме клиент / сервер.

Лучшие

Адриано

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