Top
首页 > 老文章 > 正文

使用VS2010在SQL 2008 R2上进行应用开发

DAC既为开发人员提供了新的数据库开发工具,又为DBA提供了数据层管理工具,开发人员开发出DAC应用后,通过VS2010 IDE的编译,打包成DAC包(其扩展名是.dacpac)并提供给数据库管理员,DBA通过SSMS把DAC包部署到SQL
发布时间:2010-04-26 11:15        来源:        作者:蒋建华
【赛迪网-IT技术报道】数据应用层程序(Data-Tier Application Component, DAC)是SQL Sever 2008 R2的一大功能亮点,结合使用Visual Studio 2010,可以帮助开发人员和数据库管理员比以前更加有效的开发、部署、管理应用程序的数据层。 数据库应用层程序(DAC)是一个包含了几乎某一应用所需要的数据库及实例对象的实体,如表、视图、存储过程、登录等等。有了实体以后,开发人员或数据库管理员就可以把DAC打包成为一个单一实体,这个单一实体就是DAC包。 DBA可以把DAC包部署到SQL Server上,数据库管理员就可以把原本独立的对象视为一个数据库应用层的程序来进行部署、监控和管理。 DAC既为开发人员提供了新的数据库开发工具,又为DBA提供了数据层管理工具,开发人员开发出DAC应用后,通过VS2010 IDE的编译,打包成DAC包(其扩展名是.dacpac)并提供给数据库管理员,DBA通过SSMS把DAC包部署到SQL Server数据库上。DAC应用开发、部署、管理的整个过程如图1所示:
图1 DAC开发和生产过程
对DAC有了大概了解后,接下来我们以一个完整的实例结合VS 2010来介绍DAC应用程序的开发和部署过程。 这里我们分成三个部分:DAC开发环境、创建DAC应用、部署DAC应用。 1.DAC开发环境 在VS 2010 和SQL Server 2008 R2(包括SQL Server 2008)之前,我们是不能单独在Visual Studio或者SQL Server里创建DAC的,以VS 2008+SQL Server2008开发环境为例,在此环境下可以创建的数据库项目如图2所示:
图2 VS 2008数据库项目模板
而数据应用层支持的SQL Server版本如表1所示:
在DAC中,不是所有的SQL Server对象都支持, 能够支持的数据库对象如表2所示:
表2 DAC支持的SQL Server对象
应用&实践 使用AdventureWorks创建DAC包 为了验证SQL Server 2008 R2中DAC对SQL Server对象的支持,我们以SQL Server 2008 R2的实例数据AdventureWorks为例来演示。 对已经存在的数据库SQL Server 2008 R2可以使用向导来创建数据层应用程序,使用向导页面,可以设置DAC属性、查看对象依赖项、验证结果和生成DAC包。 (1)打开Microsoft SQL Server Management Studio,右击AdventureWorks,选择任务|提取数据层应用程序(X)… (2)在弹出的页面中可以看到DAC简介,点击“下一步”,设置DAC属性,这里可以设置的属性有:应用程序名称、版本号、说明、保存的DAC包文件 (3)设置完成后点击下一步,查看对象依赖项和验证,验证结果如图3所示:
图3 AdventureWorks库验证结果
案例使用Adventu在步骤2中reWorks创建DAC包不仅给大家展示了DAC支持和不支持的数据库对象,同时也给大家(尤其是DBA)提供了一种简单而有效的创建DAC的方法,感兴趣的读者可以自己下去尝试一下。 安装了SQL Server 2008 R2和VS 2010后,我们就可以创建DAC应用,如图4所示:
图4 使用VS2010创建数据层应用程序
同时在应用程序模板的右侧我们可以看到数据层应用程序的概念和作用。 2.创建DAC应用 开发人员创建DAC应用后,需要对数据DAC应用做一些初始化,这些初始化的操作可以是创建表、字段、视图,不仅如此,还可以把已经存在的DAC包导入,或者直接导入脚本来创建DAC应用。 案例&应用 在VS 2010中创建DAC应用SqlDacDemo 在如图3所示的界面上,我们创建用于演示的项目SqlDacDemo,并把项目的解决方案存入E:\Demo下,点击“OK”,创建DAC应用如图5所示:
图5 创建SqlDacDemo
在图5所示界面中,我们可以看到使用VS 2010创建DAC应用程序后,可以创建和实现的功能有:Data Generation Plans、Schema Comparison、Schema Objects、Script。其中Schema Objects是我们在此演示案例中主要创建的对象,使用Schema Comparison可以对数据库的Schema进行比较,常用来对同一个应用的不同版本Schema进行比较。 在此演示案例中,我们创建两个数据表:Users和Products,并对SqlDacDemo项目进行编译打包,为第三步部署DAC应用做好准备工作。 (1)在项目工程中依次展开Schema Objects|Schemas|tables,右击“Tables”,选择Add,弹出添加表的界面,如图6所示:
图6 添加数据表
输入Users,点击“Add”,创建Users.Table.Sql,重复步骤1,添加Products.Table.Sql,输入创建用户表(Users)和产品表(Products)的脚本,完成后可以在Schema Objects|Schemas|tables下增加了两个文件Users.Table.Sql和Products.Table.Sql,这样我们创建表的工作已经完成了。 我们可以直接写SQL 脚本来创建数据表,不仅如此,在DAC项目中,还可以创建的内容有: 在项目属性里设置项目版本、默认Schema、 数据层应用属性,如DAC的名称、版本、描述 Schema 对象,如Assembly、Trigger、安全、服务、存储、表、视图、函数 所有数据库引擎实例级别的对象,例如错误信息、连接的服务器 其他辅助文档和一些脚本,如部署前准备脚本及部署后清理脚本等等 (2)创建表完成后,需要设置项目的属性,右击解决方案“SqlDacDemo”,选择属性,弹出的属性页里选择项目设置,如图7所示:
图7 项目属性设置
如图7所示,在项目属性页里,可以项目版本、数据模型、默认的Schema,数据层应用属性,这里的重点是数据层应用属性,其可设置属性有名称、版本号、描述。 选择Build页,设置数据集合、编译输出文件路径、编译输出文件名称,设置完成后,点击保存。 (3)编译工程文件,选择菜单Build| Build Solution,可以看到: SqlDacDemo ->
加载更多

专题访谈

合作站点
stat