前言:以前總說自己玩mvc,但是對mvc的認識還是不夠透徹,也沒有好好看微軟自帶的mvc項目中的精妙,最近閑了下來,好好看了看。 通過上圖,我們可以清晰地瞭解到MVC 5應用程式的項目結構,接下來我們來依次解釋下他們各自的應用。 App_Data: 該文件夾主要是包含應用程式的本地存儲, 它通常以文 ...
前言:以前總說自己玩mvc,但是對mvc的認識還是不夠透徹,也沒有好好看微軟自帶的mvc項目中的精妙,最近閑了下來,好好看了看。
通過上圖,我們可以清晰地瞭解到MVC 5應用程式的項目結構,接下來我們來依次解釋下他們各自的應用。
App_Data: 該文件夾主要是包含應用程式的本地存儲, 它通常以文件形式(如Microsoft SQL Server資料庫文件, XML文件等)包含數據存儲。
App_Start: 該文件夾包含應用程式的配置邏輯文件, 具體包括BundleConfig.cs, FilterConfig.cs, RouteConfig.cs, Startup.Auth.cs
BundleConfig.cs: 註冊所使用的捆綁的CSS 和 JS文件。
FilterConfig.cs: 註冊外部/全局過濾器,這些過濾器可以被應用到每個Action和Controller中去.
RouteConfig.cs: 配置MVC應用程式的系統路由路徑。
Startup.Auth.cs: 配置MVC應用程式的安全信息,包括Authentication和Authorization配置以及第三方Authentication Provider
Content: 該文件夾被推薦用於存儲靜態內容文件類似CSS 和 (圖片)Images
Controllers:顧名思義,該文件夾用於存儲所有的控制器且控制器必須以"Controller"結尾。
fonts: 該文件夾用於存儲MVC應用程式可能用到的字體文件
Models: 該文件夾用於存儲應用程式實體模型類, 實體類可以定義對象以及應用程式邏輯。
Scripts: 該文件夾預設存儲ASP.NET Ajax Foundation files和Jquery.主要被用來存儲應用程式所支持的腳本(JS)文件.
Views: 該文件夾主要用來存儲MVC應用程式所使用的佈局文件(.master), 視圖文件(.aspx)以及視圖用戶控制項文件(.ascx)
細心的讀者還會註意到Global.asax, Startup.cs(MVC 5應用程式新增加的) 以及Web.config.
Gobal.asax:
(摘自MSDN)這裡的Global.asax主要是web應用程式的全局設置文件,該文件包含響應 ASP.NET 或HTTP模塊所引發的應用程式級別和會話級別事件的代碼。Global.asax 文件駐留在 ASP.NET 應用程式的根目錄中。運行時,分析 Global.asax 並將其編譯到一個動態生成的 .NET Framework 類,該類是從HttpApplication基類派生的。配置 ASP.NET,以便自動拒絕對 Global.asax 文件的任何直接的 URL 請求;外部用戶不能下載或查看其中的代碼。Global.asax 文件是可選的。只在希望處理應用程式事件或會話事件時,才應創建它.
Web.config:
((摘自MSDN)Web.config文件是一個XML文本文件,它用來儲存ASP.NETWeb 應用程式的配置信息(如最常用的設置ASP.NETWeb 應用程式的身份驗證方式),它可以出現在應用程式的每一個目錄中。當你通過.NET新建一個Web應用程式後,預設情況下會在根目錄自動創建一個預設的Web.config文件,包括預設的配置設置,所有的子目錄都繼承它的配置設置。如果你想修改子目錄的配置設置,你可以在該子目錄下新建一個Web.config文件。它可以提供除從父目錄繼承的配置信息以外的配置信息,也可以重寫或修改父目錄中定義的設置。 在運行時對Web.config文件的修改不需要重啟服務就可以生效(註: 節例外)。當然Web.config文件是可以擴展的。你可以自定義新配置參數並編寫配置節處理程式以對它們進行處理。重點介紹下Startup.cs文件:
Startup.cs:
這個文件主要是提供給OWIN(Open Web Interface for .NEt)應用程式使用,OWIN的目的是為瞭解耦伺服器應用程式。例如在ASP.NET Identity使用OWIN security, SignalR self hosting使用OWIN hosting等情況下, 我們的MVC應用程式都有使用到OWIN, 所以,他們都相應的會使用到startup.cs所定義的Startup class. 關於OWIN的應用這裡不作詳述,這裡提到OWN主要是為了說明Startup.cs文件的使用.