999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對Asp.net MVC 架構網站設計相關技術的探討

2016-05-14 05:11:39孫央麗
職業·下旬 2016年7期

孫央麗

摘 要:本文簡單介紹了基于 asp.net 環境下使用MVC 架構設計一個網站所涉及的技術。并通過一個簡單例子展示了設計一個網站涉及的數據庫設計、EDM 對象生成、控制器創建、視圖創建等內容,并對關鍵代碼做了展示盒介紹。

關鍵詞:asp.net MVC EDM ORM 網站設計

網絡技術發展日新月異,互聯網發展初期只能簡單共享一些文字圖片信息,現在是網頁圖文、聲音、視頻并茂。HTML5 標簽直接提供了對音頻和視頻的支持。Css3技術使得現在的網站頁面能實現手機端,電腦端自適應展示。現在的網站系統可以通過網絡實現對各種后臺業務系統的接口調用和系統無縫集成,并可以感知用戶地理位置。現在的網頁可以實現直接使用傳遞自定義數據模型(Model)到網頁中,生成html代碼來展示。現在的網站后臺系統可以實現使用新的數據查詢語言對自定義數據模型進行查詢。

我們可能會問:使用20年前asp網站設計也可以將ADO Recordset自定義數據集嵌套在網頁中展示啊?網上看看確實還有很多這樣的系統。

但查看這些網站系統后臺源代碼,會發現這些網頁往往將業務邏輯有關代碼以“意大利面條式”的方式嵌套在網頁HTML代碼中。無論是從軟件工程“高內聚低耦合”原則角度看,還是從系統升級維護角度看,這種方式都存在很多問題,維護業務邏輯也很復雜,不利業務邏輯的擴展。其實現在已經有更好的設計方式供選擇,那就是基于asp.net MVC 架構開發網站。可以以面向對象方式封裝業務邏輯,可以以強類型方式在網頁之間傳遞類型數據(model),可以用razor語法把數據模型循環方式生成HTML 頁面來展示從而實現對HTML 每一個元素操控,也可以使用微軟的EDM對象,實現概念層到數據層的映射。

業務層的代碼直接操控概念層數據模型(EF 實體模型)。可以使用linq 語法查詢數據集,而不是在程序代碼中嵌入sql 語句。業務層操控的不再是數據庫,而是直接操控概念層概念模型。系統會實現自動完整概念層到數據庫的映射和存儲。

最后得到的開發體驗是可以實現“關注點分離”,每一層只關注與自己有關的業務內容,這樣的架構才能適應復雜的業務邏輯,才能不斷應對持續變化的業務需求。

下面從實際應用角度對有關技術作簡單展示,希望對初學者有幫助。

一、asp.net MVC 架構構成

MVC全名是model view controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。mvc被獨特地發展起來用于映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。MVC 架構系統工作流程:當用戶輸入信息(瀏覽器中發送請求),首先獲得用戶輸入數據的是控制器(控制器就是后臺使用面向對象設計方法設計的類),然后控制器操控相應的模型(模型是根據業務概念模型設計的強類型數據類型,比如一個學生,課程,視頻等)。接下來,模型的內容可以傳遞給指定的視圖(使用razor 語法遍歷模型內的數據轉換成HTML 頁面里的數據)返回給用戶,這時用戶在瀏覽器就看到了返回的信息。MVC雖然有很多技術細節,但是主要工作過程就如上所述。

二、使用MVC架構設計一個網站主要步驟和代碼分析

下面以創建一個視頻網站查詢頁面為例來展示使用mvc 架構創建網站方法的主要代碼原理。

1.創建MVC 項目

打開 vs2015 開發集成環境依次選擇新建項目---選擇web----選擇asp.net web 應用程序-----輸入項目名稱---選擇MVC 項目類型---確定。操作到這里開發環境就能看到項目文件夾結構。

各個文件夾功能做好標注。沒有標注的文件夾暫且放一放,可以先理解主要功能有關的文件夾,進一步再研究其他相關文件夾。

2.創建數據庫并創建相應表

為了簡單步驟,筆者在sql server 創建了 videos 數據庫,并創建了如圖1所示video表,填充了6條記錄數據(如圖1)。

3.根據數據庫生成概念層數據實體

接下來一個重要步驟是根據創建的數據庫生成實體數據模型(edm模型,是微軟對ORM 思想的一種實現,創建好實體數據模型以后,應用系統將操作實體數據模型實現業務實體的增刪改查,而不是直接使用SQL 語句操作數據庫)。

操作步驟如下:將鼠標停留在models 文件夾,然后右鍵鼠標,在出現的菜單中依次選擇添加—新建項—ADO.NET 實體數據模型——來自數據庫的EF設計器——連接前面創建好的數據庫—選擇要映射的表—點擊完成。

