亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DWZ、NHibernate和ASP.NETMVC3架構的Web開發(fā)應用

        2014-12-27 05:23:54呂浩志
        科技視界 2014年5期
        關鍵詞:視圖頁面架構

        呂浩志

        (西南林業(yè)大學 林學院,云南 昆明655024)

        0 引言

        軟件開發(fā)過程中,為了減少基礎代碼,提高開發(fā)效率,就需要一個好的開發(fā)框架。

        Mvc(model-view-controller)是目前軟件開發(fā)中廣泛采用的一種設計模式。它把一個Web應用分離為模型、視圖和控制器三個部分,使得系統(tǒng)結構清晰,利于維護和擴展。

        DWZ實現(xiàn)了CSS和JS代碼徹底分離,修改樣式方便,與ASP.NET MVC整合實現(xiàn)Web應用程序的快速開發(fā)。

        NHibernate不僅僅管理.NET類到數(shù)據(jù)庫表的映射(包括.NET數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,大幅度減少我們開發(fā)時人工使用SQL和ADO.NET處理數(shù)據(jù)的時間。

        1 軟件開發(fā)總體架構

        軟件開發(fā)總體架構對應的Web請求處理流程如圖1所示,大致步驟如下:

        圖1 Web請求流程

        (1)用戶提交Web請求

        (2)路由模塊將請求信息發(fā)送給相應的控制器,由控制器決定如何處理請求;

        (3)控制器根據(jù)請求處理邏輯,調用持久化類中相應的操作;

        (4)根據(jù)實際需求,完成數(shù)據(jù)的查詢或存儲、更新;

        (5)返回查詢的結果表或視圖;

        (6)NHibernate將表或視圖映射成相應的對象并賦值給Modle;

        (7)Model將業(yè)務請求的結果返回給控制器;

        (8)控制器組織處理信息,調用視圖解析從模型返回的數(shù)據(jù);

        (9)DWZ完成頁面渲染,返還數(shù)據(jù)給瀏覽器。

        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,并添加數(shù)據(jù)庫映射配置信息文件h.cfg.xml,如下所示:

        2.2 DWZ與MVC整合

        2.2.1 navTab中的局部分頁

        視圖中的分頁控制代碼如下:

        其中第一個fflt;optionffgt;的value="@ViewData["NumPerPage"]"表示每頁顯示的條數(shù),@ViewData["Total"]表示總共多少條,@ViewData["currentPage"]表示當前的頁碼,這些都是通過ViewBag將控制器中的參數(shù)傳遞給視圖。以下是控制中的代碼:

        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)是獲取總條數(shù),findByPage(calPage,whereString)返回分頁數(shù)據(jù),calPage分頁的參數(shù)。

        圖2 分頁效果圖

        2.2.2 局部Div刷新

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

        validateCallback(this,refreshBoxAjaxDone);"ffgt;fflt;/formffgt;表單提交后根據(jù)Json傳遞的參數(shù),執(zhí)行refreshBoxAjaxDone()進行局部刷新。自定義的JavaScript局部刷新函數(shù)如下:

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

        2.3 NHibernate持久化的實現(xiàn)

        2.3.1 數(shù)據(jù)庫映射配置信息文件

        在Global.asax中初始化數(shù)據(jù)庫映射配置信息文件NHibernateUtils.SessionFactory.init

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

        //初始化配置文件

        2.3.2 數(shù)據(jù)庫的添加操作

        }

        2.3.3 數(shù)據(jù)庫的更新操作

        2.3.4 數(shù)據(jù)庫的刪除操作

        3 結語

        應用DWZ、NHibernate和ASP.NET MVC 3架構來進行Web應用的開發(fā),不僅降低了程序開發(fā)難度,而且利于程序的維護和擴展。本文通過總結實際項目開發(fā)中的部分經驗,希望通過上文介紹能讓讀者對DWZ、NHibernate和ASP.NET MVC 3架構的應用有所了解。

        [1]DWZ富客戶端框架使用手冊[S].

        [2]趙廣利.基于NHibernate的數(shù)據(jù)持久化方案[J].計算機工程,2009,35(20).

        [3]姚渝濤.開源框架DWZ與ASP.NET MVC3的整合應用[J].電腦編程技巧與維護,2012(17)

        猜你喜歡
        視圖頁面架構
        大狗熊在睡覺
        基于FPGA的RNN硬件加速架構
        刷新生活的頁面
        功能架構在電子電氣架構開發(fā)中的應用和實踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        5.3 視圖與投影
        視圖
        LSN DCI EVPN VxLAN組網架構研究及實現(xiàn)
        電信科學(2017年6期)2017-07-01 15:45:17
        Y—20重型運輸機多視圖
        SA2型76毫米車載高炮多視圖
        一種基于FPGA+ARM架構的μPMU實現(xiàn)
        女优av一区二区在线观看| 蜜臀av无码精品人妻色欲| 欧美黑人巨大xxxxx| 亚洲 暴爽 AV人人爽日日碰| 国产精品一区二区三区蜜臀| 亚洲1区第2区第3区在线播放| 久久久精品午夜免费不卡| 国产日产欧洲系列| 猫咪免费人成网站在线观看| 亚洲欧洲日产国码无码| 日韩一级精品亚洲一区二区精品| 国产免费观看久久黄av麻豆| 国产精品无码av无码| 国产av无码专区亚洲av极速版| 亚洲AV无码成人品爱| 在线不卡中文字幕福利| 91久久精品一区二区| 亚洲熟女精品中文字幕| 最近在线更新8中文字幕免费| 男女一级毛片免费视频看| 国产激情一区二区三区在线蜜臀| 国产一区二区三区护士| 免费午夜爽爽爽www视频十八禁| 岳毛多又紧做起爽| 亚洲av成人一区二区三区av| 蜜臀av一区二区三区人妻在线| 国产亚洲专区一区二区| 无码av天天av天天爽| 亚洲伊人色欲综合网| 久久久国产精品免费无卡顿| 免费人妻精品区一区二区三| 国产高清在线视频一区二区三区| 伊人久久大香线蕉综合影院首页| 小12萝8禁在线喷水观看| 亚洲精品午夜精品国产| 久久精品熟女亚洲av麻豆永永| 亚洲av无码一区二区三区网址 | 亚洲av高清一区二区三区 | 狠狠躁夜夜躁人人爽天天古典| 日本55丰满熟妇厨房伦| 男女发生关系视频网站|