APP下载

基于DWZ、NHibernate和ASP.NETMVC3架构的Web开发应用

2014-12-27吕浩志

科技视界 2014年5期
关键词:视图页面架构

吕浩志

(西南林业大学 林学院,云南 昆明655024)

0 引言

软件开发过程中,为了减少基础代码,提高开发效率,就需要一个好的开发框架。

Mvc(model-view-controller)是目前软件开发中广泛采用的一种设计模式。它把一个Web应用分离为模型、视图和控制器三个部分,使得系统结构清晰,利于维护和扩展。

DWZ实现了CSS和JS代码彻底分离,修改样式方便,与ASP.NET MVC整合实现Web应用程序的快速开发。

NHibernate不仅仅管理.NET类到数据库表的映射(包括.NET数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间。

1 软件开发总体架构

软件开发总体架构对应的Web请求处理流程如图1所示,大致步骤如下:

图1 Web请求流程

(1)用户提交Web请求

(2)路由模块将请求信息发送给相应的控制器,由控制器决定如何处理请求;

(3)控制器根据请求处理逻辑,调用持久化类中相应的操作;

(4)根据实际需求,完成数据的查询或存储、更新;

(5)返回查询的结果表或视图;

(6)NHibernate将表或视图映射成相应的对象并赋值给Modle;

(7)Model将业务请求的结果返回给控制器;

(8)控制器组织处理信息,调用视图解析从模型返回的数据;

(9)DWZ完成页面渲染,返还数据给浏览器。

2 实际应用

下面以一个项目的实例片断详细介绍DWZ、NHibernate与ASP.NET MVC 3框架的整合。

2.1 搭建项目框架

打开Microsoft Visual Studio 2010,新建一个MVC项目。在新建的MVC项目中添加DWZ初始化文件(dwz.frag.xml)、Content文件夹中添加DWZ样式和Scripts文件夹中添加DWZ脚本库。

在新建的MVC项目中添加以下引用:Castle.Core.dll,Iesi.Collections.dll,log4net.dll,LinFu.DynamicProxy.dll,NHibernate.ByteCode.Castle.dll,NHibernate.ByteCode.LinFu.dll,NHibernate.dll,并添加数据库映射配置信息文件h.cfg.xml,如下所示:

2.2 DWZ与MVC整合

2.2.1 navTab中的局部分页

视图中的分页控制代码如下:

其中第一个fflt;optionffgt;的value="@ViewData["NumPerPage"]"表示每页显示的条数,@ViewData["Total"]表示总共多少条,@ViewData["currentPage"]表示当前的页码,这些都是通过ViewBag将控制器中的参数传递给视图。以下是控制中的代码:

var pageIndex=pageNum.HasValue?pageNum.Value-1:0;

var pageSize=numPerPage.HasValueffamp;ffamp;numPerPage.Valueffgt;0?numPerPage.Value:5;

int allCount=vrecordlistDao.count(whereString);

int pageNo=pageIndex+1;

CalPage calPage=new CalPage(allCount,pageSize,pageNo);

IListfflt;Vrecordlistffgt; list= vrecordlistDao.findByPage(calPage,whereString);

ViewBag.Total=allCount;

ViewBag.NumPerPage=pageSize;

ViewBag.currentPage=pageNo;

其中count(whereString)是获取总条数,findByPage(calPage,whereString)返回分页数据,calPage分页的参数。

图2 分页效果图

2.2.2 局部Div刷新

以下是主页面中的表单:fflt;form method="post"action=""onsubmit="return

validateCallback(this,refreshBoxAjaxDone);"ffgt;fflt;/formffgt;表单提交后根据Json传递的参数,执行refreshBoxAjaxDone()进行局部刷新。自定义的JavaScript局部刷新函数如下:

后台返回的Json如下:Json({statusCode="200",message="保存成功",navTabId="",rel="rel",forwardUrl=url,callbackType=""},JsonRequestBehavior.AllowGet);其中$('#'+json.rel)是用Jquery找到局部Div在主页面中的位置,然后重新加载forwardUrl达到刷新的目的。

2.3 NHibernate持久化的实现

2.3.1 数据库映射配置信息文件

在Global.asax中初始化数据库映射配置信息文件NHibernateUtils.SessionFactory.init

(Server.MapPath("~/h.cfg.xml"));以下是SessionFactory.cs类中的对象和方法:

//初始化配置文件

2.3.2 数据库的添加操作

}

2.3.3 数据库的更新操作

2.3.4 数据库的删除操作

3 结语

应用DWZ、NHibernate和ASP.NET MVC 3架构来进行Web应用的开发,不仅降低了程序开发难度,而且利于程序的维护和扩展。本文通过总结实际项目开发中的部分经验,希望通过上文介绍能让读者对DWZ、NHibernate和ASP.NET MVC 3架构的应用有所了解。

[1]DWZ富客户端框架使用手册[S].

[2]赵广利.基于NHibernate的数据持久化方案[J].计算机工程,2009,35(20).

[3]姚渝涛.开源框架DWZ与ASP.NET MVC3的整合应用[J].电脑编程技巧与维护,2012(17)

猜你喜欢

视图页面架构
基于FPGA的RNN硬件加速架构
刷新生活的页面
功能架构在电子电气架构开发中的应用和实践
5.3 视图与投影
视图
LSN DCI EVPN VxLAN组网架构研究及实现
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
一种基于FPGA+ARM架构的μPMU实现
同一Word文档 纵横页面并存