DB2和Visual Studio .NET

大图景

内容系列:

此内容是在系列的一部分#: 大图片

请继续关注本系列中的其他内容。

该内容是该系列的一部分: 大图

请继续关注本系列中的其他内容。

总览

DB2覆盖了.NET和J2EE™平台的广泛开发人员。 这些开发人员在应用程序开发API和应用程序开发工具方面有自己的强烈偏好。 IBM始终认识到这两个阵营的重要性,并满足了这两个阵营的需求。

对于Windows®Java™开发人员,IBM在JDBC™和JCC驱动程序,独立的DB2开发中心以及针对WebSphere®和RationalStudio®IDE的集成插件方面提供了强大的产品。

DB2和Visual Studio .NET

对于.NET Windows开发人员,IBM已经认识到对与该环境进行更紧密集成的强烈需求。 IBM坚定致力于.NET平台,特别是Visual Studio .NET,自2002年初以来,该平台已成为Microsoft Visual Studio集成商计划(VSIP)的一部分。IBM已交付了一个本机.NET托管提供程序和一组紧密集成的Visual Studio 2002和2003 IDE的工具。

本文重点介绍Windows客户端平台上IBM当前的.NET支持。

整合功能

.NET平台和Visual Studio .NET上的一些主要集成点包括:

  • DB2 .NET托管提供程序 -本机DB2 .NET托管提供程序使应用程序开发人员可以使用标准ADO.NET编程模型来构建和运行应用程序。 该本地提供程序提供了比DB2的ODBC和OLE DB通用托管提供程序更高的支持级别。
  • 解决方案资源管理器 -DB2数据库项目模板允许基于脚本的开发,这是Visual Studio解决方案标准集的一部分,支持多配置,源代码管理,项目和项目项构建顺序,以及SQL脚本的编辑和调试使用内置的编辑器和调试器。
  • 服务器资源管理器 -IBM资源管理器提供与Visual Studio服务器资源管理器相同的外观,并通过拖放功能实现目录访问和快速的.NET应用程序开发。
  • SQL向导 -一组易于使用的丰富向导允许从解决方案资源管理器或服务器资源管理器中创建新的服务器端表,视图,索引,触发器,过程和函数。
  • SQL编辑器 -内置的Visual Studio文本编辑器已得到扩展,以提供对具有“ intelisense”和语法颜色以及高级脚本选项的DB2 SQL脚本的本地支持。
  • SQL调试器 -内置的Visual Studio调试器已得到扩展,以提供对DB2 SQL例程的调试支持,从而允许将跨平台SQL存储过程的源代码级调试作为DB2数据库项目的一部分。
  • 动态帮助 -Visual Studio上下文相关的帮助已得到扩展,可以为DB2 .NET托管提供程序和Visual Studio AD工具提供在线帮助。
  • DB2工具工具栏 -可以使用DB2工具工具栏直接从Visual Studio IDE中启动各种DB2开发和管理中心。

可用性

最初将Visual Studio .NET的DB2 AD工具作为DB2和DB2 Connect V8.1.2的一部分提供。 此处描述的功能是2004年10月发布的DB2和DB2 Connect V8.2的一部分。

平台支持矩阵

下表有助于说明每个DB2服务器平台的支持级别。 请注意,分布式列是指Windows和UNIX®服务器平台。

表1. DB2平台支持列表
特征 z /操作系统 i系列 分散式
服务器级别 V6,V7,V8 V5r1,V5r2 V8
客户等级 连接V8.2 连接V8.2 ADC V8.2
托管提供商
ADO.NET工具箱
SQL调试器 没有 没有
数据库项目
IBM资源管理器
表向导
索引向导
触发精灵
SQL过程向导
CLR过程向导 没有 没有
SQL函数向导 是(标量) 是(标量) 是(标量/表)
IIS Web方法
WAS Web服务 没有 没有

IBM Informix数据库支持(IDS)

IBM Informix Client SDK附带了IBMInformix®.NET本机数据提供程序。 SDK的2.90版包含对IDS .NET托管提供程序的有限工具支持。 扩展了Visual Studio工具箱的“数据”选项卡,以列出IDS ADO.NET对象。 您可以将这些对象拖放到win和Web表单容器中。 您还可以使用自定义编辑器自定义这些对象。

安装IDS客户端SDK时,将自动安装和配置.NET托管提供程序和Visual Studio工具。

