基于数据驱动的Web应用程序的构建

时间:2022-09-08 04:17:20

基于数据驱动的Web应用程序的构建

摘要:本文详细地介绍采用来编写数据驱动的Web应用程序的相关技术,包括体系结构、前台网页开发技术和数据访问技术,并给出了开发的思路。

关键词:数据驱动;Web应用程序;;

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10650-02

1 引言

随着Internet的普及,网站的应用和建设也成为一个备受关注的问题。网站不再是静态地对所有的用户显示同一内容,而是能够提供动态的内容,可以根据用户的需要显示内容,具有高度的交互性。这种动态的网站广泛地应用于电子商务网站、企业信息系统、办公自动化系统、远程教育管理系统、基于Web的MIS系统等,它们都采用新的Web开发模式---数据驱动,即通过前台动态网页技术和后台数据库相结合实现Web页面的动态显示。在前台开发工具上,目前主要是采用ASP和技术,而技术不单单是 ASP的升级,而是一种全新的开发模式---事件驱动编程模式。通过的事件驱动编程模式和Web的数据驱动,使得Web应用程序的开发跟传统的桌面应用程序一样简单。

在数据驱动的Web应用程序开发模式下,我们要考虑的是如何连接到数据源,对数据进行什么操作以及结果怎样在Web页面上显示,这就涉及到数据访问技术。

2 数据驱动的Web应用程序的体系结构

目前,数据驱动的Web应用程序采用3层的体系结构,即数据层、业务逻辑层和表示层,比传统的两层结构增加了应用服务器,将应用服务器单独进行处理,从而使得用户界面与应用服务被所有用户共享,同时这种结构可以很方便地将整个系统分为不同的模块,从而大大降低了应用系统开发成本。这种3层的体系结构图1所示[1]:

图1 三层体系结构图

表示层:即用户界面层,提供用户与系统的友好访问,实现在客户端浏览器中显示的用

户界面。该层可以调用由业务逻辑层提供的业务方法,也可以直接调用由数据层提供的接口访问企业数据库。页面则属于这一层。

业务逻辑层:业务逻辑层封装企业的业务逻辑和业务实体,是整个分层模型中最为重要的一层,该层为用户界面层提供业务功能,同时通过数据库层来访问数据库。应用服务程序都集中在这一层。

数据层:包含数据库和存储过程,以及数据访问代码。

在上面的图中,也有人把数据访问层单独作为一层,而作为原始数据本身的数据库,不作为一层列出来,这样构成用户表示层―业务逻辑层―数据访问层的三层结构,业务逻辑层和数据访问层通常都是以DLL的形式出现。

在Web应用程序中,怎样设置和区分业务逻辑层和数据访问层,这并不是一成不变的,而是根据实际的应用程序的功能的复杂程度和对系统性能的要求程度不同来设置的,数据访问层可以认为是对单个的数据表文件进行访问,而是业务逻辑层即是根据不同的功能模块设置不同的逻辑层,是对一些数据访问层的组合。

下面我们先来介绍技术。

3 的介绍

是Microsoft公司的一项新技术,建立在Microsoft .NET Framework之上,全称为Active Server ,用于创建服务器端的Web应用程序,实现的集成开发平台visual studio在经过长时间的测试之后于2002年初正式。绝不仅仅是ASP的下一个版本,它在语法上与ASP兼容,但同时提供了新的编程模型和体系结构,这个编程模型由一组控件和一个基本结构组成,通过控件的使用,编程人员只需根据业务逻辑编写一些简单的代码,形成了页面文件.ASPX和代码文件。这即是所谓的代码分离(Code-Behind)技术。在Visual 的集成开发环境中,可用多种语言来实现,也能将.NET框架中的基类库应用于网络开发中。总而言之,除了是编译执行速度快之外,最大的优点是页面和代码分离的编写方式,再加上.NET库提供的支持事件的各种Web控件,以及.NET公共平台的类库(FCL),和以前编写网页方式相比可谓是一场革命。

4 的概述

是.NET Framework中的数据访问技术,借助于,可以访问数据库中的数据,与数据库交互。能够访问多种数据源,如Microsoft SQL Server、Access、Oracle等,并且能和XML无缝集成,使.NET成为Web应用程序开发的一把利剑。

主要实现连接数据库、操作数据库和读取数据,包括了connection(数据库的连接)、command(执行数据库的命令)、datareader(数据库的读取器)、dataset(数据集)和dataadapter(数据库的适配器,主要用来操作数据库填充并操作dataset,它是数据库与dataset之间的桥梁,将连接和操作数据库都集成在一起)。的结构图如下:

图2 的结构图

与不同的数据源连接是通过不同的类来完成的,这些类以命名空间来组织,分别为system.data.sqlclient、system.data.oledb、system.data.odbcclient、system.data.oracleclient。这些类都被包含在system.data中,都提供了相应的connection、command、datareader和dataadapter类。这些类的功能如下:

Connection类主要提供连接数据库的功能。

Command类主要提供从数据库检索数据、插入数据、修改和删除数据。

Datareader类通过command类提供从数据库检索数据信息的功能。

Dataadapter类通过connection类和command类提供从数据库检索数据信息的功能,并将结果保存在一种新的数据结构dataset中,dataset是数据库中部分数据的本地的缓存。Dataadapter通过映射fill方法来更改dataset中的数据以便与数据源中的数据相匹配,通过update方法来更改数据源中的数据以便与dataset中的数据相匹配。Dataadapter类实现了selectcommand、insertcommand、updatecommand和deletecommand4种数据访问方式。

5 读取数据的对象和绑定数据的控件

5.1读取数据的对象

