动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 软件工程 ]的信息

本月文章推荐
.应用服务器向SOA靠拢.
.Web服务的期望与现实.
.UML的三大“硬伤”.
.使用UML为EAI建模.
.软件工程项目管理的任务.
..NET对IT专业人员的重要意义.
.利用代间差分遗传算法优化分形图.
.SOA对集中数据的作用.
.SOA成熟度模型为SOA 护航.
.项目管理中的(用户)需求变更控.
.QA与QC关系的整合.
.规划SOA(2)构建SOA路线图.
.基于UML的系统分析方法研究.
.基于VS.NET的自定项目模板研究.
.选择SOA的原因和时机(1).
.创新和效率 寻找SOA的中国切入点.
.随需而变 SOA将成集成主流.
.统一建模语言(UML)的现状及发展.
.盖茨称微软将超越以Windows为中心.
.历史十大黑客事件:不堪一击的系.

用.Net开发DB2应用程序比较

发表日期:2008-3-23 |


  简介

  在.NET应用软件开发人员看来,使用DB2与使用其它任何其它关系数据库没有区别。人们可以看到无数使用SQL Server以及甲骨文公司产品执行数据库任务的例子,但关于使用包括.NET在内的微软公司技术访问DB2数据库的文档就远没有那么多了。

  目前,开发人员可以使用不同的访问技术通过编程的方式将.NET客户端连接到DB2上,这些代码从根本上来说是基本相同的,但仍然存在一些我们需要考虑的有趣的限制。

  DB2架构慨览

  DB2数据库引擎的基本元素是数据库对象、系统目录、目录和配置文件,所有的数据存取都通过SQL界面进行。我们可以只将DB2 Univeral Database(UDB)作为数据库服务器运行,这不要求使用其它的产品,但对于远程的客户端而言,我们还需要其它一些产品。

  DB2 UDB的服务器组件提供了对使用TCP/IP、SNA或IPX/SPX协议与数据库服务器进行通讯的支持,这就能够使运行治理客户端、运行时间库或应用程序开发客户端的远程客户端进行访问。应用程序开发客户端组件是面向数据库应用程序开发人员的工具集,它包括库文件、头文件、API和样板代码。

  我们主要关心的是能够通过网络访问数据库服务器的客户端组件。通过使用DB2 Connect,我们的.NET应用程序能够访问基于主机的DB2系统,例如DB2 for AS/400、DB2 for OS/390、DB2 for VSE等。 用.Net开发DB2应用程序比较(图一)
(图pict01)

  连接到DB2的方式决定了我们能够完成的任务。有三种技术可以从.NET连接到DB2:   1、使用OleDb .NET Managed Provider。假如运行的是DB2 V7或更低的版本以及COM对象是调用者时,微软和IBM二家公司都建议使用OleDb数据提供者访问大多数DB2数据。在.NET Framework中,OleDb提供商是通过COM InterOp表现出来的,并使用可用于ADO开发的驱动程序。

  2、使用ODBC .NET Managed Provider。这种方式提供了对本地ODBC驱动程序的访问,与OLEDb .NET Data Provider提供对本地OLEDb提供者访问的方式相同。ODBC .NET Data Provider是.NET Framework的一个附加组件,它能够与所有兼容的ODBC驱动程序配合使用。

  3、使用IBM DB2 .NET Provider(β):这种方式提供了对将ADO.NET连接到DB2 V8.1的支持。DB2 .NET Data Provider是Visual Studio .NET Framework的一个内插式附件,它能够访问在运行在不同硬件和操作系统平台上的DB·数据库服务器。目前,它仍然处于β测试阶段,但IBM公司很快会发布正式产品。DB2 .Net Data Provider能够将使用ADO.NET开发的应用程序连接到下面的DB2数据库服务器上:

  ·运行在Windows、UNIX和Linux平台上的DB2 Universal Database Version 8.1。

  ·运行在z/OS、OS/390 V6.1以及使用DB2 Connect V8.1组件的更高版本的操作系统上的DB2 Universal Database。

  不同的连接字符串显示出不同情况下的语法差别:

   OleDb连接字符串 ...

Provider=IBMDADB2.1;User ID=db2admin;PassWord=db2admin;Data Source=SAMPLE    ODBC连接字符串 ...

DSN=DB2V8;UID=db2admin;PWD=db2admin
   IBM Managed Provider连接字符串 ...

