本篇內容:
1. ASP.NET MVC 5的軟件需求
2. 安裝ASP.NET MVC 5
1)安裝MVC 5開發組件
2)服務器安裝
3. 創建ASP.NET MVC 5應用程序
4. New ASP.NET Project對話框
1)選擇一種應用程序模板
2)測試
3)配置身份驗證
4)配置Windows Azure資源
學習MVC 5工作原理最好的方法就是開始構建一個應用程序,下面就采用這種方法。
一、ASP.NET MVC 5的軟件需求
MVC5需要.NET 4.5。因此,它可以運行在下面這些Windows客戶端操作系統上:
1. Windows Vista SP2+
2. Windows 7
3. Windows 8+
4. Windows 10
也可以運行在下面的服務器操作系統上:
1. Windows Server 2008 R2
2. Windows Server 2012+
二、安裝ASP.NET MVC 5
確定滿足基本的軟件需求之后,就可以在開發計算機和生產環境計算機上安裝ASP.NET MVC5了。
安裝過程並不復雜。
MVC5和以前版本的MVC程序相互兼容:
MVC5與以前的MVC版本並行安裝,所以安裝后可以理解開始使用MVC5。
另外,仍然可以創建和更新運行以前版本的應用程序。
1. 安裝MVC5開發組件
ASP.NET MVC5的考法工具支持Visual Studio 2012+,包括2012+的Express的版本。
Visual Studio 2013+中包含MVC5,所以不需要單獨安裝。
如果使用的是Visual Studio 2012,則可以使用這個安裝程序來安裝MVC5,網址是:http://www.microsoft.com/zh-cn/download/41532
建議去官網瞅瞅,因為有相關介紹和版本兼容的說明等等。
當然,如果官網打不開或下載失敗,可以留言,我都下好了,不行的話我轉給你。
在這里,我使用的是Visual Studio 2013,因為自帶了MVC5,所以我就不用安裝這個了。
2. 服務器安裝
MVC5是完全bin部署的,這意味着所有必要的程序集都包含在應用程序的bin目錄下了,只要服務器上有.NET 4.5就可以進行安裝部署了。
三、創建ASP.NET MVC 5應用程序
使用Visual Studio 2013或Visual Studio 2013 Express for Web 2013可以創建MVC5應用程序。
這兩個IDE的使用方法時非常相似的,不過由於咱們主要是學習ASP.NET MVC相關的東西,所以涉及顯著差異的地方,到時候再說。
創建一個新的MVC項目的步驟如下:
1. 選擇“文件 - 新建 - 項目”選項,如圖所示:

2. 在“新建項目”的對話框中,左側依次選擇“已安裝 - 模板 - Visual C# - Web”模板列表,上面的.NET版本選擇“.NET Framework 4.5”;
在模板列表中找到“ASP.NET Web 應用程序”並選擇,將應用程序命名為“MvcMusicStore”,然后選擇一個合適的存儲位置,最后單擊確定即可。
如圖所示:

One ASP.NET 項目模板:
注意,這里沒有MVC項目類型,只有“ASP.NET Web 應用程序”。
以前版本的Visual Studio把ASP.NET和MVC使用不同的項目類型,但是在Visual Studio 2013中,它們被合並成一個公共的項目類型。
關於這一點,在上一篇中MVC5的版本概述中,有關於“One ASP.NET”的相關說明。
四、New ASP.NET Project對話框
創建一個新的ASP.NET MVC5應用程序后,將會出現“新建 ASP.NET 項目”的對話框。
如圖所示:

