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色毛片免费视频| 色男人的天堂久久综合| a毛片在线播放| 国产成人永久免费视频| 色噜噜综合网| 亚洲av无码久久无遮挡| 一级爱做片免费观看久久 | 在线播放精品一区二区啪视频 | 亚洲国产精品成人久久综合影院| 91久久国产热精品免费| www.日韩三级| 亚洲中文字幕久久无码精品A| 中文字幕乱妇无码AV在线| 99久久精品免费看国产免费软件| 国产白浆在线| 久久黄色影院| 91最新精品视频发布页| 精品撒尿视频一区二区三区| 国产黄在线免费观看| 精品偷拍一区二区| 日韩专区欧美| 日本高清在线看免费观看| 老司国产精品视频| 国产免费观看av大片的网站| 久久国产黑丝袜视频| 国产日韩欧美一区二区三区在线 | 欧美激情二区三区| 制服丝袜一区二区三区在线| 国产在线观看人成激情视频| 高h视频在线| 啦啦啦网站在线观看a毛片 | 亚洲综合色在线| 国产女人在线视频| 国产69精品久久| 国产成人亚洲精品无码电影| 在线免费亚洲无码视频| 精品国产成人国产在线| 日韩亚洲综合在线| 色网站在线免费观看| 国产精品污视频| 亚洲av无码久久无遮挡| 亚洲无码四虎黄色网站| 久久精品视频一| 欧美日韩精品综合在线一区| 无码一区18禁| 看你懂的巨臀中文字幕一区二区 | 九九久久99精品| 亚洲高清无码精品| 亚洲无码熟妇人妻AV在线| 91成人免费观看在线观看| 色婷婷狠狠干| 色婷婷在线播放| 免费A级毛片无码免费视频| 最新精品国偷自产在线| 一区二区三区成人| 欧美亚洲日韩中文| 免费在线观看av| 久久久精品国产亚洲AV日韩| 秘书高跟黑色丝袜国产91在线| 久久99热这里只有精品免费看| 伊人久久大香线蕉综合影视| 国产成人1024精品| 亚洲男人的天堂久久香蕉网| 欧美日韩午夜| 天堂va亚洲va欧美va国产| 91精品伊人久久大香线蕉| 久久综合色88| 欧美a级在线| 国产激情无码一区二区免费| 三区在线视频| 国产女人在线视频| 精品久久人人爽人人玩人人妻| 久久久亚洲国产美女国产盗摄| 国产精品女熟高潮视频| 在线观看国产精品第一区免费| 亚洲福利一区二区三区| 久久综合九九亚洲一区| 一区二区三区毛片无码| 欧美天堂在线|