IBM DB2 Everyplace支持(DB2e)

DB2e托管提供程序有两种版本,分别是在.NET Framework上运行的Data.DB2.DB2e和在.NET Compact Framework上运行的IBM.Data.DB2.DB2e.CF

从V8.1.4开始,仅为Data.DB2.DB2e提供程序提供了基本的RAD工具。 该工具提供了与VS.NET数据工具箱的集成,开发人员可以在其中设置DB2e ADO.NET对象的属性,例如DB2eConnectionDB2eCommandDB2eDataAdapter等等。

DB2托管提供程序

DB2 .NET托管提供程序允许使用标准ADO.NET编程模型进行以数据为中心的应用程序开发。 尽管.NET开发人员可以选择使用ODBC,OLE DB或本机提供程序来开发其DB2应用程序,但是在RAD工具和性能方面,本机提供程序应该是您的首选。

提供者对象模型

像所有其他ADO.NET提供程序一样,DB2托管提供程序实现了同一套标准ADO.NET类和方法。 这些类在IBM.Data.DB2命名空间下定义。

图1. DB2 ADO.NET对象模型
DB2和Visual Studio .NET

查看全尺寸图片

DB2和Visual Studio .NET

主要的类包括:

  • DB2Connection数据连接类使您可以指定用于连接到目标DB2服务器的连接字符串。 默认情况下启用连接池。 打开和关闭方法调用实际上可以转换为从应用程序连接池中保留和释放活动连接。
  • DB2Command命令对象允许使用数据连接对象执行任何受支持SQL语句或存储过程。 命令执行还支持可选的超时值。
  • DB2DataAdapter数据适配器对象包含用于选择,插入,更新和删除操作的四个可选命令,这些命令可以是SQL语句或存储过程调用。
  • DB2DataReader您通常使用DB2DataReader快速仅向前访问从执行SQL语句或存储过程调用返回的断开连接的结果集。

性能影响

如前所述,尽管您可以选择使用ODBC或OLE DB提供程序,但由于消除了DB2之上的额外ODBC,OLE DB层,.NET本机提供程序将产生最佳性能。

该实验室已经对三个受支持的托管提供程序进行了内部性能测试,我们在其中测试了具有不同行数的两种不同行大小的数据检索。 结果清楚地表明,本地DB2 .NET托管提供程序提供了最佳性能。

DB2 .NET托管提供程序中包括的一些性能增强包括MTS支持,松散耦合的事务,延迟的入伍等等。

图2. DB2提供程序的性能
DB2和Visual Studio .NET

查看全尺寸图片

DB2和Visual Studio .NET

脚本向导

DB2 V8.2开发外接程序的一项关键的新增强功能是一组功能丰富的脚本向导,用于为表,视图,触发器,索引,存储过程和函数生成所需的CREATE DDL。

向导概述

有两个集成点可用于启动DB2脚本向导。 即从Solution Explorer视图中的DB2数据库项目,以及IBM Explorer视图中的DB2数据连接。

脚本向导会指导您完成自定义生成的DDL和SQL语句以创建新的DB2模式对象和例程所需的步骤。

从IBM Explorer启动向导时,您可以直接执行生成的DDL,也可以选择将其添加到新的或现有的DB2数据库项目中。

当您从解决方案资源管理器中启动向导时,所生成的脚本将添加到您的DB2数据库项目中,以供以后编译或项目构建。 与通用SQL Server数据库项目相比,DB2脚本向导为您提供了很大的优势。

表向导(和导入对话框)

表向导允许为DB2服务器系列生成CREATE TABLE DDL。 您可以指定高级值选项(身份,生成的等等),唯一键,外键,主键和检查约束。

表向导的一项关键功能是能够使用公共导入列对话框导入数据连接中其他表和视图的列定义,该对话框也被许多其他加载项向导和对话框使用。 此功能允许克隆表以及定义外键列的功能。

索引向导

索引向导允许为DB2服务器家族定义CREATE INDEX DDL。 您可以在索引上指定高级选项,也可以使用升序或降序子句在同一索引中定义多个列。 该向导将自动检测要建立索引的基表的列定义。

触发精灵

触发向导允许为DB2服务器家族定义CREATE TRIGGER DDL。 您可以为表和视图创建触发器,在其中自动检测到表和视图定义。 还支持Of触发器。 您可以自定义所有触发器DDL选项,包括何时触发,频率和动作等。

