19

有兴趣是否有人广泛使用过 VSTS 数据库版,如果是,您发现哪些功能比标准 Visual Studio 数据库项目最有用?

与替代模式管理选项或 RedGate 的 SqlCompare 等工具相比,最引人注目的功能是什么?

编辑:微软刚刚发布了RTM 版本的数据库版 (GDR),它增加了对 SQL Server 2008 的支持——链接在这里。我以前在这里写过(简短地)关于它的博客

有没有人有机会在东德做任何真正的工作?看起来有一些真正的增强,包括重构支持。我真的很想知道人们是否将它与 SQL Server 2008 一起使用...

下载自:[ http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en]

4

7 回答 7

7

如果您将它与专门为 SQL Server 定制的 RedGates 等工具进行比较,其好处是,如果您拥有适当的 MSDN 订阅,则不必为其他工具花费更多的钱(但请记住,RedGate 工具要多得多成熟),它涵盖了其他工具没有涵盖的一些点(如回归测试和数据库级别的单元测试),并且它与VSTS的其他测试工具集成在一起,以便您可以在Team System中记录结果。
与 Embarcadero ErStudio(我选择的解决方案)之类的工具相比,它缺少跨数据库功能,这是一个大问题,至少对我来说是这样。
如果您是拥有正确 MSDN 订阅的“全微软”商店,那么花时间在上面可能是值得的。

于 2008-10-04T07:20:13.930 回答
7

我们在 Stack Overflow 上使用 Team Suite 的数据库版本功能。正如 Vaibhav 所说,它主要是有用的,因为它为您提供了一种单击方式将数据库反向工程为源代码控制,并使其保持最新状态。

请注意,它也有不错的数据和模式比较工具。您可以将项目与物理数据库进行比较,反之亦然。这使得使您的数据库保持最新状态变得非常容易,无论您在哪里进行更改——在文件系统数据库项目中,或在物理数据库本身中。

于 2008-10-04T10:06:37.823 回答
3

我们目前正在使用 GDR 2008 项目来管理我们在新建系统上的整个数据库开发和部署。我们使用 TFS 构建脚本来调用 MSBuild 任务以部署数据库,同时执行数据生成计划以使用数据预先填充测试环境。

数据生成计划的关键是找到要使用的构建任务:

TaskName="DataGeneratorTask"
AssemblyName="Microsoft.Data.Schema.Tasks, Version=9.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 

所有这些 gdr 项目工作都非常有帮助,我认为了解这些项目类型非常值得学习曲线。它们提供的价值在生产力和可见性方面是天文数字。

它允许我们所有人在单个 Visual Studio 解决方案中查看整个系统,同时允许我们通过单击部署命令或自定义构建配置在任何时间点从一个干净的系统开始。

如果您有兴趣,此博客 将帮助您运行 TFSBuild 脚本。

于 2009-12-04T15:28:42.537 回答
2

VSDB 测试集成配置起来非常痛苦,以至于我们放弃了它,而这是 Red-Gate 唯一没有的。

Red-Gate 的工具更有用。它在文件夹中提供实时数据库和脚本,但也有“快照”。Red-Gate SQL Compare 的优势在于它的快照功能以及您的许可证允许您部署他们的程序集并使用它们在客户运行时执行数据库维护的事实。

它使我开发的 COTS 应用程序的升级变得轻而易举。快照是二进制模式表示。您可以将它们打包为程序集中的资源,然后在客户运行时模式中使用快照比较以将现有数据库升级到当前版本。

于 2008-10-05T01:58:16.387 回答
2

可能最大的优势在于能够对单个数据库模式对象进行版本控制(您可以使用旧的“数据库项目”),但有能力“构建”/部署项目并将这些单独的脚本转换为完整的数据库.

如果您继承了数据库模式,那么导入脚本并让向导将单个模式项转换为单独的文件的能力非常方便。

鉴于最近许可模式发生了变化,它变得更加诱人,因为它包含在开发人员版 SKU 中。它还提供了对可能有用的“数据库单元测试”的支持。

从 2008 GDR,我了解到他们现在支持 SQL Server 2008。

于 2009-04-23T07:28:04.373 回答
1

您可以为其中一个进行数据库版本控制。这很有用。

另一件真正有用的事情是能够定义用于测试的种子数据类型。通过这个 Visual Studio 将使用随机数据填充数据库,这非常适合测试目的。

当然还有其他好处。

于 2008-10-04T06:55:23.857 回答
1

将所有内容置于同一个源代码控制之下总是很有用的,因此您的数据老兄可以搁置、签入、与历史记录进行比较,甚至可以使用其他团队成员使用的相同工具解决工作项和错误。

还能够在整个应用程序中使用一种版本控制机制,换句话说,说我的源代码控制具有我的项目的所有版本而您的数据库不适合这些旧版本中的任何一个是没有意义的,除非您在每次构建时都对数据库进行备份或快照。

于 2008-10-16T06:09:14.397 回答