天天看點

asp.net MVC與WPF MVVM

由于工作的原因,總是會在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。常用或者說肯定會使用到的包括日志,異常,字段驗證,權限認證等。極大的減少了代碼的重複量,簡化了邏輯也使得代碼結構清晰。

轉載于:https://www.cnblogs.com/chyewei/p/5574646.html

繼續閱讀