Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.Net 4.0/4.5的嵌入式数据库的最佳选择_.net_Database_Sqlite_Compact Database - Fatal编程技术网

使用.Net 4.0/4.5的嵌入式数据库的最佳选择

使用.Net 4.0/4.5的嵌入式数据库的最佳选择,.net,database,sqlite,compact-database,.net,Database,Sqlite,Compact Database,有人知道使用.Net 4.0/4.5的嵌入式数据库的最佳选择吗 应用程序的目标是Windows 我已经在我的项目中使用SQLite很多年了。然而,自从.NET2.0以来,技术已经发生了很大的变化。我正在将项目从.Net 2.0升级到4.0或4.5。SQLite的问题是找到一个好的本机.Net托管库,它不需要非托管DLL。此外,根据我使用的SQLite库,我不得不在X-86或64中编译应用程序。因此,“任意CPU”选项将导致应用程序崩溃 我正在转换到Compact Server 4.0。虽然我正在

有人知道使用.Net 4.0/4.5的嵌入式数据库的最佳选择吗

应用程序的目标是Windows

我已经在我的项目中使用SQLite很多年了。然而,自从.NET2.0以来,技术已经发生了很大的变化。我正在将项目从.Net 2.0升级到4.0或4.5。SQLite的问题是找到一个好的本机.Net托管库,它不需要非托管DLL。此外,根据我使用的SQLite库,我不得不在X-86或64中编译应用程序。因此,“任意CPU”选项将导致应用程序崩溃

我正在转换到Compact Server 4.0。虽然我正在使它完美地工作,但我开始怀疑这是否是另一项被抛弃的微软技术

我的问题是:

  • Compact Server CE 4.0对于当前技术和未来是否可行
  • SQLite是更好的选择吗?是否有任何真正的托管代码可以在任何CPU中工作
  • 有没有更好的开源选项可以在不需要大量工作的情况下使用和转换

  • 这个问题涉及很多观点,所以请记住,我将在这里写下我的观点(作为社区维基)。这是一个答案而不是评论,因为它太长了

    Compact Server CE 4.0对于当前技术和未来是否可行

    我得说是的,它不会很快被抛弃。当然,我们不能说10年后(甚至5年后)会发生什么,但这是一项稳定的、众所周知的技术。关键是它是否对你有好处;它满足你所有的要求吗?将其与搜索比较的其他技术(也来自Microsoft)进行比较(这里也是如此)

    SQLite是更好的选择吗?是否有任何真正的托管代码可以在任何CPU中工作

    您仍然可以为任何CPU编译您的应用程序,并保留一个非托管库,直到您只部署其中一个库为止(例如,检查SharpDX中使用的技术)。关于32/64位应用程序,我也建议阅读

    有没有更好的开源选项可以在不需要大量工作的情况下使用和转换


    这不是一个问题,但是的,有太多不同的解决方案。我们不能建议哪一个更好,因为这取决于你的要求。有多少数据?您需要支持SQL查询吗?它对性能至关重要吗?您必须支持交易吗?并发访问?每种解决方案都有其优缺点(有了大型企业级数据库,您几乎可以做任何事情,但您需要支付部署复杂性和成本)。

    MichaelHartmann:Following@AdrianoRepetti的答案,您可能对使用诸如NHibernate之类的ORM感兴趣,这样在测试和比较阶段就可以很容易地从RDBMS切换到另一个RDBMS。然后,使用存储库模式是将数据访问关注点从业务模型中分离出来的关键。然后,您可以更改简单的XML配置信息以切换RDBMS。就我的两分钱!=)