ASP.NET MVC簡介
什麼是ASP.NET MVC
HttpHandler是ASP.net的底層機制,如果直接使用HttpHandler進行開發難度比較大、工作量大。因此提供了ASP.Net MVC、ASP.Net WebForm等高級封裝的框架,簡化開發,他們的底層仍然是HttpHandler、HttpRequest等這些東西。比如ASP.Net MVC的核心類仍然是實現了IHttpHandler接口的MVCHandler。
-
在之前模仿過的兩個項目中《超市管理系統》和《學生管理系統》採用的是兩個不同的框架:Winform框架和WPF框架。
-
這兩個項目採用的設計模式:三層和抽象三層
-
採用設計模式的好處:是爲了分工明確,例如學生管理系統在CS版本使用的Winform做前臺界面,在WebForm中直接可以將CS版本中的BLL/DAL/Model/Common這些dll文件直接拿過來就可以使用。相當於直接可以將前臺界面替換爲ASP.NET中的WebForm頁面
-
但是在BS項目中ASP.NET Webform版本的學員管理系統中遇到的問題是:有些同學根本不擅長頁面設計,因此做出的系統界面十分醜陋。因此在目前的開發中要求:前後端分離(前端工程師只需要負責HTML+CSS+JS,後端工程師只需要負責SQL+C#邏輯)
-
而WebForm框架存在的問題:首先是服務器控件十分繁瑣,其次前後端相連甚密,頁面中任何空間發生姓名或ID的改變都會導致程序崩潰
-
爲了實現前後端技術的徹底分離,逐漸衍生出的一種技術就是MVC
-
MVC在任何技術中都存在只是叫法不一致。
在ASP.NET中叫:ASP.NET MVC
MVC的發展史
MVC的版本
-
1.0:基於.NET3.5 VS2008(核心功能)
-
2.0:基於.NET3.5、4.0 VS2010(分區項目、模型元數據、模板視圖...)
-
3.0:基於.NET4.0 VS2010、VS2012(視圖引擎:Razor、H5和CSS3)
-
4.0:基於.NET4.0、4.5 VS2012、VS2013(手機模板、單頁應用程序模板)
-
5.0:基於.NET4.5.1 VS2013、VS2015
-
6.0;基於.NET4.5.1-4.8 VS2017、VS2019(只剩Razor視圖引擎)
ASP.NET開發模式
Model負責在View和控制器之間進行數據的傳遞:用戶輸入的內容封裝爲Model對象,發給Controller;
要顯示的數據由Controller放到Model中,然後扔給View去顯示。
WebForm和MVC的關係
都是對HttpHandler的封裝框架,ASP.net WebForm是微軟爲了讓開發ASP.Net像開發WinForm一樣傻瓜化發明的框架,有很多缺點;ASP.net MVC採用了MVC的思想,更適合現代項目的開發,因此ASP.net MVC在逐步取代ASP.Net WebForm。
在MVC中不存在ViewState
爲什麼ASP.NET MVC更好
程序員有更強的掌控力,不會產生垃圾代碼;程序員能夠更清晰的控制運行過程,因此安全、性能、架構等更清晰。WebForm和ASP.netMVC在“入門”和“深入”兩個要素之間正好相反。
ASP.NET MVC與“三層架構”
ASP.net MVC與“三層架構”沒有任何的關係。三層架構中的UI層可以用ASP.Net MVC來實現。可以理解爲MVC其實是對UI層進行再次分層
約定大於配置
“約定大於配置”:噁心的“配置文件地獄”,基礎階段按照默認配置來,先不管複雜、難懂的“路由”等。
配置可以理解爲配置文件,MVC裏面基本上依靠約定去解決問題