Database=SAMPLE;User ID=db2admin;Password=db2admin;Server=IREK 代码级访问的比较

  在开发DB2数据访问代码时,大多数的操作在很大程度上与访问其它数据库相同。下面我们对连接技术的一些代码进行比较:

  在下面的每个代码片断中,我们将展示一些数据库访问和数据治理的技巧,请读者注重每种技术的哪些步骤相同。我们首先创建连接对象,再创建一个命令对象。在这个简单的例子中,我们只访问这一特定数据库表中指定行、列中的一个标量值。最后,我们执行该命令的ExecuteScalar()方法,返回该整数。   使用Ole Db技术...

  private OleDbConnection cn = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand("SELECT COUNT(*) FROM STAFF", cn); int rc = Convert.ToInt32(cmd.ExecuteScalar());   使用ODBC...

private OdbcConnection cn = new OdbcConnection(connectionString);
OdbcCommand cmd = new OdbcCommand("SELECT COUNT(*) FROM STAFF", cn);
int rc = Convert.ToInt32(cmd.ExecuteScalar());   使用IBM的Managed Provider...

private DB2Connection cn = new DB2Connection(connectionString);
DB2Command cmd = new DB2Command("SELECT COUNT(*) FROM STAFF", cn);
int rc = Convert.ToInt32(cmd.ExecuteScalar());   功能的比较

  根据选择的访问技术和使用的数据库版本,我们可以使用不同的功能。另外,根据需要完成的工作,我们还需要选择连接策略。

  为了使读者能够更好的选择连接技术,我整理出了一个能够在决策中使用的路线图。在路线图中,我找出了一些对于大多数以数据库为中心的软件开发项目中通用的功能。

  在下面的图表中,我对自己的心得进行了整理。我根据是否答应完成特定的数据库任务对三种访问技术中的每一种都进行了评估,评估的数据库任务有:   ·Pass-thru SQL━━这一提供者是否支持通过动态开发的SQL语句形成的传递?

  ·简单的存储过程━━这一提供者支持包括返回结果在内的调用基本的存储过程吗?

  ·In、Out、InOut参数━━这一提供者支持调用存储过程和利用参数传递变量数据吗?

  ·日期和货币━━这一提供者支持由特定厂商提供、可能造成问题的数据类型吗?

  ·LOBs━━这一提供者支持大对象数据类型的处理吗? 用.Net开发DB2应用程序比较(图二)
(图pict02)   根据使用的连接技术,我们能够完成不同类型的任务,因为每种提供者都有自己可以完成的工作。有一些问题是我们值得注重的。

  例如,ODBC不支持DB2的存储过程。因此,假如开发的应用软件非常依靠于存储过程,我们在选择访问技术时就不能考虑ODBC,而应当考虑OleDb或Managed Provider。OleDb不支持LOB数据类型,假如要存取LOB类型的数据(例如JPEG文件),我们可以使用ODBC或Managed Provider。目前,Managed Provider不能在DB2 V7或以前版本上运行,除非在应用程序和基于主机的DB2系统之间运行着DB2 Connect V8。

  有趣的是,在使用存储过程的参数时,DB2 V7和OleDb有一个非常闻名的bug。我们能够从存储过程中返回数据,但在OleDb+DB2 V7平台上,我们不能在应用程序与存储过程之间传递参数。
性能比较   为了衡量提供者的性能和向读者提供指导,我们将定义一个有效的测试脚本,并对各种提供者的关健性能进行测试。为了比较各种连接技术的性能,我们开发了一些简单的Web网页,一个网页面向执行完全相同功能的测试,这将使我们把握分析不同连接技术情况下输出的控制数据。 用.Net开发DB2应用程序比较(图三)
(图pict03)   假如严格地从性能的角度来看,我们发现,Managed Provider在访问DB2数据库时的性能最高。在这一简单的测试中,有二个重要的数字值得关注:每秒钟的请求(RPS)能够使我们感受到访问的规模,OleDb和ODBC在这方面的表现基本相似,但Managed Provider的表现要好一些(大约高10%左右);收到最后一字节的时间(TTLB)是从终端用户的角度看到的响应时间,在这一方面,Managed Provider的性能再次比OleDb和ODBC高出10%左右。


  最值得注重的是,尽管提供的功能不同,但OleDb和ODBC在有负荷的情况下的性能基本相同。IBM公司的Managed Provider的性能最好,而且提供了在访问DB2 V8时最可靠的功能。但是,假如没有DB2 Connect作中间体,它不支持DB2 V7以及更低的版本。

  结论

  对于应用软件开发人员而言,使用DB2作后端与使用其它通过ADO或ADO.NET访问的关系数据库一样简单。ADO.NET为我们完成了所有抽象工作。在选择DB2还是其它数据库时,尽管存在架构方面的考虑,但作为开发人员,我们的工作应当是可猜测和可治理的。
上一篇:成功项目管理的20条经验 人气:387
下一篇:ADOCE与ADO.NET的差异 人气:358
浏览全部软件工程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成