查看向导

视图向导允许为DB2服务器家族定义CREATE VIEW DDL。 您可以使用内置的架构智能支持来轻松​​定义视图所需SQL查询。

SQL过程向导

SQL存储过程向导允许为DB2服务器家族定义CREATE PROCEDURE DDL和例程主体。 您可以定义零个或多个结果集,自动发现或导入参数,并使用模式智能感知对例程主体进行编码。 该向导还允许您为z / OS SQL存储过程指定高级SQL构建选项,或使用连接级别的默认构建选项。

SQL函数向导

SQL用户定义的函数向导允许为DB2服务器家族的标量或表格函数定义CREATE FUNCTION DDL和例程主体。 返回类型以及所有输入参数都会自动发现。 您可以使用模式智能感知来对函数例程的主体进行编码。

DB2数据库项目

使用Visual Studio解决方案资源管理器,可以创建一个或多个特定于DB2的脚本项目来管理服务器脚本的执行。 脚本文件可以包含任何受支持的DDL,DML和DCL SQL语句。

项目概况

DB2数据库项目
DB2和Visual Studio .NET

DB2数据库项目是功能齐全的Visual Studio项目模板,支持多种配置,编译/构建,项目构建顺序,源代码管理和版本控制以及启动例程。

您可以使用基于文本的脚本模板来创建新的项目项,或者直接启动前面详述的任何一种脚本向导,以为各种DB2对象生成所需的CREATE DDL。

DB2数据库项目的全功能支持使其远远优于有限的通用SQL Server数据库项目。

多种配置支持

Visual Studio中的解决方案支持多配置选项,其中可以根据所选配置使用不同的项目集和项目项属性来构建项目项。

DB2数据库项目完全支持此多配置功能。 适用于Linux,UNIX和Windows上SQL存储过程的用于调试的版本或用于发布的版本使用此功能为这些存储过程生成所需的调试信息。 另外,您可以为每个配置指定一组不同的z /OS®SQL构建选项,并为每个配置指定不同的目标数据连接以编译脚本文件。 因此,您可以使用简单的配置名称开关从测试数据连接到生产数据连接部署相同的脚本集。

项目建立顺序

项目脚本项的默认构建顺序是按照将它们添加到项目中的顺序来构建它们。 通常,您将需要基于脚本依赖性的不同脚本构建顺序。 一个示例是需要先创建表集,然后再创建访问它们的存储过程。

您可以使用项目项构建顺序(DB2数据库项目独有的功能)来定义特定于配置的脚本项构建顺序。

源代码版本控制

与Visual Studio中的大多数其他项目模板一样,DB2数据库项目已经实现了适当的接口,可与任何已配置的源代码管理管理系统(例如Clear Case或Visual Source Safe)集成。

SQL编辑器

标准的Visual Studio .NET文本编辑器和语言服务已得到扩展,以支持特定于DB2的脚本语法着色,数据连接架构智能,高级脚本选项和SQL代码片段插入。

一些高级脚本选项包括指定可折叠代码段(也称为隐藏文本),编译错误忽略,结果集输出捕获以及特定于平台的编译的功能。

启动程序

使用DB2数据库项目属性,可以指定编译数据连接以及启动存储过程和参数值。 当您运行或调试DB2数据库项目时,将调用此启动存储过程。 默认操作是在执行存储过程后回滚。 可以使用用户选项XML文件进行修改。

IBM资源管理器

DB2和Visual Studio .NETIBM Explorer是引入的新视图,用于支持特定于DB2的托管提供程序数据连接。 该视图为Server Explorer数据连接提供了更多功能。 但是,此附加功能并未更改Server Explorer RAD编程范例。

IBM Explorer数据连接使用表,视图,过程和函数文件夹显示目录信息。 除了这些目录文件夹之外,新的数据适配器文件夹还允许定义可在应用程序之间以及与其他团队成员共享的可重复使用的ADO.NET数据适配器。

发现

添加数据连接时,可以添加本地和远程数据库连接。 如果在服务器平台上启用了DB2 Admin Server,则可能会发现远程连接。 您可以替换地添加已经在本地分类的远程连接,或者只需为服务器字段指定host_name:port_number即可

多个命名连接和过滤

