APP下载

基于ExtJS+ASP.NETMVC的Web系统应用设计

2015-04-02潘齐欣石开和刘春林

无线互联科技 2015年2期

潘齐欣 石开和 刘春林

摘 要:针对现在常用的Web应用系统的构建,论文深入研究了当前的主流技术,即ExtJS和ASP.NET MVC等技术。设计了基于ExtJS、ASP.NET和Hibernate的MVC框架,并对该框架的基本结构和运行原理进行介绍。

关键词:Web应用系统;MVC框架;ExtJS

1 引言

当前,在基于Web环境的各种应用程序的设计中,人们普遍采用MVC模式,也就是模型-视图-控制器模式。针对现在人们普遍采用的MVC框架,可以采用多种技术,比如Strucs、Webwork以及Web.net等。其中,对于采用ASP.NET技术框架的MVC模式,能够从更广泛的层面实现用户账号的输入,以及各种业务逻辑的实现与用户显示界面的分离,从而能够有效降低对各种大型项目进行管理的复杂性。不仅如此,还能够有效增加软件的测试性。通过在软件开发人员之间的高校合作,可以实现整个软件项目的高效开发。

在ExtJS中,包含了功能强大的JS类库,可以为用户和开发人员提供更加丰富的Web设计和应用体验。所以,文中在对这些基本技术介绍的基础上,实现了对MVC框架的搭建,可以将这种框架称为ASP.NE+ExtJS+Hibenate框架。接着,在整个框架的客户端中还设计了ExtJS技术,而提高用户界面的体验性能。

2 ExtJS介绍

起初,ExtJS技术从YUI技术发展而来,在对JavaSwing等多种有效机制参考的基础上,完成可视化组件的组织。现在常用的Ext中的UI组件主要借鉴Java语言中的Swing插件技术,可以为软件应用开发人员提供跨浏览器的类库。现在,在已有的ExtJS技术中,广泛采用基于Ajax来实现富客户端开发,可以实现前端用户界面的创建,且前端的Ajax框架与后台技术无关。

其实,在Ext中包含了多种控件。这些控件的种类多样,不仅有文本框、页面控件、表格控件,还包括了表单控件、标签页控件以及各种窗口控件等。以这些控件以基本元素,就能够实现方便快捷的编辑。

3 ASP.NET介绍

作为由微软公司所提供过得一种服务器端应用编程技术,ASP.NET的中心主要为Web页面和服务器控件。通过客户端,用户可以将页面提交到服务器,而服务器端的脚本代码能够对用户所提供的数据和控件事件进行处理。作为一种近年来广泛采用的一种Web环境下的应用框架与模式,MVC可以将各种应用划分成模型、视图与控制器等几个不同的组件。在这种模式中,控制器为其核心,视图负责显示与用户相关的界面,而模型的任务则主要为存储各种类型的数据。所以,可以通过控制器实现模型与视图之间的数据传递与用户输入的转换。可以看出,这种结构下的程序更加清晰,便于在使用中开展各种维护。

相比较于传统Web应用中所采用的Web表单,ASP.NET中所采用的机遇MVC模式的设计架构,可以有效实现用户多种操作方式与业务流程的分离,从而将项目管理过程中所存在的复杂问题进行简化,也可以增加测试过程中的可测试性。以MVC架构为依托,软件开发人员可以同时针对不用的模块进行开发,也即是能够为软件项目的并行设计与实现提供条件。

在已有的ASP.NET程序框架中,主要采用如下的方式来降低用户界面与程序之间的业务逻辑:的耦合性的方式主要为:在ASPX页面文件中包含了用户界面所需要的组件,而CS代码中包含了实现功能业务的逻辑代码;通过用户界面中所包含的可视化组件的抽象,能够获得服务器控件对象,并能够通过后台程序来实现对象行为的控制。然而,在整个软件系统的界面与业务逻辑中,会存在不同程度的耦合;而业务实现的代码、界面控件的代码以及对数据库进行访问所需要的代码等不断混杂,难以进行维护与测试。所以,采用ASP.NET中所提供的MVC框架,则能够较好的解决此类问题。

基于ASP.NET框架,可以为Web应用的开发提供新颖的解决方案,确保了ASP.NET平台能够具备更加清晰的结构。由于ASP.NET框架中采用了全新的语法结构,为软件界面的设计与实现提供了便利,提高了软件代码的可读性,从根本上降低了组件之间的耦合性,提供整体应用程序的开发效率。

在ASP.NET框架中,控制器为C#类,可以完成用户输入的接收,并将结果显示到视图中。在控制器的所有方法中,可以为程序返回视图,在软件的视图层中包含了html文件。

4 框架结构与运行原理

4.1 框架结构

文中所采用的MVC框架结构主要如图1所示。可以发现,其中包括了表现层、控制层、业务逻辑层、持久成等多个层次。

在图1中所示架构中,表现层主要通过ExtJS控件和ASP页面完成用户界面的开发,而在该层中采用ExtJS类库,可以在提高校验输入、数据获取与转化等多种功能的基础上,从系统的控制层获取多种数据信息,进而为用户的使用提供优良的体验。

在框架结构的控制层,主要通过ASP.NET MVC技术来提供控制功能,这样,就能够从表示层中获取数据,然后向请求用户发送,在此过程中,可以针对从表现层所获取的数据进行有效性检验。通过对各种处理方式的使用,可以获得想要的结果;接着,就可以将获取的数据以及视图向系统反馈。

