数据层应用程序项目是否从Visual Studio数据库版本中替换数据库项目?

问题描述:

我对数据层应用程序的功能以及数据库项目在Visual Studio的数据库版中所做的只有一点点熟悉。数据层应用程序项目是否从Visual Studio数据库版本中替换数据库项目?

这两种不同的数据库版本控制重叠解决方案?或者数据层应用程序功能是否完全取代了使用Visual Studio数据库版本和数据库项目的需要?

现在数据库项目和数据层级项目之间的差异正处于部署阶段。如果你想创建一个dacpac,你可以使用Data Tier Project。如果你想创建一个.dbschema和sql迁移文件,你可以使用传统的数据库项目。

据我所知,数据层应用程序预计将来对SQL Azure部署很重要。

除非你专门研究SQL Azure,否则我现在会使用数据库项目。这完全取决于你想要达到的目标。这可能是SQL Source Control(由我工作的公司Red Gate)更适合您的需求。

+0

感谢您提出两种微软产品的观点。我一定会仔细看看贵公司的解决方案。欣赏建议! – djmc 2010-12-12 05:28:31

+0

我们希望在明年晚些时候“支持”SQL Source Control中的数据库项目,但是这个业务决策将依赖于对数据库项目的更多采用。 – 2010-12-22 16:12:56

+0

我不知道你的看法是什么对事物的当前状态。看起来VS 2013+“数据库项目”在构建时会吐出dacpac文件。数据层应用程序还在吗?这两个概念合并了吗? – Dan 2015-08-11 15:07:12

我相信Visual Studio数据库项目是针对开发人员的。

数据层应用程序针对数据库管理员。详情请参阅this blog

+2

但是数据层应用程序应该由“数据库开发人员”而不是DBA来构建。并且它们应该是在视觉工作室中构建的,而不是SSMS – djmc 2010-11-21 00:17:37

+0

我认为这个想法是,dacpacs是由开发人员构建的,但移交给DBA以便使用SSMS中的向导进行轻松部署。数据库项目的输出是一个也传递给DBA的sql文件,并且必须针对目标服务器运行。 – 2010-12-22 16:11:47

DAC提供了一个应用程序模型,可用作开发人员和DBA之间的接口。开发人员编辑模型,DBA从模型中管理/部署。例如,一旦建立或提取模型,就可以将其部署到多个服务器。

想象.dacpac为.exe。开发人员构建一个.exe并将其交给某人。此时,如果开发人员不必担心.exe运行的位置,因为.exe内部保持一致 - 它可以运行,也可以不运行。为什么开发人员需要专门针对2008,2005或Azure?只需开发应用程序模型,并让DAC处理其余部分...

拥有此部署工件还提供了一些新功能。示例包括版本化部署,确定自上次部署或升级以来是否有人更改过数据库的能力,以及在不同目标服务器中创建相同数据库的能力。

你喜欢为不同的数据库管理一个升级脚本库吗?如果您的数据库的整个状态可以在任何时间点建立或捕获(提取),那不是很好吗?

VS 2010中的数据库应用程序项目混搭将在即将发布的以数据库为中心的开发人员工具中得到解决。投资于dbschema或DAC不会影响向前兼容性。

+0

非常感谢你为这个额外的答案。你真的帮助澄清DAC。 – djmc 2011-02-04 19:32:19