sql-server - VistaDB有什么优势

标签 sql-server database sqlite firebird vistadb

多年来,我看到了对 VistaDB 的引用以及 SQLite、Firebird、MS SQL 等工具。阿尔。我从来没有理由考虑它。

与使用其他技术相比,为 VistaDB 付费有什么好处?我想到的事情:
1. 紧凑的框架支持。 SQLite+MSSQL支持CF。
2. 需要迁移到“更强大”系统的路径。 Firebird+MSSQL.
3.需要更高级的功能,比如触发器。 Firebird +MSSQL

最佳答案

VistaDB 客户端运行时是免费的。运行时永远不会像您所说的那样“在凌晨 3 点过期”。只有开发人员工具以这种方式获得许可。每个开发人员需要 1 个许可证,很简单。我们甚至提供了一个非常便宜的 Lite 版本,没有 Visual Studio 工具。

一些其他好处

100% 托管代码 - 引擎中没有互操作或其他非托管调用。这对某些人来说是一件大事,而其他人则不在乎。

不需要注册表访问 - 大多数其他 in proc 数据库需要注册表访问才能查找父控件或权限。 VistaDB 只做您告诉它做的事情,甚至会以中等信任度运行。

XCopy 部署 用于运行时和您的数据库(单个文件)。您可以 xcopy 应用程序、运行时和数据库并运行。无需在机器上安装或配置任何内容,无需特殊权限(我们可以在中等信任或更高信任度下运行)。

独立存储 - 您可以将整个数据库放入独立存储并直接从那里运行。这使得构建安全的单击一次应用程序变得非常容易,这些应用程序以域友好的方式为企业环境编写数据库。无需将用户数据存储在共享驱动器上或担心权限映射。

CLR 触发器/CLR 过程 - 您可以编写 CLR 代码并将它们用作触发器或存储过程。我们最近刚刚引入了更改,以便更轻松地维护可以在 VistaDB 和 SQL Server 2005/2008 中运行的单个 CLR 程序集。

T-SQL Procs - VistaDB T-SQL Procs 与 SQL Server 2005/2008 兼容。在我们的引擎中运行的任何过程都将在 SQL Server 中运行。这并不意味着在那里运行的任何东西都会移植给我们。我们是 SQL Server 中功能的一个子集。但我们也是在没有 SQL Server 的情况下运行 T-SQL Procs 的唯一方法(SQL CE 做不到)。

我个人认为最大的功能之一是能够在以后升级到 SQL Server。所有 VistaDB 类型、语法和 CLR Procs、T-SQL procs 等都将在 SQL Server 上运行。 (虽然你不能把从 SQL Server 到 VistaDB 的所有东西都拿走,但它是一个子集)

32/64 位部署 - VistaDB 是单一程序集部署,无需更改即可同时运行 32 位和 64 位。 SQL CE 需要两个不同的运行时,具体取决于操作系统,并且根本无法在 IIS 下运行。 Access 没有 64 位运行时,最新的 32 位运行时只能通过 MSI 部署。 32 位版本的 Windows 有运行时,64 位版本没有。

关系完整性 - VistaDB 实际上还强制执行您的约束和外键。您可以对特定的级联更新和删除操作进行操作。评论我们像 SQLITE 的人在这方面是错误的。它们解析约束,但不强制执行。

编辑:他们现在在 SQLite 中支持 FK。但它们不是默认编译的,也不使用与 SQL Server 相同的语法。

中等信任 - 在中等信任 Web 服务器上运行的能力是另一个许多人不会关心的特性,但它很重要。许多第三方控件甚至无法在 Medium Trust 中运行。由于我们对 100% 托管代码和最少权限的 promise ,我们可以在 Medium Trust 中运行完整的引擎。

- 全面披露- 我是 VistaDB 的所有者,所以我可能有偏见。 :)

关于sql-server - VistaDB有什么优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55273/

相关文章:

sql-server - 如何使用 SSRS 按 2 个不同的列进行分组并使其在 Sql 中的某些情况下表现不同

sql-server - 如何在依赖表中自动插入值?

sql-server - 如何根据源和目标的不同列名称在 Azure 数据工厂中使数据流列映射动态化?

sql-server - SQL Server 使用名称查询内表

mysql - 使用SQL迁移地址,但不同数据库的表具有不同的区域ID

java - 如何从树中的任何父节点获取所有叶节点

java - Hibernate + 支持 SQLite Pragmas 在 Windows 7 机器上提高速度

c# - Access 数据库上的更新查询不工作 C#.NET

c# - 从 C# 应用程序连接到 mySQL 数据库时出错

android - 将数据从 Android 应用程序发送到 Web 服务