作为整个应用系统的核心层,业务逻辑层可以实现对各种业务数据的处理,在此过程中要以业务规则为基准,对从业务处理层到持久层的整个环节进行管理,最终通过对持久层中各种接口的调用,实现对软件系统中存在的数据的存储与访问。

以软件系统的持久层为基础,可以为业务逻辑层提供全面的数据服务,在持久层中,主要包括了数据访问类和数据实体类。其中,对于数据访问类,能够以Hibernate为基础,实现对数据库的基本操作过程,这主要是由于在DAO中封装了对数据库进行管理的基本操作。

4.2 运行原理

在使用过程中,用户可以通过客户端来对Ext控件进行调用,完成服务器申请过程。而通过服务器可以实现对Web.xml文件的解析,然后再以XML文件中的配置信息为依据,将所有用户的请求通过.net容器实现处理环节;通过用户提供的地址,.net容器就可以将用户的各种请求向控制层中的控制类提交。

控制类在获取用户请求与参数信息的基础上,通过调用业务处理类中的服务来实现对用户的请求。根据各种业务的不同规则,通过业务处理类就可以以数据访问类和数据存储层为依托,实现全面的交互。进而完成对数据库的操作过程;而系统中的业务服务层则可以将得到的结果发送给控制层,从而确保控制层能够实现结果数据到Json对象的转换,最后,通过ExtJS控件实现数据显示过程。

5 框架的实现

5.1 表现层

在系统的表现层中,可以通过JSP页面对ExtJS控件的调用,实现其构建过程,然后,在完成控件的开发与实例化处理。在用户的管理模块中,表现层,也就是视图层的构成主要包括:userManage.jsp、userManagePanel.js、userSearchForm.js、userSearchResult.js、userManagerWin.js和userInfoForm.js等。其中,userSearchForm.js中给出了多种与查询相关的控件,主要从Ext、form和FormPanel中扩展;userSearchResult.js为对查询结构进行显示的控件,主要从Ext、grid和GridPanel中扩展;userManagerWin.js为实现用户添加的窗体控件,主要从Ext和Window中扩展;userInfoForm.js为用户的信息控件,主要从Ext、form和FormPanel中扩展。

前面也介绍过,视图主要用户对用户界面进行显示。因为对应于控制器中的每个方法,都应该向其返回一个视图。

5.2 控制层

在系统的控制层中,对其控制器的配置,需要借助Web.xml来实现,进而实现对用户的分发管理进程,而在Web.xml中则对主控制器对象与相应的URL进行了定义。通常,人们都通过控制器来获取视图类对象,不仅如此,作为一种重要的子类,其在视图类中的作用主要为获取不同类型的视图,比如,在获取Web页面的基础上,就可以得到相应的JavaScript脚本,而通过FileResult则可以得到一个二进制文件。

系统中主控制对象,主要通过Spring中的org.springframework、web.servlet和DispatcherServlet等获得最终结果。而在软件系统的各种服务启动过程中,可以实现配置文件的加载,进而实现系统环境的配置。可以在类路径下对各种组件、业务层组件、控制层组件以及数据访问层组件等所注解的类进行扫描与关注,之后就可以将相对应的类加入到Spring容器,从实现对辅助类相关参数的包装构建。并将用户请求分发到特定的控制器中。在Java编码中,一般通过@RequestMapping来实现URL的映射与请求,通过@PathVariable、@RequestParam实现url中参数的获取,然后通过序列化Java对象为标准字符串的方式向客户端发送。

5.3 业务逻辑与数据访问层

对于系统中的逻辑层,主要指根据各种不同的业务规则实现业务处理的层。在具体的实现中,可以通过@service进行标准,此外,可以将UserInfoService作为业务逻辑层的组件,并通过@Autowired实现对数据访问类的注解。而在整个系统中的数据存储层实现交互的位置则可以利用UserIfoDao对数据库进行访问,并利用@Transactionsl实现事务的定义与注解。

对于数据访问类DAO的实现过程中,则包含了对数据源的配置,对各种事务的管理,对数据访问工厂类的构建中,实现对CommonDao基类同步构建。而在此过程中,则可以通过@Autowired方式来实现自动注入数据对所构建的工程类的注解过程,此外,还可以从org.springframwork或者HibernanteDaoSupport完成扩展过程,并实现一些方法的定义,进而完成一些常用数据库操作,比如增加、删除、修改和查询等。

6 结语

论文针对现在常用的Web应用系统的构建,深入研究了当前的主流技术,即ExtJS和ASP.NET MVC等技术。大量的应用实践都表明,文中所阐述的系统构建具有简单易用的特点,可以为中小型的应用系统开发提供帮助,也需要在不断的应用中逐步完善。

[参考文献]

[1]李成严,冯慧灵.基于开源技术的U'eb应用架构研究[J].计算机技术与发展,2009,19(8):27-33.

[2]张宇,工映辉,张翔南.基于Spring的MVC框架设计与实现[J].软件技术与数据库.2010,36(4):59-62.

[3]宋转玲,刘海行,代亮,等.基于ExtJS开发的海洋科学数据共享服务平台[J].海洋科学,2010,34(2):4-8.

[4]徐雯,高建华.基于Spring MVC及MyBatis的Web应用框架研究[J].微型电脑应用,2012,28(7):1-4.

[5]杨旺明.基于Asp.net的权限系统的设计与实现[J].计算机与数字工程,2014,42(3):482-485.