Как предложил Йохахим Исакссон в комментариях, теперь у меня есть метод SetData(Data data)
и используйте его следующим образом:
MyPage1?.SetData(this.data);
MyPage2?.SetData(this.data);
MyPage3?.SetData(this.data);
SQLite прибыл по моему мнению при чтении вопроса, и я совершенно уверен, что возможно получить доступ к нему от сетевого диска , если Вы сохраняете себя к ограничению 1 пользователя за один раз.
Я рекомендовал бы Сервер базы данных Преимущества (www.advantagedatabase.com). Это - зрелый встроенный DB с большой поддержкой и доступный со многих языков разработки в дополнение к.NET. "Локальная" версия является бесплатной, работает в рамках Вашего приложения в форме DLL, не требует никакой установки на сервере/сетевом ресурсе и поддерживает все главные функции DB. Можно сохранить DB и/или файлы приложения все в сети; это не заботится, где данные.
Правовая оговорка: Я - инженер в ADS R& D группа. Я обещаю, это качается:)
Это кажется, что ADO/доступ идеально подходит для Ваших потребностей. Это испеклось в стек 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 для взаимодействия с базой данных.
Можно использовать встроенный 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) в бета-версии и очень близко к выпуску.
Почему бы не использовать выпуск Экспресса SQL Server 2005 года?
Это действительно зависит от того, под чем Вы подразумеваете "встроенный" - но можно перераспределить SQLServer2005E с приложениями, и пользователь никогда не должен знать, что это там.
Экспресс SQL Server Встраивания в Приложениях
Экспресс SQL Server Встраивания в Пользовательские приложения
Существует также Valentina. Я бегунок e через этот продукт, когда я работал над некоторым Реальным Основным проектом. Версия RB очень хороша.
Немного опоздал к сообщению здесь ... И VistaDB уже упоминалось, но я хотел отметить что VistaDB управляется на 100% (так как ваш пост был помечен как .net). Он может работать с общего сетевого диска и развернут на 1 МБ xcopy.
Поскольку вы упоминаете SQL CE, мы также поддерживаем синтаксис и типы данных T-SQL (фактически больше, чем SQL CE) и имеем обновляемые представления, TSQL Procs и другие. вещей, отсутствующих в SQL CE.
Я озадачен.
Вы запрашиваете встроенную базу данных, где сама база данных хранится на сервере. что означает сохранение файла данных на сетевом ресурсе. Затем вы говорите, что SQL Compact Edition не будет работать ... за исключением того, что если взглянуть на этот документ:
Документ Word:
Выбор между SQL Server 2005 Compact Edition и SQL Server 2005 Express Edition
На странице 8 у вас есть хорошая зеленая галочка рядом с «Хранение файлов данных на сетевом ресурсе».
Так что мне кажется, что ваша первая мысль была правильной.
Рассматривали ли вы OODB? Из различных альтернатив с открытым исходным кодом я рекомендую db4o (извините за саморекламу :)), который может работать как встраиваемым, так и в режиме клиент / сервер.
Лучшее
Адриано