欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 软件技术 > 基于EXT.NET的Web应用程序快速开发研究

基于EXT.NET的Web应用程序快速开发研究

日期:2023-01-24 阅读量:0 所属栏目:软件技术


  在探讨B/S架构发展的基础上,对当前流行的Web应用程序的特点,如用户体验、开发环境,开发周期进行分析和比较,并在此基础上提出一种高效的解决方案。利用、三层架构和.NET开发平台,设计并实现基于B/S架构的富客户端库存管理系统。该系统界面美观,用户交互全部采用Ajax方式与后台对接,动态效果好、响应快、功能丰富,并且前台页面基本无需式样表与JS代码,软件开发周期缩短。

 

  0 引言

 

  随着互联网技术的发展,特别是动态网页技术的不断成熟,B/S架构因统一了客户端(全部使用浏览器),将系统功能实现的核心部分都集中到服务器上,简化了系统的部署、维护和更新。HTML5CSS3等新Web技术的出现,使得普通网页同样能呈现如传统C/S架构应用程序同样精致动态的富客户端用户界面。然而,由于客户端全部转移到了浏览器上,开发人员需要掌握HTMLCSSJavascript等网络编程语言,从而导致开发人员编写前台页面往往耗费大量时间,无法专注于后台业务逻辑及数据库代码[1]

 

  本文在分析和比较各类动态网页技术的基础上,提出一种针对企业web应用程序的高效解决方案,即利用三层架构、等技术,结合企业需求,设计并快速开发出一款商品库存管理系统。实验结果表明,该系统用户界面友好,业务功能强大,开发周期短。

 

  1 Web应用发展与现状

 

  1.1 Web服务器发展过程

 

  互联网应用最初,所有Web页面都是静态的,服务器收到客户端请求资源后再返回资源。此后,CGI应用程序实现了在静态Web页面上的动态交互,客户端发送的请求使服务器激活指定的CGI程序,再由它调用其它程序并收集执行结果,最后转换成能识别的HTML格式回送给客户端[2]。不过Java Applet因为其一次编写,随处可用的特点,更为流行。开发人员可以编写嵌入在Web页面中的Applet小程序,在所有支持Java的浏览器上都可以运行[3]。然而,使用Applet时要求开发人员必须考虑客户端版本问题,而且复杂的Applet在网络传输量很大,于是开发人员希望最后发送给客户端的依旧是静态的Web页面,只是这一页面是在服务器动态生成。为此,能在应用服务器上运行的ServletSun公司率先提出。Servlet根据从客户端得到的信息,利用整个服务器资源,完成所需的业务逻辑,再一行一行地打印出HTML文件发回给客户端[4]。然而这样的流程使开发人员必须考虑到Web页面的外观设计,希望将Web的图形设计与业务逻辑分开,于是针对服务器端又出现了新的解决方案,最著名的就是微软公司的Active Server Pages(ASP)[5]Sun公司的JavaServer Pages(JSP)[6]和开源的PHP[7]

 

  1.2 AJAX

 

  虽然服务器端的发展使得Web应用有了动态效果,但和C/S结构下的富客户端相比,这些动态生成的原始HTML文件依然显得有些单调。为了让用户体验更丰富,在此基础上很多技术都得到广泛关注,但真正称得上里程碑的是Ajax的出现。在Ajax之前,即使只更新Web页面上的部分数据,也必须刷新整个页面,而利用Ajax可以异步访问服务器,即时响应用户的请求,同时只传输必须更新的部分页面,大大提高了Web应用的执行效率[8]。谷歌、微软、亚马逊和雅虎等公司相继使用Ajax技术,其已成为新一代Web应用炙手可热的技术[9]。此后Ajax的概念进一步扩展,现在几乎所有不刷新页面就能实现请求服务器的技术都涵盖在内,包括XHTMLCSSDOMXMLXSLTJavaScriptXMLHttpRequest等技术[10]。然而,不可避免地要求开发人员同时掌握服务器和客户端上的多种语言,若想开发单纯由Ajax实现的富客户端Web应用,仅编写JavaScript代码上就需耗费大量时间和精力。对于普通企业来说,将大大增加开发难度和开发成本。

 

  2 基于快速开发方案

 

  为降低通过Ajax开发Web应用的难度,很多整合了JavaScript库的框架出现在了人们的视野中,如PrototypejQueryYUIExtJS[11]。各类JS框架的出现极大地提高了RIA(富互联网应用程序)开发的效率,尤其体现在对不同浏览器的兼容性上。然而,使用精简了的JS框架并不意味着完全省去JS代码,仍需大量使用层叠样式表设计UI界面,所以RIA开发方案依然不算快速。本文提出快速开发方案,结合了和三层架构开发理念,依托于.NET 开发平台相关技术,高效地开发出纯AJAX、有富客户端体验的企业应用系统。

 

  2.1

 

  结合了.NET Framework和跨浏览器的ExtJS库,是一套支持Ajax、开源的Web控件。其强大之处在于,所有控件都类似于的服务器控件,可以直接拖拽使用,且精美的动态样式已经封装于其中,所以无需引入任何样式表即能呈现精美的用户界面,可以省下不少CSSJS代码,同时大量使用Ajax+Json的响应传值方式,因此非常适合作为企业应用开发工具[12]包含超过100个高性能的组件,如常用的Gridpanelmenubuttonnavigation等。使用,不仅可以使各种丰富多彩的UI更容易被开发和实现,还可以进行RIA(Rich Internet Applications)Ajax应用开发[13]

 

  2.2 三层架构

 

  三层架构一般指将整个应用程序划分为表现层(Presentation layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。目的是为了实现高内聚低耦合,为后续软件维护和扩展提供便利。其中,表现层主要负责呈现用户界面,接收用户操作指令并反馈对应的信息,业务逻辑层针对具体的业务需求进行各种处理,并在需要时调用数据层接口访问数据库;数据访问层负责为上层提供数据服务,具体表现为提供各类接口用于访问数据库,对原始数据进行操作[14]

 

  2.3 .NET相关技术

 

  .NET Framework是微软推出的开发平台。使用.NET平台中的各类技术可以很容易地搭建三层架构[15]。基于的动态网页除非修改了页面或重启了Web应用程序,否则经过首次编译后无需再次编译。所以,在有二次访问的情况下,响应速度有很大提升。采用服务器控件概念和“code-behind”方式使表现与逻辑分离,代码结构更清晰,降低了系统的开发与维护难度[16]是一组.NET Framework提供给.NET开发人员的类库,提供了一种访问各类数据源的通用方法以及完善的数据访问服务,包括SQL serverODBCOLE DB数据库、Oracle数据源以及XML[17]

 

  3 软件设计

 

  3.1 功能模块设计

 

  本软件需要实现的主要功能模块分为:主仓库模块、寄卖管理模块、销售模块、客户模块,如图1所示。

 

  图1 功能模块设计

 

  3.2 架构设计

 

  本系统架构采用较为常用的三层架构设计方案,划分为表现层、业务逻辑层、数据访问层。此外,引入模型层,将数据对象实体和方法分离,以便在多层中进行传递。

 

  表现层基于框架,位于最外层(最上层),最接近用户。用于显示数据和接收用户输入数据,为用户提供一种交互式操作的界面。负责页面的布局、美工,后台数据的呈现、排列,用户操作的接收、反馈。

 

  业务逻辑层主要解决业务规则的制定、业务流程的实现等与业务需求有关的算法设计。用户各种操作经表现层传递至此,经过相关函数的调用,逻辑算法的处理,再被传递到下一层(数据访问层)执行相对应的SQL语句。然后,再将反馈的数据交回表现层展示给用户。

 基于的Web应用程序快速开发研究

  数据访问层也被称为持久层,其功能主要是负责数据库访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。本文使用技术,结合SQL映射实现对数据表的SelectInsertUpdateDelete的操作,如图2所示。

 

  3.3 数据库设计

 

  本系统数据库采用SqlServer2008。针对所要实现的功能,建立如图3所示的表结构。

 

  4 系统实现

 

  4.1 表现层实现

 

  (1)框架搭建。

 

  由于表现层不是基于传统HTML的标签,也不是的服务器控件标签,而是框架控件,所以首先引入

 

  首先在项目中添加 3个文件的引用,然后修改 配置。添加内容如下:

 

  此外,在每个aspx文件页头必须添加:

 

  最后,搭建页面框架,在标签开头添加控件标签:

 

  ID="ResourceManager1"

 

  runat="server"

 

  DirectMethodNamespace="drcm"

 

  Theme="Gray"/>

 

  至此,框架已搭建完毕,在form中拖入的控件就能完成前台页面设计,而无需编写任何式样表和javascript代码。

 

  (2)AJAX实现无刷新响应。

 

  使用能轻松实现页面无刷新并快速响应,正体现出框架的优势,具体利用Ajax+Json的方式。

 

  例如前台有以下表控件:

 

  Title="当前库存(base)" Height="600">

 

  

 

  页面载入时将后台的一张表传递到前台显示,只需2行代码即可,即:

 

  urce = datetable;

 

  nd();

 

  相反,将前台表中的某一行传到后台,只需在触发的方法中写下2行,就可直接转换成对象的泛型列表:

 

  string json = arams["Values"];

 

  List row_catch = alize >(json)

 

  4.2 业务逻辑层实现

 

  业务逻辑层包括SaleServiceBaseServiceConsignmentServiceCustomerService,分别处理销售模块、库存模块、寄卖管理模块和客户模块的业务逻辑,另外有SysManager类处理系统的通用操作。这些类采用C#语言编写,在三层架构中起着承上启下的作用。

 

  表现层接收用户的操作,触发相应的方法,例如:

 

  protected void button_click(object senderDirectEventArgs e){…}

 

  在方法体内,仅进行简单的验证操作,然后将数据对象和需求传递给业务逻辑层的相应方法,例如:

 

  protected bool StockUp(Goods good){…}

 

  在BLL类中的方法体内,首先判断前台所要执行的动作,随后继续调用相关其它方法来完成业务逻辑。当需要进行数据库操作时,并不直接参与,而是使用数据层提供的方法,将相应的数据实体传给数据层,例如:

 

  protected bool InsertEntity(string operationArrayList parValues){…}

 

  业务逻辑层中有些方法只返回布尔类型,提示操作成功或失败,也有些是返回数据,由表现层负责展示给用户。

 

  用户操作便一层一层向下传递,每一层经过相应处理,将结果传递到下一层。

 

  4.3 数据访问层实现

 

  数据访问层主要由封装了的基本代码的核心操作类crudSQL映射文件和每张表对应的一个操作类组成。

 

  以操作Customer表的CustomerDB类为例,它包含了对表增删改查的基本方法,如:

 

  protected bool Add(Customer newCustomer){…}

 

  而文件包括常用的类和对象:ConnectionCommandDateReaderDataSetDataAdapter。使用这些类和对象,封装编写了5类数据库核心操作方法,供各表操作类调用,分别是:

 

  RetrieveDataTable(string statementNameArrayList parValues )(获取一张表)

 

  RetrieveEntities(string statementNameArrayList parValues )(获取一行)

 

  DeleteEntity(string statementNameArrayList parValues )(删除一行)

 

  InsertEntity(string statementNameArrayList parValues )(插入一行)

 

  UpdataEntity(string statementNameArrayList parValues )(修改一行)

 

  映射文件是专门用来写SQL语句的,里面罗列了所有需要用到的增查改删语句。

 

  INSERT INTO [sales_list] ([Typ][Unit][Num][Life][Price][Date][Channel][Customer])

 

  VALUES (@0@1@2@4@5@6@8@9)

 

  ]] >

 

  其中,@0@1...分别对应数组参数中序号。

 

  4.4 模型层实现

 

  模型层负责统一管理其它3层所用到的数据实体,包括4个类:SaleGoodsConsignmentCustomer。数据对象的所有字段都被封装为类的属性,分别由getset 方法来获取和修改属性的值,其它类要使用对象实体必须先实例化。

 

  5 结语

 

  本文设计的商品管理系统在前端页面无需添加任何CSSJS代码,开发周期短,投入运行后使用正常,系统稳定。并且前台页面全部采用Ajax技术,无需刷新页面,软件交互性和用户体验度大大提升。无论是功能,还是界面都能与传统C/S架构的应用软件相媲美。因此,采用解决方案可以有效降低应用程序开发和维护成本,实现了软件需求、用户体验和开发开销之间的平衡。由于整个系统采用三层架构,因此系统修改和升级方便快捷。

 

  作者:季嘉明 沈毅俊 方建安 来源:软件导刊 20158

本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229161.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学