使用IBM Explorer,您可以将多个数据连接添加到同一目标DB2服务器和数据库,每个都有唯一的名称。 多个连接与文件夹级过滤器结合在一起,可用于在同一数据库上投影不同的视图。 筛选功能使您可以将目录信息量减少到与您的应用程序组件相关的内容。

缓存和刷新

IBM Explorer的早期设计目标之一是使开发人员能够在脱机模式下工作。 目录信息在客户端工作站上本地兑现。 随后启动的Visual Studio IDE将重新使用此缓存的目录信息。

为了帮助用户识别陈旧的数据,在文件夹级别显示了一个timestamp属性,以反映检索缓存信息的最后日期和时间。 您可以随时选择从服务器刷新缓存。

支持表格和视图

可以在检索任何目录数据之前过滤表和视图文件夹。 使用这些文件夹,您可以启动适当的向导来创建新的表和视图。 您可以检索表和查看数据,更改数据,并将更新传播回服务器。 您也可以删除这些对象或为其生成CREATE DDL脚本以进行进一步编辑。

表和视图上的详细信息视图使您可以管理这些对象的索引和触发器。

您可以将表格和视图拖放到表单设计器上,以自动生成和配置所需的ADO.NET组件托盘对象。

支持程序和功能

可以在检索任何目录数据之前过滤过程和功能文件夹。 您可以通过启动相应的脚本向导直接从这些文件夹中创建新SQL过程和函数。 您还可以对这些对象执行测试运行。 缺省情况下,从IBM Explorer执行过程或功能后,将发出回滚。 您可以在执行后通过更改userOptions.xml文件中的适当值来userOptions.xml提交。 此外,您可以删除过程和功能或查看其分类目录的源代码以进行进一步编辑。

您可以将过程和函数拖放到表单设计器上,以自动生成和配置所需的ADO.NET组件托盘对象。

可重复使用的数据适配器

ADO.NET数据适配器是功能强大的数据对象,它们封装了插入,更新,删除和查询操作。 开发人员花费大量时间来定义和定制这些数据适配器。 但是,在表单之间,跨项目或在用户之间共享它们几乎是不可能的。

IBM Explorer数据连接在DB2数据连接下引入了这个新文件夹,允许用户定义和重用数据适配器。 可以使用相同的RAD功能集将这些适配器拖放到Win和Web表单设计器上,以及预览和修改这些数据适配器检索到的数据。

一旦在数据连接中定义了数据适配器,就可以自动为这些适配器生成数据集,并将数据集定义添加到项目中。 无需将适配器拖放到表单设计器上即可完成。 然后,您可以在应用程序开发中使用格式化和键入的数据集,包括使用数据表单向导生成数据表单的功能。

可重用数据适配器的一项强大功能是能够将它们部署到DB2嵌入式WebSphere应用程序服务器或生成IIS Web方法以将其部署为Web服务的能力。 这种零代码操作允许将数据连接SQL或存储过程作为Web服务快速部署。

可重用数据适配器的另一个有趣的功能是能够将一个或多个数据适配器导入和导出为XML文件,以便与其他用户共享或签入/签出到源代码管理管理中。

DB2 RAD和Visual Studio .NET

用于Visual Studio .NET的DB2 V8.2开发外接程序提供了两个关键的应用程序开发功能: 即,使用脚本来开发服务器端模式和逻辑,如先前所述,并使用快速应用程序开发(RAD)功能来开发客户端或中间层ADO.NET应用程序组件。

从IBM Explorer拖放

您可以拖动任何IBM Explorer模式和逻辑对象,然后拖放到Winform和Webform设计器上。 拖放操作将自动生成所需的ADO.NET连接,命令和数据适配器对象,并将它们添加到表单的组件托盘中。

此外,您可以从连接的Adapters文件夹中拖放预配置的ADO.NET数据适配器,并将它们拖放到组件托盘中。

工具箱控件

DB2和Visual Studio .NET当使用基于组件的对象(例如表单或Web服务设计器)时,可以直接从工具箱的“数据”部分拖放对象,并将其拖放到设计器画布上。 在系统上注册DB2 .NET托管提供程序后, DB2Command DB2ConnectionDB2CommandDB2DataAdapter对象自动添加到工具箱中。

与从IBM Explorer拖放不同,必须使用下面概述的定制ADO.NET编辑器来配置工具箱对象,以进行正确的操作。

连接字符串编辑器

