4月5號晚本來應該寫出來的,這幾天迷上了爐石傳說,打得有點瘋,明天又得上班了,收拾心情還是得寫出來。上星期5晚上回家的時候,不得不吐槽一下的確有點背。6點下班沖去江夏地鐵站,趕7點15分到江門的輕軌,到了南站到機子取票的時候,心中N只草泥馬跑過,人真多。不得不跑去櫃台,眼看趕不上了還有7分鍾,打算改簽,工作人員竟然要我試下。。。。。我還真打算試下,准備上電梯的時候發現,怎么電梯只有下,沒有上。。。。一問工作人員,跟我說:電梯壞了,你可以去西門上,或者在那排隊坐升降電梯。。。。。我看看排着長龍的升降電梯,望望的沒有盡頭的西門。絕望的走向地鐵口,去省站搭大巴去 - -!天無絕人之路啊,搭了最后一班車,回到家了。。。。。。
廢話那么多,只是看看有沒有和我差不多經歷園友啊,把我不開心的事,說出來讓你們開心開心,讓大家平衡平衡。
去了新公司,又要用回MVC,剛畢業出來用過一段時間,不過基礎方面不怎么扎實,所以打算看書,重新好好學一遍。C#系列還是會持續更新的,除了學好一門語言,還得精通一套框架啊。。。不然好好的語言用在哪呢?
前言
談到框架,我們就先談談web form 和 MVC 的區別。這兩個框架現在比較流行的,都是基於asp.net平台構建的,支持.net上任何語言。web form擁有可視化界面,我們可以拖拉控件,進行快速的頁面布局,接着針對對應的控件編寫事件,達到快速開發。可是對前台的HTML控制,並不理想,不知道大家有沒有試過點開F12看看。。反正我是看暈了。。。另外,web form有‘視圖狀態’這個概念,如果控制不好,每次post后回傳不必要的數據,就會浪費資源,如果數據量比較大,還會造成頁面阻塞。
正因為Web Form 的各種原因,因為MVC誕生了,從架構上面來看分三層,隔離就是為降低模塊間耦合性,前端與后台的隔離,使設計與開發職責更明確;開發人員針對模塊業務編寫,提高代碼質量,使程序更容易維護、更好的擴展。
其實,兩個框架都是基於.NET平台構建的,Web Form能實現的,ASP.NET MVC也可以,反之也成立。另外,Web Form是事件驅動了,而ASP.NET MVC是路由驅動的。我認為,Web Form適合於企業內部系統,企業系統對於頁面的要求並不大,更注重后台業務邏輯,快速簡潔的開發,可以減少成本。而MVC 前后端的分離,對HTML CSS JS良好控制,設計出更漂亮的頁面,更適合於門戶網站。不過這些不是絕對的,也有公司利用MVC和 easyui 之類的框架做企業內部系統,也是根據公司業務和開發人員技能來決定的。
新的開始
兩者的區別大致了解之后,還是得開始創建我們的項目。
點擊創建新的ASP.NET MVC 4 項目后,會見到模板有6個選項,空模板,基本模板,Internet應用程序,Intranet應用程序,移動應用程序,web api。
空模板
- 這個空模板不算空哈- -!有基本的MVC的文件夾結構、配置文件,還有ASP.NET MVC基本需要的程序集。
基本模板
- 這個模板表明了,創建ASP.NET MVC 所需的最低標准的資源,和空模板比起來,多了兩個文件夾,Content和Scripts。
Internet應用程序
- 其實這個模板就是在空模板的基礎上擴展的DEMO,有登陸注冊功能,初學者可以去看看,學着里面敲一敲。
Intranet應用程序
- 跟Internet應用程序有點相同,使用了基於windows的驗證機制。
移動應用程序
- 這個模板主要是針對移動設備的優化,里面有JQuery Mobile 框架。
web api
- web api集成在ASP.NET MVC里,直接可以把ASP.NET MVC當成一個web服務框架來用,特別方便。之前的公司用corona進行開發移動軟件,我也是用MVC搭建的服務。
視圖引擎我選擇了Razor,其實對於Razor來說不是什么新技術啊,我對它的理解是,在視圖里寫.net代碼,打@之后隨意敲。。。。。比aspx方便多了。。。。。=。=
既然自己弄着玩,那我就用基本模板好了,創建出來就見到上圖的架構:
- App_Data,這是數據的物理存儲區。 此文件夾的作用與它在使用 Web 窗體頁面的 ASP.NET 網站中的作用相同。
- App_Start,這個放着的是路由配置,原本是在Global.asax里的,在MVC4分離出去了。
- Controllers,控制器, 要求所有控制器的名稱均以“Controller”結尾。
- Models,通常包括定義對象以及定義與數據存儲交互所用的邏輯的代碼。
- Scripts,存儲支持應用程序的腳本文件,js,jq等。
- Views,存儲視圖,里面還有個share文件夾,存放的是母版。
- Global.asax,程序第一次執行的時候就是從這里開始,調用了App_Start里的路由配置。
在Controllers文件夾添加一個HomeController,打開可以看見有個默認的Action ——Index,然后在Model文件夾添加一個類文件。每當我們接觸一門新技術的時候,都習慣性的對這個陌生的世界打個招呼,那這次我們也不例外,HomeController 和 Model 里分別編寫一下代碼。
添加Index視圖,並且轉入,將ViewData["hw"]編寫進去,Ctrl+F5運行一下,可以看見我們寫的Hello Word在頁面上展示給我們看了,我們在地址欄上添加上/Home/Index,發現和原來的頁面一樣。其實這個是因為路由配置的默認設置,將/Home/Index設置為默認路徑。
總結
上面大概了解了MVC的基本情況,我們知道Model是編寫數據邏輯的,由Controller進行調用,然后再由Controller決定返回哪個View,最后將數據展示給用戶。這里另外提一提,就是這個Model,很多時候會另外建一個類庫,作為一個數據層進行使用。
寫到這里也差不多了,這一次章寫得挺簡單的,其實借這次來打聲招呼,我會寫個新系列,C#的我還是會繼續更新的,所以歡迎各位一起來討論,我有什么理解不清楚的,或者有補充的都寫在評論上,我會重新修改進去。好晚了。。。電腦死機了一次。。。。重寫了。。。惡心死了。