這里列出了所有ASP.NET引用程序工友的一些選項:
1)選擇模板
2)添加框架特定的文件夾和核心引用
3)添加單元測試
4)配置身份驗證
5)Windows Azure(Visual Studio 2013.2及更新版本)
前兩個選項“選擇模板”和“為以下對象添加文件夾和核心引用”共同起作用,需要都設置的。
模板選擇了一個起點,然后使用框架復選框來添加對Web Forms、MVC和Web API的支持。
這意味着,我們可以選擇一個MVC模板,然后添加Web Forms支持,或者可以選擇空模板,添加對任意框架的支持。
這種功能不止在創建新項目時可以使用,任何時候都可以添加對任意框架的支持。因為框架文件夾和核心引用是通過NuGet包添加的。
回憶一下上篇中的“One ASP.NET”說到的:模板和核心引用的選擇是可選的,而不是艱難的二選一。它們能夠幫助我們起步,但是不會限制我們。
1. 選擇一種應用程序模板
既然可以在任何項目上使用“對以下對象添加文件夾和引用”選項,那么使用Empty模板不就夠了么?為什么還需要其他模板?
這是因為,其他模板會在一開始為“主要采用MVC”、“主要采用Web API”和“主要采用Web Forms”的應用程序做一些常用的設置(稍后介紹),從而為我們創建項目的起步提供一些方便。
稍后會介紹這些模板,不過要記住,他們只是Visual Studio 2013為了方便我們而提供的,並不是必須使用它們。
我們也可以使用一個Empty模板開始創建應用程序,然后需要的話再通過添加NuGet包的方式來加入對MVC的支持。
1)MVC:首先介紹這個最常用的模板。MVC模板設置一個標准的、帶幾個視圖的HomeController,配置站點布局,並包含一個MVC特定的“Project_Readme.html”頁面。后面咱們會好好研究這個模板;
2)Empty:可以想象,空模板會建立一個空的項目模骨架。得到的文件包括一個web.confgi(包含一些默認的網站配置設置)和創建項目所需要的幾個程序集,但是僅此而已。這個模板不會提供任何代碼,不包含Javascript或CSS腳本,甚至不會提供一個上面MVC模板中說到的那個靜態的HTML文件;
3)Web Forms:Web Forms模板為ASP.NET Web Forms開發打下基礎;
4)Web API:使用這個模板創建的應用程序同時支持MVC和Web API。包含MVC支持,部分是為了顯示API Help頁面,它們記錄了公有API簽名。現在用不到這玩意兒,最后的時候咱們再詳細說;
5)Single Page Application:這個模板的應用程序主要通過Javascript請求Web API服務驅動,而不是采用傳統的Web頁面請求/響應周期。最初的HTML由一個MVC Home Controller提供,其余的服務器端交互則由一個Web API控制器處理。這個模板使用Knockout.js庫來幫助管理瀏覽器中的文本。后面有機會再說這個單頁模板,因為其重點其實是Angula.js,而不是Knockout.js;
6)Azure Mobile Service:安裝Visual Studio 2013 Update 2(也叫做2013.2)之后,會看到這個額外的選項。因為Azure Mobile Service現在支持Web API服務,所以使用這個模板能夠比較容易地創建針對Azure Mobile Service的Web API。在這里可以了解關於這個模板的詳細信息:https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/dn629482.aspx
2. 測試
所有的內置項目模板都有一個選項,用來使用樣本單元測試創建單元測試項目。
推薦:選中“添加單元測試”復選框
在這里建議大家養成在創建項目的時候選中“添加單元測試”的復選框。當然我也不是宣傳打廣告,畢竟Visual Studio這玩意兒也不是我的。。。
單元測試會貫穿如平時咱們寫項目的時候,后面會介紹和使用單元測試和測試模式,到時候咱們可以在不設置任何東西的情況下編寫一個測試代碼。
不過。。。當然,有的朋友性子就是倔、所以這里也不會強制您非得接受這個東西。。
3. 配置身份驗證
單擊“更改身份驗證”按鈕,可以打開如圖所示的“更改身份驗證”的對話框,在這里可以選擇身份驗證的方法。

在這個對話框里一共列出了4個選項:
1)無身份驗證:用於不需要身份驗證的應用程序,例如沒有管理單元的公共網站等;
2)個人用戶賬戶:用於在本地存儲用戶配置文件(例如在SQL Server數據庫中存儲)的應用程序。支持用戶名/密碼賬號,以及社交認證提供程序等;
3)組織賬戶:用於通過牟總形式的活動目錄(如Azure Active Directory和Office 365)進行身份驗證的賬戶等;
4)Windows 身份驗證:用於內部網絡的應用程序。
這里我們大部分用的都是默認的“個人用戶賬戶”,后面會介紹其它選項。
當然,您也可以點擊右側的“了解更多”鏈接進入官網查看相關的說明文檔。
4. 配置Windows Azure資源
Visual Studio 2013.2添加了額外的“在雲中托管”選項,用來為項目配置Azure資源。
關於詳細的更多信息,Google官網看詳細介紹即可。
在這里,我們使用的是本地服務器,所以檢查一下不要選中這個勾了。
再次確保“新建ASP.NET Web項目”的對話框和下圖5一直,然后點擊確定即可完成項目的創建:

這樣,就創建了一個解決方案,其中包含兩個項目:一個是Web應用程序,一個是單元測試程序,如圖所示:

新MVC項目再應用程序的額根目錄下包含“Project_Readme.html”文件。
創建項目的時候將自動顯示這個文件,如圖所示:

這是一個完全自包含的文件 —— 所有的樣式都通過HTTP樣式標簽包含進來,所以使用完該文件后可以刪除它。
Project_Readme.html文件針對每個應用程序模板定制,並包含大量有用的鏈接,它們有助於我們了解相關信息。
