我对 Data Tier Applications 的功能以及 Database Projects 在 Visual Studio 的数据库版中所做的事情只是稍微熟悉了一点。
这两种不同的数据库版本控制重叠解决方案吗?或者数据层应用程序功能是否完全取代了使用 Visual Studio 数据库版本和数据库项目的需要?
我对 Data Tier Applications 的功能以及 Database Projects 在 Visual Studio 的数据库版中所做的事情只是稍微熟悉了一点。
这两种不同的数据库版本控制重叠解决方案吗?或者数据层应用程序功能是否完全取代了使用 Visual Studio 数据库版本和数据库项目的需要?
DAC 提供了一种应用程序模型,可用作开发人员和 DBA 之间的接口。开发人员编辑模型,DBA 管理/部署模型。例如,一旦构建或提取模型,就可以将其部署到多个服务器。
将 .dacpac 想象为 .exe。开发人员构建一个 .exe 并将其交给某人。在这一点上,如果开发人员不必担心 .exe 的运行位置会很好,因为 .exe 在内部是一致的——它要么运行,要么不运行。为什么开发人员需要担心专门针对 2008、2005 或 Azure?只需开发应用程序模型,让 DAC 处理其余的事情......
拥有此部署工件还提供了一些新功能。示例包括版本化部署、确定自上次部署或升级以来是否有人更改数据库的能力、在不同目标服务器中创建相同数据库的能力。
您喜欢为各种数据库管理升级脚本库吗?如果可以在任何时间点构建或捕获(提取)数据库的整个状态,那不是很好吗?
VS 2010 中的数据库应用程序项目 mashup 将在即将发布的以数据库为中心的开发人员工具中得到解决。投资 dbschema 或 DAC 不会影响前向兼容性。
目前,数据库项目和数据层项目之间的区别在于部署点。如果您想创建一个 dacpac,您将使用数据层项目。如果你想创建一个 .dbschema 和 sql 迁移文件,你会使用传统的数据库项目。
据我所知,预计数据层应用程序在未来对 SQL Azure 部署很重要。
除非您专门研究 SQL Azure,否则我现在会使用数据库项目。这完全取决于您要达到的目标。可能是SQL 源代码控制(由我工作的公司 Red Gate 提供)更适合您的需求。
我相信 Visual Studio 数据库项目是针对开发人员的。
数据层应用程序面向 DBA。有关详细信息,请参阅此博客。