熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

技術高手講評ASP.NET MVC 1.0

2013-11-13 12:17:24  來源: .NET編程 

  最近正在考慮是否在我們的企業級應用中使用ASPNET MVC 框架因此會一直找使用它的理由希望大家在關注技術的同時結合企業應用談談自己的看法

  MVC的組成

  Models訪問數據庫裝載數據處理業務邏輯在項目中體現為數據實體類加業務代理類

  Views顯示數據用戶界面在項目中體現為aspx頁面偶爾可以加上codebehind

  Controller按路由規則將請求的數據傳送給指定頁面用於顯示也可以把用戶輸入的數據傳遞給邏輯處理類它可以包含簡單的驗證邏輯不應包含數據訪問邏輯

  為何使用MVC

  提出MVC的目的無非是提高開發效率提高可測試性官方的ASPNET MVC 指南中指出(以下簡稱指南)基於MVC的Web應用程序有如下優點

  []對復雜的程序管理更方便

  It makes it easier to manage complexity by dividing an application into the model the view and the ontroller

  []在開發上有更高的可控性

  It does not use view state or serverbased forms This makes the MVC framework ideal for developers who want full control over the behavior of an application

  []Routing使軟件設計有更多靈活性

  It uses a Front Controller pattern that processes Web application requests through a single controller This enables you to design an application that supports a rich routing infrastructure

  []更加適合測試驅動開發

  It provides better support for testdriven development (TDD)

  []團隊開發項目中有更高的可控性

  It works well for Web applications that are supported by large teams of developers and Web designers who need a high degree of control over the application behavior

  同時MVC框架還有以下特點

  []將應用程序分成各個組成部份更有利於測試MVC框架是基於接口的這樣可以利用MOCK方式來替換你的實際類做單元測試的時候也可以不運行Contrllers這樣的測試就更快更靈活

  []MVC框架是可擴展的你可以自己設計並替換視頻引擎URL導向規則Action的參數序列等等同時MVC框架也支持依賴注入和控制反轉你可以從外部注入實例而不用讓類自己創建實例你還可以通過配置文件的方式創建實例這樣使得測試更方便

  []強大的URL映射組件使得你的應用程序的URL更易理解同時具備搜索能力你的URL不必包括文件路徑這樣的設計很適合自定義查詢引擎和REST架構

  []MVC框架仍然支持ASPNET中的頁面用戶控件母版頁作為視圖的模板同時你也還可以使用嵌套母版頁行內表達式(inline expressions)服務器端控件模板數據綁定本地化等等屬於ASPNET已有的東西

  []同時ASPNET中的FORM驗證Windows驗證URL授權Membership角色輸出數據緩存SessionProfile 狀態管理配置Provider框架等特性在MVC框架中仍然是可用的

  小結ASPNET MVC 框架是基於ASPNET的所以他包括了ASPNET中的幾乎所有特性同時他為設計人員提供了一套測試的方案(當然這是所有語言平台MVC模式的共性)在安裝了框架的VS中還增加了不少功能可以方便地添加ViewsModelsControllers

  與三層結構的ASPNET應用程序比較

  與普通ASPNET比較而言最大的區別還是在於前台開發後台包括的數據庫訪問邏輯處理與以往的方式沒有明顯區別在MVC框架中這些統稱為Model而三層結構中這些可以稱為數據訪問層與邏輯處理層

  []頁面開發

  用這種模式開發的站點光看頁面的代碼的確比以往少一些但它更多地使用了頁面腳本()用於顯示數據在指南中並未提到不推薦使用服務器端控件但是它提供了大量的HTML HELPER而且還允許你自己添加Helper比如DataGridHelper所以在MVC框架中使用這些Helper會更方便些不過這對於熟練工來說應該影響不大因為實際開發中我們更多使用的是Ctrl+C/Ctrl+V復制幾個標簽和復制幾個Helper方法所花的時間差不多可能對於新手來說如果對標簽不熟悉的話用這些Helper的速度會快些但是這樣會影響新手掌握標簽真是矛盾吶

  []數據提交

  普通的ASPNet開發在提交數據的時候可能還需要通過設置數據綁定或者在codebehind裡寫封裝代碼而在MVC中框架自動幫助你將頁面上填寫的數據封裝到事先指定的Model中數據提交操作在MVC框架挺方便而且在普通ASPNET頁面中經常會出現某個屬性無法綁回去的情況這點在MVC中應該可以得到解決指南中提到了Routing的使用使得MVC框架下的應用程序在操作自定義查詢時變得更方便實際上在查詢方面跟普通方式並沒有多大區別都是對封裝好的類進行解析至於URL更容易理解現在應用程序都是從界面上點擊來實現操作很少有人會關注URL本身吧所以這個優點不算優點

  []單元測試

  從測試上講MVC框架確實做得不錯若用MOCK方式測試可以更方便一個好的WEB應用程序設計就應該將頁面呈現與邏輯分開這點普通ASPNET應用程序也是可以做到的關鍵在於設計

  []其它

  MVC框架在驗證母版頁這些地方有幾個新特性但與普通ASPNET的方式大同小異因此不仔細說了


From:http://tw.wingwit.com/Article/program/net/201311/15582.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.