• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ASP.NET MVC模式的筆記管理系統(tǒng)

      2019-07-10 02:04詹喆胡宗海姚程寬曹立勇
      科技視界 2019年13期

      詹喆 胡宗海 姚程寬 曹立勇

      【摘 要】隨著互聯(lián)網(wǎng)的高速發(fā)展,人們對(duì)Web應(yīng)用開發(fā)的要求越來越高。MVC設(shè)計(jì)模式在滿足界面要求的同時(shí),使軟件的計(jì)算模型獨(dú)立于界面,為大型可擴(kuò)展的Web應(yīng)用開發(fā)提供了結(jié)構(gòu)化的模型。本文以筆記管理為例,研究了基于ASP.NET MVC模式的系統(tǒng)開發(fā),展示出該技術(shù)架構(gòu)對(duì)頁(yè)面開發(fā)模式的影響,更強(qiáng)調(diào)使用傳統(tǒng)HTML,輕量化了Web開發(fā),使系統(tǒng)運(yùn)行效率得到了提升。

      【關(guān)鍵詞】ASP.NET;MVC;軟件開發(fā)

      中圖分類號(hào): TP311.52文獻(xiàn)標(biāo)識(shí)碼: A文章編號(hào): 2095-2457(2019)13-0065-003

      DOI:10.19694/j.cnki.issn2095-2457.2019.13.030

      Notebook Management System Based on ASP.NET MVC Mode

      ZHAN Zhe HU Zong-hai YAO Cheng-kuan CAO Li-yong

      (Dept. of Common Basic, Anqing Medical College, Anhui Anqing 246052, China)

      【Abstract】With the rapid development of the Internet, people have higher and higher requirements for Web application development. MVC design pattern not only meets the interface requirements, but also makes the software computing model independent of the interface, which provides a structured model for the development of large scalable Web applications. This paper takes note management as an example, studies the system development based on ASP.NET MVC mode, demonstrates the impact of the technical framework on the page development mode, emphasizes the use of traditional HTML, lightweight Web development, and improves the efficiency of the system.

      【Key words】ASP.NET; MVC; Software Development

      0 引言

      在互聯(lián)網(wǎng)時(shí)代,越來越多的應(yīng)用趨向Web化(基于B/S模式的Web開發(fā)),桌面軟件正在慢慢屈居次席。傳統(tǒng)Web開發(fā)使用原生HTML標(biāo)簽與ECMAScript(JavaScript)與服務(wù)器端進(jìn)行通信,服務(wù)器端調(diào)用CGI(Common Gateway Interface 通用網(wǎng)關(guān)接口)為請(qǐng)求進(jìn)行服務(wù),隨著系統(tǒng)規(guī)模與復(fù)雜度的不斷增長(zhǎng),這種傳統(tǒng)開發(fā)方式暴露出性能與開發(fā)效率上的嚴(yán)重不足,無法滿足現(xiàn)代Web系統(tǒng)開發(fā)的需要。Microsoft公司在2000年,效仿用于桌面軟件開發(fā)的WinForm技術(shù),推出了名為ASP.NET WebForm的開發(fā)技術(shù),首次在Web開發(fā)中應(yīng)用了“事件驅(qū)動(dòng)”開發(fā)模型(Event Driven Development)。WebForm是一種類似桌面軟件的開發(fā)技術(shù),屏蔽掉了傳統(tǒng)開發(fā)模式中HTTP協(xié)議的“無狀態(tài)”導(dǎo)致的難以理解的問題,使開發(fā)效率得到了極大的提高。2007年,Microsoft公司推出ASP.NET MVC開發(fā)技術(shù),將著名的MVC軟件開發(fā)模式應(yīng)用到了Web開發(fā)中,Model-Controller-View的模式將Web的整體架構(gòu)分為了三個(gè)各司其職的組件。

      1 ASP.NET MVC 簡(jiǎn)介

      ASP.NET是微軟專門針對(duì)MVC架構(gòu)推出的Web開發(fā)框架,作為新一代的Web開發(fā)框架,它旨在替代ASP.NET Web Form。它良好地結(jié)合了MVC架構(gòu)的高效和清晰、敏捷開發(fā)中最新潮的技術(shù)和思想與ASP.NET平臺(tái)中的優(yōu)良部分。

      在ASP.NET MVC中,模型、視圖與控制器,有了更加具體的展示。

      模型代表是一系列業(yè)務(wù)相關(guān)實(shí)體的類。就像操作數(shù)據(jù)的代碼一樣,業(yè)務(wù)實(shí)體一般將存儲(chǔ)在數(shù)據(jù)庫(kù)中的這些數(shù)據(jù)封裝起來,并執(zhí)行領(lǐng)域相關(guān)的業(yè)務(wù)邏輯,它就像數(shù)據(jù)訪問層一樣,使用Entity Framework等ORM工具,輔以業(yè)務(wù)邏輯相關(guān)的代碼對(duì)數(shù)據(jù)進(jìn)行操作。視圖在ASP.NET MVC中是一種動(dòng)態(tài)生成HTML的模板,ASP.NET MVC保證了有一些視圖是無法展示在界面上的,例如母版頁(yè)等??刂破髟贏SP.NET MVC中命名以Controller結(jié)尾,負(fù)責(zé)處理模型數(shù)據(jù)以及展示視圖,圖1展示了基于ASP.NET MVC的筆記項(xiàng)目的基本結(jié)構(gòu)。

      與ASP.NET Web Form不同,ASP.NET MVC在項(xiàng)目的開發(fā)模型上是一套嶄新的模型。

      (1)ASP.NET MVC上不存在Web Form中一個(gè)頁(yè)面對(duì)應(yīng)一個(gè)后臺(tái)CS代碼文件的邏輯,取而代之的是讓模板視圖(CSHTML)專門進(jìn)行界面展示,使一個(gè)視圖可以給多個(gè)控制器使用。

      (2)沒有了Web Form中的界面設(shè)計(jì)器,在設(shè)計(jì)界面時(shí),無法實(shí)時(shí)看到界面布局效果,如果要瀏覽界面效果,只能在瀏覽器中查看。

      (3)取消了服務(wù)器控件,無法通過屬性設(shè)計(jì)器針對(duì)事件進(jìn)行編程,取而代之的是使用原生HTML標(biāo)簽。

      (4)Web Form中文件所處的物理位置即頁(yè)面的URL鏈接,而在ASP.NET MVC中,不存在URL對(duì)應(yīng)某文件的概念,URL統(tǒng)一由獨(dú)立的路由組件進(jìn)行管理,通過路由尋找對(duì)應(yīng)的視圖與控制器,圖2展示了ASP.NET MVC中的默認(rèn)路由組件。

      (5)由于拋棄服務(wù)器控件,回歸到傳統(tǒng)的無狀態(tài)HTTP開發(fā)模式,不需要保存頁(yè)面的狀態(tài),節(jié)省了空間,使頁(yè)面?zhèn)鬏斝阅艿玫搅颂岣摺?/p>

      (6)對(duì)單元測(cè)試支持良好。由于框架中的核心類都是面相接口的,于是我們可以很容易地通過創(chuàng)建模擬接口行為的測(cè)試類,將每一個(gè)對(duì)象或函數(shù)單獨(dú)測(cè)試,而不需要運(yùn)行整個(gè)站點(diǎn)進(jìn)行測(cè)試。

      2 ASP.NET MVC與MVC模式開發(fā)

      ASP.NET MVC基于MVC架構(gòu)進(jìn)行構(gòu)建,對(duì)MVC的支持是內(nèi)建的,可以說沒有MVC,就沒有ASP.NET MVC框架。下面以筆記管理為例,展示ASP.NET MVC中的MVC模式開發(fā)。

      2.1 Model構(gòu)建

      在ASP.NET MVC的開發(fā)中,大多使用Code First這一方式進(jìn)行開發(fā),它使用“約定”式編程,先寫出模型類,然后利用EF框架根據(jù)模型類在數(shù)據(jù)庫(kù)中構(gòu)建出相應(yīng)的表。這一節(jié)我們依然以IdentityDB為例,展示Model組件的構(gòu)建,以及如何根據(jù)Model生成數(shù)據(jù)庫(kù)中的表。

      如下圖3所示,我們編寫出了相應(yīng)的模型類,并利用.NET提供的Attribute特性給相應(yīng)的字段添加了相關(guān)約束條件。

      接著在我們的數(shù)據(jù)庫(kù)生成Context中添加該模型以及需要的其他模型類的DbSet,使ADO.NET Entity Framework能夠在程序運(yùn)行時(shí)自動(dòng)地向數(shù)據(jù)庫(kù)中添加相應(yīng)的表。

      接著我們運(yùn)行程序,這時(shí)數(shù)據(jù)庫(kù)中會(huì)相應(yīng)地生成表,圖5展示了Note表的表結(jié)構(gòu),其中表屬性與Note模型類中所定義的字段約束一致。

      此時(shí)使用如下代碼即可以對(duì)數(shù)據(jù)庫(kù)中的Note表進(jìn)行操作,例如增加操作,刪除操作,修改操作,與搜索操作。此后在項(xiàng)目中即可以方便地使用ADO.NET Entity Framework來操作Model。

      AppIdentityDbContext _db=new AppIdentityDbContext();

      Note note=new Note();

      _db.Notes.Find(id);//搜索操作

      _db.Notes.Remove(note);//刪除操作

      _db.Notes.Add(note);//增加操作

      _db.Entry(note).State=EntityState.Modified;//更新操作

      _db.SaveChanges();

      2.2 View構(gòu)建

      視圖負(fù)責(zé)向用戶展示界面,并提供輸入元素使用戶可以輸入相關(guān)信息,以筆記管理系統(tǒng)中的筆記添加頁(yè)面為例,如圖6所示。

      Note視圖代碼片段如圖7所示。

      如上圖代碼所示,model代表當(dāng)前視圖所引用的模型,該模型由控制器傳輸?shù)揭晥D中,視圖接著可以從Note模型中的相應(yīng)字段數(shù)據(jù),展示在界面上,同時(shí),還可以在界面上輸入元素中修改數(shù)據(jù),通過提交行為提交到相應(yīng)的控制器,由控制器將所修改數(shù)據(jù)寫回到模型中,并將模型保存回?cái)?shù)據(jù)庫(kù)中。

      2.3 Controller構(gòu)建

      控制器負(fù)責(zé)定義程序相關(guān)的行為,可以將模型數(shù)據(jù)發(fā)送到相應(yīng)的視圖中,也可以從視圖中收集用戶數(shù)據(jù),更新相關(guān)模型,并寫回?cái)?shù)據(jù)庫(kù)。

      在筆記編輯頁(yè)面中,我們可以在輸入元素中輸入文字,然后通過“保存”按鈕提交頁(yè)面數(shù)據(jù)到相應(yīng)控制器,如圖8代碼片段所示,點(diǎn)擊后頁(yè)面將提交到Html.BeginForm()指定的Controller,在這里,所提交到的Controller默認(rèn)情況下與視圖所在的文件夾同名,即NoteController,對(duì)應(yīng)的Controller中的方法與視圖同名,即Create。

      提交到相應(yīng)的控制器后,控制器通過方法所傳參數(shù)獲取到用戶所作的修改,然后將修改更新到模型中,如圖9所示,隨后控制器將模型更新回?cái)?shù)據(jù)庫(kù)。

      3 結(jié)束語(yǔ)

      本文對(duì)ASP.NET MVC開發(fā)技術(shù)的主要技術(shù)架構(gòu)進(jìn)行了剖析,分析了技術(shù)中所采用的架構(gòu)與設(shè)計(jì)模式等,并相應(yīng)地在筆記管理頁(yè)面中應(yīng)用了該技術(shù),以展示出該技術(shù)架構(gòu)對(duì)頁(yè)面開發(fā)模式的影響。ASP.NET MVC由于需要開發(fā)人員自行使用代碼對(duì)頁(yè)面進(jìn)行布局,使得開發(fā)人員需要對(duì)CSS、HTML等技術(shù)有著比較好的掌握。從運(yùn)行效率上看,ASP.NET MVC由于更強(qiáng)調(diào)使用傳統(tǒng)HTML,輕量化了Web開發(fā),頁(yè)面源代碼沒有過多多余或者重量級(jí)的HTML標(biāo)簽數(shù)據(jù),使得系統(tǒng)運(yùn)行效率得到了提升。

      【參考文獻(xiàn)】

      [1]周文紅.基于ASP.NET MVC框架的Web應(yīng)用開發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2013(10):197-199.

      [2]林樂逸.基于ASP.NET MVC和實(shí)體框架的軟件項(xiàng)目管理平臺(tái)[D].上海交通大學(xué),2012.

      [3]盧俊瑋,常琳,陳昀錕.MVC模式與ASP.NET MVC框架的技術(shù)研究[J].電腦知識(shí)與技術(shù),2010,6(19):5160-5162.

      [4]葉紅衛(wèi).基于ASP.NET MVC框架的Web設(shè)計(jì)[J].河北北方學(xué)院學(xué)報(bào)(自然科學(xué)版),2009,25(06):61-65.

      [5]李園,陳世平.MVC設(shè)計(jì)模式在ASP.NET平臺(tái)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(13):3180-3184.

      [6]林慶,朱翠苗,鄭廣成,賈洪艷,吳旻.基于ASP.NET的MVC設(shè)計(jì)模式的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008(01):167-169.

      [7]徐朝輝,樊銀亭.MVC設(shè)計(jì)模式在.NET三層結(jié)構(gòu)開發(fā)中的研究和實(shí)現(xiàn)[J].北京電子科技學(xué)院學(xué)報(bào),2007(02):70-73.

      [8]龔薇華,王晨光,俞歡軍.基于MVC模式和.NET的公司內(nèi)部管理信息系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007(09):2142-2144.

      [9]陳曉丹,鄭毅.ASP. NET開發(fā)環(huán)境下的WebForm與MVC 設(shè)計(jì)模式[J].武漢工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009,39-40.

      [10]Adam Freeman.Pro ASP.NET MVC 5[M].Apress,2013.

      [11]林樂逸.基于ASP_NETMVC和實(shí)體框架的軟件項(xiàng)目管理平臺(tái)[D].上海:上海交通大學(xué),2013.

      [12]楊曉吟.ASP.NET MVC架構(gòu)與Web開發(fā)分析[J].自動(dòng)化與儀器儀表,2018(07):32-35+38.

      瑞金市| 兰考县| 莆田市| 双江| 苏州市| 边坝县| 三江| 竹山县| 张家口市| 衢州市| 和顺县| 仁化县| 麻阳| 浪卡子县| 周口市| 吴江市| 交口县| 五常市| 渭源县| 施秉县| 桂林市| 沙洋县| 左贡县| 根河市| 阳城县| 大庆市| 新竹县| 凯里市| 绍兴县| 五原县| 泰和县| 广南县| 安溪县| 潞城市| 宣威市| 巴楚县| 平谷区| 和田县| 和田市| 门源| 香河县|