操作到這里已經完成數據實體的創建。接下來只要操作概念層數據實體就能完成對數據庫的增刪改查。而數據實體則是面向對象設計的,數據庫里面的表字段變成了對象的屬性,在程序業務代碼中,也是操縱控這些實體對象,而不是數據庫里面的表,他們之間的映射,系統會自動完成。這就是微軟根據ORM 思想設計的實體數據模型,簡稱EDM(詳細細節不展開介紹,請大家查找有關資料)。

從圖2可以看到 videos模型有Id,videoName,picture,creater,createDate 5個屬性,分別對應著數據庫表5個字段。

打開代碼窗口可以看到實體數據模型其實就是一個類,和面向對象設計中的實體類沒有本質區別。

操作到這里,筆者已經準備好了數據庫,也準備好了概念層數據實體和數據實體模型對應的數據上下文對象(數據上下文對象可以加載數據到實體數據模型中)。目前還缺一個動作,就是調用該方法,得到數據并將這些數據顯示在頁面中。下面繼續完成這個動作。

4.設計控制器,訪問到數據,將數據模型傳遞給視圖

將鼠標停留在Controller 文件夾依次選擇:添加—控制——包含視圖的MVC5 控制器(使用Entity Framwork)——添加。完成上面操作在Controll 文件夾就多出了一個控制器文件。

5.設計視圖,將數據模型生成HTML 頁面

完成上面操作向導,我們查看Views文件夾,可以看到多了一個videos 子文件夾,里面有一個名為 index.cshtml 文件。通過這一步驟應該注意以下知識點。

(1)razor語法其實就是c#語句前面加@就能將c# 語法和html 混合編寫,既能將模型數據轉換成HTML 頁面數據顯示。

(2)視圖文件的第一行有個IEnumerable接口類型的聲明,用接口類型就能接收控制器傳遞過來的模型數據。

(3)微軟已經為我們設計了一套生成 HTML 標簽的編程接口。

6.運行網站

以上操作已經完成后臺數據庫的創建、概念層EDM 到數據庫的映射數據模型的創建、控制器的創建、視圖的創建并且將網站頁面運行起來了。雖然簡單,希望對初學者有所幫助。

主站蜘蛛池模板: 园内精品自拍视频在线播放| 日本a∨在线观看| 国产在线八区| 免费国产黄线在线观看| 伊人久久久久久久| 成人毛片免费观看| 精品伊人久久大香线蕉网站| 亚洲中文精品人人永久免费| 国产成人亚洲日韩欧美电影| 国产成人1024精品| 欧美a√在线| 少妇精品在线| 国产农村精品一级毛片视频| 免费无遮挡AV| 风韵丰满熟妇啪啪区老熟熟女| av一区二区无码在线| 国产精品真实对白精彩久久| 伊人无码视屏| 国产99免费视频| 99久久精品视香蕉蕉| 国产一二三区在线| 一级黄色片网| 国产一二三区在线| 中文字幕av无码不卡免费| 精品少妇三级亚洲| 狠狠ⅴ日韩v欧美v天堂| 国产成人AV综合久久| 一本二本三本不卡无码| 国产不卡国语在线| 色哟哟国产成人精品| 国产91熟女高潮一区二区| 国产在线视频导航| 亚洲无码四虎黄色网站| 日本道综合一本久久久88| 波多野结衣中文字幕一区| 波多野结衣一区二区三区四区视频 | 国产精品色婷婷在线观看| 日韩免费成人| 人妻中文久热无码丝袜| 天天躁夜夜躁狠狠躁图片| 欧美国产视频| 就去色综合| 99re经典视频在线| 国产91小视频在线观看| 99精品视频播放| 婷婷六月天激情| 亚洲男人天堂网址| 久久久久88色偷偷| 91精品国产自产91精品资源| 少妇高潮惨叫久久久久久| 国产xxxxx免费视频| 中文字幕永久视频| 亚洲AV人人澡人人双人| AV片亚洲国产男人的天堂| 97久久超碰极品视觉盛宴| 午夜视频免费试看| 久久综合一个色综合网| m男亚洲一区中文字幕| 全部毛片免费看| 国产三级成人| 欧美一级大片在线观看| 99在线观看精品视频| 欧美高清三区| 亚洲Av激情网五月天| 免费a级毛片视频| 国产日本一区二区三区| 97人妻精品专区久久久久| 福利在线不卡一区| 久久大香香蕉国产免费网站| 欧美激情综合| 成人欧美日韩| 久久中文字幕av不卡一区二区| 亚洲一区二区精品无码久久久| 国产精品久久久久久久久kt| 亚洲国产亚洲综合在线尤物| 色婷婷在线影院| 最新无码专区超级碰碰碰| 2021国产精品自拍| 免费a在线观看播放| 国产欧美高清| 无码粉嫩虎白一线天在线观看| 国产人成乱码视频免费观看|