【问题标题】:Embedded database for .net.net 的嵌入式数据库
【发布时间】:2010-10-15 15:17:22
【问题描述】:

我需要一个用于我们的 .net 应用程序之一的嵌入式数据库。

这个数据库应该支持 sql(不像 Berkley)。

任何人都可以提出任何选择。

【问题讨论】:

    标签: .net sql embedded-database


    【解决方案1】:

    我能想到的主要选项是:

    【讨论】:

    【解决方案2】:

    我只是想晚点来这里介绍有关 VistaDB 的更多信息。

    我们的 SQL 语法与 SQL Server 语法非常接近,我们包括 TSQL 和 CLR 存储过程。

    在您的应用程序中运行,您只需为 32 位和 64 位(100% 托管代码)部署 1 个程序集。您无法使用 SQL CE 执行此操作,因为您需要部署不同的非托管程序集。

    您可以将 VistaDB 嵌入到您的应用中,甚至可以对其进行 ILMERGE、更改数据库名称等,以对用户完全隐藏引擎(有些人对此非常重视)。

    是的,它也可以在 Mono 上运行,因为它是 100% 托管代码。仍然存在一些问题(包括非 Intel Mono 机器)。

    全面披露 - 我是公司的所有者

    【讨论】:

      【解决方案3】:

      看看 SQL Server Compact 版本。它在进程内运行,它是单个二进制文件,将其数据存储在单个文件中,并且支持并发(与许多其他嵌入式数据库不同,包括 SQLite)。另外,如果您使用的是 Visual Studio,您可能已经拥有它。最后,它可以免费使用和重新分发。

      【讨论】:

      • 与工具的完美集成。许可证要求是什么?费用?
      • 遗憾的是,它并不是真正的单一二进制文件。它有几个本机 DLL,这也造成了 x86 与 x64 的问题。
      • 你说得对,毛里西奥。对于托管代码,看起来只需要两个二进制文件,sqlceme35.dll 和 System.Data.SqlServerCe.dll。对于原生代码、同步服务等,还有其他的 bin。
      【解决方案4】:

      SQL Server 精简版是 .NET 精简框架的明智选择。我发现Arcane Code 是一个对学习 SSCE 非常有帮助的网站。他是 SQL Server 的 MVP,专注于 CE。

      【讨论】:

      • CE中只能创建表和索引
      【解决方案5】:

      我本人非常喜欢FirebirdSQL(CMS 也提到过)。它可以嵌入windows dll运行,iirc甚至还有一个混合二进制文件,其中包含为此内置的核心驱动程序。它也适用于 ActiveRecord 和 NHibernate。大多数 .Net 类型都可以轻松映射。

      与其他选项相比,一个优势是切换到 RDBMS 模式只需将查询字符串更改为使用服务器,而不是嵌入式版本。如果您希望将来以 Mono 为目标,您也可以在 Linux 中使用它(不幸的是不是在嵌入式模式下)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 2010-09-05
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多