连接数据库之后,就需要读取数据和在Web页面上显示数据。有两种对象可以通过连接把数据引入:datareader类和dataset类。

Datareader对象提供一种以只进的行流的方式从数据库读取数据,而不允许修改数据。若要创建datareader对象,必须调command对象的executereader()方法,datareader对象具有下面3个特征:

(1)只能读取数据,没有提供创建、修改和删除数据库记录的功能;

(2)是一种向前的读取数据的方式,不能回头读取上一条记录;

(3)不能在IIS的内存中保持数据,而是把数据直接传递到显示对象。

Dataset对象提供非连接方式访问数据库中的数据,Dataset对象可以包括一个或多个datatable,并且还包括datatable之间的关系、约束等关系。它是数据在内存中的副本,可对数据进行修改,使用XML在多个平台和层间传输数据。通过dataadapter的fill方法填充dataset,而通过update方法来更新数据库。

5.2绑定数据的控件[2]

从数据库中得到的数据要反映到Web界面上,需要将这些数据集合作为数据源绑定到的服务器端控件。与数据绑定有关的服务器端控件有很多,提供了12个与数据有关的Web服务器控件,可分为服务器端简单数据访问控件和服务器端复杂数据访问控件。服务器端简单数据访问控件有文本框、标签、列表框和下拉列表框等,而服务器端复杂数据访问控件有repeater、datalist、datagrid。在本文中,主要来介绍这三个复杂数据访问控件。

Repeater控件在这三者中是最简单的,以表格的形式显示数据源的行或列的数据,提供了5种模板:headertemplate模板、itemtemplate模板、alternatingitemtemplate模板、separatortemplate模板和footertemplate模板。

Datalist控件又称数据列表控件,功能比repeater要强大很多,不但可以横排数据,还可以竖排数据。除了repeater控件的5种模板,还提供selecteditem template选择模板和edititem template选择模板,每种模板还提供相应的样式,还支持多种事件,但没有实现分页机制。

Datagrid控件又称数据网格控件,功能最强大,可以呈现多列的、完全模板化的表格,提供大量的模板,但模板不是应用到整个控件,而是应用在特定的列中,同时提供分页机制。

6 开发数据驱动的Web应用程序的步骤

开发数据驱动的Web应用程序也即是建立动态网站,现在在计算机专业本科毕业设计中很多学生都选取这个方向,那么开发动态网站应该从哪些方面着手呢?

第一步:选取开发环境和开发工具

如果对于比较专业和大型的网站,那么通常是Linux+Apache+MySQL+PHP,在Linux环境下使用Apache服务器,Apache服务器具有功能强大、性能稳定、速度快,并且是开放的完全免费的软件,广泛应用于Unix和Linux系统中,脚本语言选用PHP,PHP语法简单、也是免费开放源代码,大部分是应用于Apache服务器上,后台数据库选取MySQL,MySQL是一个真正的多用户、多线程的跨平台关系型数据库系统,功能强大、速度快、使用简便、管理方便,与PHP堪称黄金搭档。而对于一般用户,由于Windows系统的普及,那么Windows+IIS+SQL Server(或Access)+ASP(或)这种结合也是很流行。在Windows 2000 Server或Windows xp环境下,安装IIS服务器,后台数据库选取SQL Server 2000或Access,前台使用ASP结合脚本语言Javascript或Vbscript来编写。

当我们确定选取Windows+IIS+SQL Server(或Access)+ASP(或)这种模式之后,由于本文是讲述下构建Web应用程序的,那么对于,我们选取的集成开发环境是Visual ,是一种完全不同于ASP的开发模式,是基于模块和组件的,由对象来驱动处理过程的,并且能够使用多种语言,包括脚本语言(Javascript和Vbscript)和一般的程序设计语言如和C#.NET等,在Visual 中,我们可以使用或C#.NET语言。

对于后台数据库的选取,通常是在Access和SQL Server中选取一种,是根据系统功能的强弱和开发者的程度来选取的。Access通常是用于系统功能不是很强大,比较简单;而对于系统的功能比较强,要求用户权限设置的就要选择SQL Server。

第二步:系统设计,包括需求分析、总体设计、功能设计和数据库设计[3]。主要要确定系统的用户类型,每种类型能使用的功能,每个功能涉及到的数据。对于功能设计,分为前台功能和后台功能,前台功能是在页面上提供可以让前台用户操作的功能模块,那么这些操作都涉及到后台数据库的相应数据表的操作,而后台功能是对被前台用户操作过的数据表进行管理和一些系统的设置。在这一步中,出现这样的关系,即页面---模块---数据表层次关系,即数据表隶属于某个具体模块,而模块又隶属于某个页面。

第三步:界面设计:针对上一步的系统设计,不同的功能在界面上又怎样呈现出,需要用什么控件来绑定数据。

最后,要进行Web应用程序的安装和调试。

7 结束语

基于数据驱动的Web应用程序开发模式,使得界面设计和功能设计可以分离,让美工人员进行界面设计,而计算机专业人员又可以完全致力于功能的设计。同时,内容的更新和系统的维护也非常方便。但也存在一个很大的问题,那就是数据的安全,这也是开发者必须认真考虑的问题。

参考文献:

[1]John Kauffman,Fabio Claudio Ferracchiatit et. 康博.译数据库入门经典―编程篇[M].第1版.北京:清华大学出版社,2002年10月.

[2]Greg Bucze. 康博,译开发人员指南[M].第1版.北京:清华大学出版社.2002年9月.

[3]宋修舵,孙强,梁建全办公自动化系统开发实例导航[M].北京:人民邮电出版社.2005年7月.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:不能上网原因大盘点 下一篇:CDP――基于UDP的TCP协议实现