asp.net MVC與WPF MVVM

來源:互聯網
上載者:User

標籤:

由於工作的原因,總是會在WPF和WebForm之間切換,但是實際項目中一直也沒有使用過asp.net MVC,畢竟現在的外企維護和相容老系統,是一件必修課。

然而最近找工作發現外面的世界已經漫天的MVC,說沒用過都不好意思跟人打招呼,只能自己先瞭解瞭解,至少上手來用沒問題再去面試吧。

下了一遍什麼7天系列,分塊系列的文章之後,發現其實asp.net MVC和WPF的MVVM思想如出一轍:

1.與傳統技術的對比

MVVM改變傳統的WinForm以事件為中心的方式,取而代之的是以資料為中心,將資料推送給View,通過雙向繫結實現資料的顯示和更新。

asp.net MVC改變了asp.net以內容為中心,每個頁面必須與物理的檔案一對一邏輯相關的存在。MVC以應用邏輯為中心,地址欄的內容與控制器和方法相對應。

2.綁定方式

MVVM通過聲明的方式將ViewModel和View綁定起來,完全依靠尋找datacontext中的內容來顯示資料,靈活性高。asp.net MVC控制器與view的對應關係固定,view必須存放在controler命名的檔案夾下,這樣雖然不需要手動綁定,但是靈活性差很多。因為BS結構的緣故,MVC提供了modelbinder自動協助開發人員對應傳遞的參數,通過modelstate將各個參數的驗證資訊儲存,同樣的,讓別人幫你幹活,你就得聽別人的,參數名字什麼的一致性,你就得保證好了。

3.路由方式

WPF畢竟還是表單程式,很簡單的從控制項樹依次往下傳遞事件。asp.net MVC通過地址請求的方式擷取響應,則必須要配置路由,這種配置路由的方式將路由的顯示與實際對應的controller分離,使地址展現更加靈活,當然也有局限性,如果路由中有指定地址的話,參數名稱必須與地址相同,畢竟是自動匹配,還是得按別人指定的規則來辦。(Controller/action/id)

4.其他

MVC中很多功能可以很方便的通過面向切面編程的方式實現,即ActionFilter。常用或者說肯定會使用到的包括日誌,異常,欄位驗證,許可權認證等。極大的減少了代碼的重複量,簡化了邏輯也使得代碼結構清晰。

 

asp.net MVC與WPF MVVM

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.