连接字符串编辑器允许您配置组件托盘DB2Connection对象。 连接字符串是根据您选择的IBM Explorer数据连接和输入的用户/密码自动生成的。

数据适配器向导

DB2数据适配器配置向导可用于设置组件托盘数据适配器的选项,包括数据连接,选择命令,插入命令,删除命令和更新命令。

该向导可用于定义执行直接SQL的命令或调用存储过程的命令。

您还可以通过发现结果集或手动定义一个或多个返回的结果集来定义选择命令的形状(SQL语句或存储过程调用)。

对于存储过程,可以将存储过程的输入和输出参数映射到select命令中定义的数据集源列。

命令编辑器

命令编辑器可用于配置在组件托盘中找到的DB2Commands 独立命令编辑器中使用了用于定义各种数据适配器命令的同一组UI元素。 在SQL语句中找到SQL参数是自动发现的,但也可以手动定义。

产生数据集

一旦配置了数据适配器,就可以生成数据集定义,该定义将托管数据适配器断开连接的结果集。 生成数据集对话框使您既可以生成新数据集,又可以将结果集数据表包括在现有项目数据集中。

定义数据集后,您可以选择将数据集对象实例包含在组件托盘中,以便快速将数据源映射到表单设计器中的表单控件。

CLR程序和功能

DB2支持多种存储过程编程语言的历史由来已久,其中包括C,Java,Perl,Cobol和REXX等。 增加对基于CLR的存储过程和函数的支持是很自然的,这些过程和函数支持所有CLR语言,例如C#和Visual Basic。

DB2发布了对CLR存储过程和功能的支持,早于包括Microsoft SQL Server在内的任何其他数据库服务器。 这包括执行CLR过程和功能的引擎支持,使用DB2Context对象的托管提供程序支持以及Visual Studio AD工具。

新的Visual Studio项目模板已添加到C#和Visual Basic项目的标准列表中,即DB2 Class Assembly项目。 该项目模板几乎与C#/ VB Class Assembly项目相同,但是增加了对IBM.Data.DB2命名空间和程序集的自动引用,以及对存储过程的预定义类样本。 您可以使用此项目模板来定义多个CLR存储过程和功能。

DB2和Visual Studio .NET一旦编译了CLR项目,就可以生成所需的DB2 DDL脚本来定义一个或多个CLR存储过程和函数。 内置的DB2 CLR过程向导可用于自动检测解决方案中可能包含候选CLR过程的项目。 然后,CLR向导将允许您自定义生成的DDL和数据类型映射。 生成DDL脚本后,然后将其添加到解决方案中的DB2数据库项目中以供以后部署。 项目程序集也被添加到必须作为DB2数据库项目构建过程的一部分部署到目标DB2服务器的程序集列表。

您可以使用DB2数据库项目上的“程序集”菜单操作来管理要部署到服务器的CLR程序集的列表。 您可以添加,删除以及选择要部署的程序集的调试版与发行版。

部署后,CLR过程的行为与任何其他语言的存储过程相同,并且可以用作应用程序的一部分。

SQL调试器

集成的跨语言Visual Studio调试器已扩展为支持后端DB2 SQL调试器。 现在,您可以在执行数据库服务器例程时进入嵌套SQL存储过程调用,设置行断点,变量值更改断点以及修改变量值。

初始调试器支持内置于DB2数据库项目中,您可以在其中指定将在调试模式下执行的启动存储过程。 该支持仅限于DB2 Linux,UNIX和Windows服务器。

展望未来,调试支持将受到越来越多的关注,所支持的平台列表将扩展到包括z / OS和iSeries。 此外,也正在研究从服务器资源管理器直接启动调试器或将其作为成熟的应用程序调试会话的一部分。

联机帮助和用户选项

DB2 AD Visual Studio版支持一组丰富的用户定制选项。 其中一些选项直接从IBM Tools文件夹下的标准Visual Studio Tools-> Options菜单中公开。 可以使用%APPDATA%\IBM\DB2\vsnet\userOptions.xml文件直接访问其他选项。

当您注册DB2 AD工具和托管提供程序时,这些工具和托管提供程序的联机帮助将自动注册到Visual Studio内置帮助功能中。 您可以访问动态帮助和基于内容的帮助。 还可以使用DB2信息中心找到其他在线帮助,该信息可以从DB2工具工具栏启动。


翻译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-0502alazzawe/index.html