以评测的形式通过一个非常简单的例子,把ADO.NET与PowerBuilder进行多方面的比较,从而揭示两种平台下数据库应用开发能力,包括功能、性能、体系结构的综合评价。
1. 评测对象描述
.NET框架提供了强大的WINDOWS FORMS 工具,可以快速开发用户界面。
同时,.NET框架提供了丰富的对象用来管理数据库操作,这些类总称为ADO.NET,ADO.NET主要是一种非连接型的数据架构。在非连接型架构中,数据从数据库中取出,缓存在本地机器中,可以在本机上处理数据,仅在改变记录或获取新数据时才与数据库连接。数据库连接要占用大量资源,数据架构与数据库不保持连接最大的好处就是比较节省资源。非连接型数据对象的工作模式与WEB 很像。所有WEB会话都是非连接型的,状态不会在不同的页面请求之间保留,因此非连接型数据架构与WEB的配合更清晰。
PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/
服务器体系结构研制设计,在客户机/
服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder(后面简称PB),可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。
2. 评测内容
1、编程效率(主要从windows forms 快速开发评测)。
2、数据表现形式。(主要从windows forms 快速开发评测)
3、数据操纵。(主要从ADO.NET连接数据库,操纵数据库数据评测)
4、ADO.NET事务处理,连接池的使用,通过使用System.Data.SqlClient/
OracleClient 命名空间,改变连接字符串,测试数据检索速度。
5、定性评价:远程访问等。
3. 评测方法
开发一个数据库程序
1、 利用WINDOWS FORMS 开发程序界面。
程序界面主要使用数据绑定控件DATAGRID,文本框,标签等常用控件,将数据库中的数据表现出来。和PB比较开发效率。
2、 利用ADO.NET 连接数据库,操纵数据库中数据。
通过ADO.NET连接到本机数据库中的表“GLDW”,使用ADO.NET对象模型中DATASET对象和DATAADAPTER对象,实现数据检索,数据更新,数据添加,数据删除等功能。并和PB中DATAWINDOW这方面功能进行比较,指出两者的区别。用具体数据量做比较。
测试用例编码:
首先需要连接数据库:
数据库连接方法1:(使用OLEDB,名字空间System.Data.OleDb)
string connectstr="Provider = MSDAORA.1;Password=gdmis;User ID=gdmis;Data Source=ms_fengguol.bj.xjgc.com";
string conmmandstr="select * from gldw";
OleDbDataAdapter myDataAdpater = new OleDbDataAdapter (conmmandstr,connectstr);
数据库连接方法2:(使用.net Data Provider,名字空间System.Data.
OracleClient)
String connectstr=" Password=gdmis;User ID=gdmis;Data Source=ms_demo";
string conmmandstr="select * from gldw ";
OracleDataAdapter myDataAdpater = new OracleDataAdapter (conmmandstr,connectstr);
连接数据库后,生成数据集,检索数据只要用一行编码:dataAdapter1.fill(dataSet11);
实现添加功能的代码:
DataRow newRow = dataSet11.Tables ["gldw"].NewRow ();
newRow["dwbm"] = textDWH.Text ;
newRow["dwmc"] = textDWMC.Text ;
newRow["bz"] = textBZ.Text ;
newRow["sqbm"] = textSQM.Text ;
newRow["id"] = textID.Text ;
dataSet11.Tables ["gldw"].Rows .Add (newRow);
oleDbDataAdapter1.Update (dataSet11,"gldw") ;
Application.DoEvents ();
dataSet11.AcceptChanges ();
实现删除功能的代码:
dataSet11.Tables ["gldw"].Rows [dataGrid1.CurrentRowIndex ].Delete ();
oleDbDataAdapter1.Update (dataSet11,"gldw");
dataSet11.AcceptChanges ();
实现更新功能的代码:
oleDbDataAdapter1.Update (dataSet11,"gldw");
dataSet11.AcceptChanges ();
测试结果:
1、用户界面。
|
对比项 |
Vs.net |
Powerbuider |
|
体系结构 |
基于控件和容器 |
基于控件和容器 |
|
Datagrid VS Datawindow |
控件本身支持记录的多条选定,记录排序,控件根据窗体自动调整大小。 |
需要编程来实现 |
|
面向对象特性 |
支持可视化继承 |
支持可视化继承 |
|
主表/从表关联 |
只需要在DATASET中增加一个DATARELATION .(如测试用例界面所示) |
需要手工拷贝或者共享,需要编写代码进行控制主表/从表的同步。 |
|
动态控制 |
每一个控件都有动态特性:程序部署以后,可以通过配置文件控制控件外观及行为,不用编写代码。如:改变某一按钮的名称,让某一按钮不可见/可见。 |
无此功能 |
|
结论 |
利用VS.NET 的 windows forms 可以快速,高效,高质量的开发用户界面。 |
PB 中开发用户界面效率一般。 |
3、 数据访问。
|
对比项 |
ADO.NET |
PB DATAWINDOW |
|
连接池 |
自动管理连接池 |
无此内容 |
|
数据获取 |
三种: DATAREADER(连接型游标),DATASET(非连接型数据集,包括DataTable, DataView);DATAADAPTER(连接管理)。 |
两种:DATAWINDOW, DATASTORE |
|
连接方式 |
支持多种连接方式和可视化连接,需要代码非常少。 |
必须在程序中用代码连接。 |
|
数据操纵速度(1)数据集 |
通过OLEDB,因为要和COM做互操作,数据检索速度效果不好, 产生这种效果同时和DATASET 的架构有关:DATASET 由 一组DATATABLE对象和一组 DATARELATION 对象组成,相当于一个小数据库,比PB的datawindow复杂,这样功能更多更强,比如处理主表——从表关系。数据适配器调用fill() 方法向数据集填充数据时,包含打开连接,填充数据,关闭连接。
通过.net Data Provider,数据检索速度有明显改善,基本与PB 持平。
检索操作:
测试数据(基于.net Data Provider):gldw表(3条记录,时间:1秒),yhzqk表(45018条记录,时间:37秒),cw02表(7084条记录,时间:13秒)。
数据更新,数据删除速度非常快.因为更新数据、删除数据时,其实现方式与PB相同,都是形成SQL语句,其执行效率也一样。 |
数据处理速度非常快,包括数据检索,数据更新,数据删除。主要因为DATAWINDOW只是一个二维表的缓冲区,只能包含一个表,或者一个视图。
测试数据:gldw表(3条记录,时间:1秒),yhzqk表(45018条记录,时间:33秒),cw02表(7084条记录,时间:11秒)。 |
|
数据操纵速度(1)游标 |
DATAREADER是ADO.NET提供的一种连接型的高效游标,用来从数据库中检索只读,只进的数据流。测试时,通过DATAREADER把数据读出来写入一个LISTBOX.
测试数据:
CW02表(7084条记录,时间:7秒),YHZQK表(45018条记录,时间:28秒) |
PB中通过声明CURSOR把数据读出来写入一个LISTBOX
测试数据:
CW02表(7048条记录,时间:5秒),YHZQK表(45018条记录,时间:58秒) |
4、 数据表现形式。ADO.net的数据表现形式不是很丰富,没有PB的数据窗口丰富。
|
对比项 |
Vs.net |
PB datawindow |
|
Grid表现形式 |
支持 |
支持 |
|
自由形式 |
支持 |
支持 |
|
丰富文本形式 |
不支持 |
支持 |
|
分组表现样式 |
不支持 |
支持 |
|
标签表现样式 |
不支持 |
支持 |
|
交叉表样式 |
不支持 |
支持 |
|
组合样式 |
不支持 |
支持 |
|
树型样式 |
支持 |
支持 |
[1] [2] 下一页

【责编:Peng】