我需要创建一个应用程序
- 被多个用户同时使用
- 不需要any安装
- 有一个集中的数据存储
- 数据必须被存储inside公司网络
- i 无权访问到公司内部数据库服务器和网络服务器
这些限制不是我自己的- 这些来自我的客户 - 这是一家跨国公司的分支机构,在全球公司层面有一些重大的 IT 政策限制,它们不能影响他们的水平(类似的事情),但他们仍然需要一个软件。
我的目的是找到HOW尽管存在这些限制,但仍为他们提供了一个可以工作的软件。
因此,唯一的选择(据我所知)是将数据存储在网络共享上 - 一个或多个文件中。问题是找到一种方法来提供对这些文件的并发写入访问。
迄今为止的研究
- 我首先想到的是使用 SQL Server Compact 并将其放置在网络共享上
当 SQL Server Compact 位于网络共享上时,仅允许一个连接 http://technet.microsoft.com/en-us/library/ms171817.aspx
- 然后我发现了 SQLite - 做了一些研究,发现它比 SQL CE 有一些改进
SQLite数据库文件在写入时被锁定,但可能并发读取操作 http://www.sqlite.org/faq.html#q5
- 然后我发现了 VistaDB,它似乎提供了我需要的功能,但它非常昂贵 - 每个开发人员的成本为 1295 美元......
VistaDB嵌入式数据库提供行级和表级锁定! http://www.vistadb.net/technical/serverless.aspx
那么精致的问题是
哪些嵌入式数据库支持并发用户写访问? (在这方面 VistaDB 有替代方案吗?) - 请提供facts,不是意见。
1)唯一支持并发编辑的嵌入式数据库是VistaDB(至少我没有成功找到任何其他选项)
VistaDB 官方网站 -> 看看优点/缺点部分! http://www.vistadb.net/technical/serverless.aspx - (..) 嵌入式数据库通常会在每次插入操作时锁定整个数据库,但我们不会。我们提供表级和行级锁定。
VistaDB 的优点是 - 它支持实体框架代码优先!
关于价格 - micoISV 有折扣(450 美元 + 一年升级 125 美元)
2)如果你知道并发写入数据库的情况很少见——那么你可以选择SQLite,它是一种免费的嵌入式数据库——因为SQLite允许并发读取,但写入数据库时只有一个连接。没有找到任何关于EF支持的信息。
3) 如果您只有很少的用户,那么 SQL Server Compact 可能是最好的选择 - 它支持实体框架。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)