04 入門 - ASP.NET MVC應用程序的結構

 

目錄索引:《ASP.NET MVC 5 高級編程》學習筆記html

 

  用Visual Studio建立了一個新的ASP.NET MVC應用程序後,將自動向這個項目中添加一些文件和目錄。
  如圖所示:web

  


  用Internet Application模板建立ASP.NET MVC項目後有8個頂級目錄。
  如圖所示:編程

  

 

若是不喜歡這個目錄結構,怎麼辦?
  ASP.NET MVC並非非要這個結構。
  事實上,那些處理大型引用程序的開發人員一般跨多個項目來今個應用程序,以便使該應用程序更易於管理。
  (例如,數據模型的實體類經常位於一個來自單獨的類庫項目中)。
  然而,默認的項目結構確實提供了一個很好的默認目錄約定,使得系統的關注點變得明確、清晰。設計模式


  當進行擴展時,請注意關於這些文件或文件夾的如下內容:框架


  1. /Controllers目錄
  展開這個文件夾,將會發現Visual Studio默認向裏面添加了默認的Controller類。
  如圖所示:單元測試

  


  2. /Views目錄
  展開這個文件夾,將會發現3個子目錄(/Home、/Account和/Shared)以及其中的一個模板文件。
  這些子目錄也是默認添加到當前項目中的,如圖所示:學習

  


  3. /Content和/Scripts目錄
  展開這個目錄,將會發現幾個CSS文件(用於調整站點上全部HTML文件的樣式)以及Javascript庫(能夠啓用應用程序中的jQuery支持)。
  如圖所示:測試

  


  4. /BookStore.Test項目
  展開這個項目,將會發現一個類,其中包含全部對應於HomeController類的單元測試。
  如圖所示:設計

  


  這些由Visual Studio天際的默認文件提供了一個能夠運行的應用程序的基本結構。
  完整地包括了首頁、關於頁面、帳戶登陸/退出/註冊頁面以及一個未經處理的錯誤頁面(全部頁面彼此聯繫起來,能夠直接使用)。調試


1、SP.NET MVC的約定

  默認狀況下,ASP.NET MVC應用程序對約定的依賴性很強。
  這樣就避免了開發人員配置和指定一些項,由於這些項能夠根據約定來推斷。


  例如,當解析視圖模板時,ASP.NET MVC採用一種基於約定的目錄命名結構。
  這個約定能夠實現當從Controller類中引用視圖引擎時,省略位置路徑信息。
  默認狀況下,ASP.NET MVC會從應用程序下的\Views\[ControllerName]\目錄中查找視圖模板文件。


  設計ASP.NET MVC是圍繞着一些基於約定的默認項,這些默認項在須要的時候能夠被覆蓋。這個概念一般稱爲「約定優於配置」。


2、約定優於配置

  在Ruby on Rails上約定優於配置的概念流行開來,它的本質意義在於:到目前爲止,您已經知道如何建立Web應用程序,如今將以之前積累的經驗應用於框架中,之後開發就不必再配置每一項。


  經過查看應用程序運行的三個核心目錄,能夠在ASP.NET MVC中看到這一律念:
  1. Controllers
  2. Models
  3. Views


  不必在web.config文件中設置這些文件夾名稱 —— 他們約定在配置文件中。
  這樣就避免了編輯XML文件(如web.config)的工做。


  例如,爲了顯示地告訴MVC引擎「能夠在Views目錄中查找程序視圖」 —— 這些程序都已經知道,這就是約定。


  這不是魔術,但實際上又是,可是它又不是那種黑魔術(結果出人意料的,甚至傷害到本身的魔術)。


  ASP.NET MVC的約定很是容易理解,下面是預期的程序結構:
  1. 每一個Controller類的名字以Controller結尾,例如ProductController、HomeController等,這些類在/Controllers目錄中。
  2. 應用程序的全部視圖放在一個單獨的Views目錄下。
  3. 控制器使用的視圖是在Views主目錄的一個子目錄中,這個子目錄是根據控制器名稱(後面減去Controller的後綴)來命名的。
  例如「HomeController」使用的視圖就放在「/Views/Home」中。


  全部可重用的UI元素都位於一個類似的結構中,而不是所有都直接存在Views文件夾裏面。
  相關的內容會在後面操做視圖的時候回着重介紹。


3、定簡化通訊

  編寫代碼進行通訊主要面向兩個不一樣的方面:
  1. 須要將清晰的無二義性的指令傳遞給計算機,讓它去執行。
  2. 須要讓開發人員讀懂你的代碼,以便後期系統的維護、調試以及完善。


  前面已經討論了約定優於配置如何高效地將開發者的想法意圖傳達給MVC。
  約定也能幫助開發者清晰地和其餘開發人員(或者之後的本身)進行交流。
  沒必要詳細地描述如何構建應用程序的每個方方面面,按照共同的約定能夠是世界上全部的ASP.NET MVC開發人員公用一個公共的標準。


  一般,軟件設計模式的優點之一是他們創建了一種標準語言。
  因爲ASP.NET MVC採用了MVC模式以及一些獨特的定義,這讓ASP.NET MVC開發者可以輕鬆地理解不是本身編寫的代碼或之前編寫可是如今忘記了的代碼,即使在大型的系統中也是這樣。

  想象一下,國家不一樣,語言不通,膚色不一樣,可是寫的代碼都是按照默認約定走的,你是否是也能看懂了?哈哈。

相關文章
相關標籤/搜索