Сведения о вопросе

Getthesound

16:03, 1st July, 2020

Теги

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

Просмотров: 713   Ответов: 10

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

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

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

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

Есть ли другие предложения о том, что хорошо работает с .net и работает вне сети без необходимости установки серверного программного обеспечения?



  Сведения об ответе

+-*/

18:03, 1st July, 2020

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

SQLite on .NET-встаньте и бегите за 3 минуты


  Сведения об ответе

qwerty101

18:03, 1st July, 2020

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

Отказ от ответственности: я инженер в группе ADS R&D. Я обещаю, это потрясающе :)


  Сведения об ответе

ASER

18:03, 1st July, 2020

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

Вы можете программно создать DB вот так:

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

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


  Сведения об ответе

lats

18:03, 1st July, 2020

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

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

using FirebirdSql.Data.FirebirdClient;

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

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

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


  Сведения об ответе

padenie

18:03, 1st July, 2020

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


  Сведения об ответе

Chhiki

18:03, 1st July, 2020

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

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


  Сведения об ответе

SEEYOU

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

davran

18:03, 1st July, 2020

Я в недоумении.

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

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

На странице 8 у вас есть хорошая большая зеленая галочка рядом с "Data file storage on a network share".

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


  Сведения об ответе

ЯЯ__4

18:03, 1st July, 2020

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

Лучший

Адриано


  Сведения об ответе

fo_I_K

18:03, 1st July, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться