二、創建一個ASP.NET MVC3應用
要了解MVC3是怎樣工作的,最好的途徑莫過於實際創建一個應用,那么我們開始吧。
ASP.NET MVC3軟件需求
MVC3可以在如下Windows客戶端操作系統運行:
- Windows XP
- Windows Vista
- Windows 7
它可以運行在以下幾種服務端操作系統上:
- Windows Server 2003
- Windows Server 2008
- Windows Server 2008 R2
MVC 3開發工具既可以安裝在Visual Studio 2010上,也可以安裝在Visual Web Developer 2010 Express.
安裝ASP.NET MVC3
確認滿足了基本的軟件需求后,到時間該在你的開發機器和產品機器上安裝ASP.NET MVC3了。值得慶幸的是,這相當簡單。
和MVC2並行安裝
MVC 3和MVC 2是可以並列安裝的,因此你可以安裝並立即開始使用MVC3。你仍然可以像往常一樣創建和更新已經存在的MVC2應用程序。
安裝MVC3開發組件
ASP.NET MVC3開發者工具支持Visual Studio 2010或者Visual Web Developer 2010 Express(免費)。
安裝MVC3,可以使用Web Platform Installer (http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3),或者可執行安裝包( http://go.microsoft.com/fwlink/?LinkID=208140)。我一般比較傾向於使用Web Platform Installer,因為它只下載和安裝目前沒有的組件。可執行安裝包可以離線運行,它包含了所有需要的東西。
服務器安裝MVC 3
安裝包會檢測它是否運行在不必支持開發環境的機器上,而且只需安裝服務端部分。假如你的服務器是可以訪問網絡的,WebPI是一個輕量級的安裝,因為沒有必要安裝任何開發者工具。
當在服務器上安裝MVC3時,MVC運行時程序集是被安裝在全局程序集緩存(GAC)中,這意味着該服務器上的所有網站都可以使用。另外一種方式是,根本不在服務器上安裝MVC 3,而是在你的應用程序中包含所需的程序集,這種處理方式叫做二進制部署(bin deployment),實現方式是在項目引用中添加下列程序集,並在Visual Studio屬性中將其設置為“本地”(Copy Local)。
- Microsoft.Web.Infrastructure
- System.Web.Helpers
- System.Web.Mvc
- System.Web.Razor
- System.Web.WebPages
- System.Web.WebPages.Deployment
- System.Web.WebPages.Razor
要想獲取關於安裝選項的更多信息,請查看Scott Guthrie的博客,名為“Running an ASP.NET MVC 3 app on a web server that doesn’t have ASP.NET MVC 3 installed,”,鏈接地址為:http://weblogs.asp.net/scottgu/archive/2011/01/18/running-an-asp-net-mvc-3-app-on-a-web-server-that-doesn-t-have-asp-net-mvc-3-installed.aspx.
創建一個ASP.NET MVC3應用程序
安裝MVC 3之后,會發現Visual Studio 2010和Visual Web Developer2010都有了一些新的選項。兩個IDE中的這些體驗都是及其相似的,由於本書屬於高級系列教程,我們將會主要以Visual Studio 開發環境為主,只在當兩者區別較大的時候才會提到Visual Web Developer。
MVC 音樂商店
我們會使用基於MVC音樂商店博客的一些例子,這些例子的在線地址是:http://mvcmusicstore.codeplex.com,並且包含150頁的電子教程來講解MVC3應用程序的構建基礎。本書中我們會稍微快一些,不過如果你需要更多關於介紹性話題的信息,好在他們有一個共同的起點(but it’s nice to have a common base if you need more information on the introductory topics )。
我們來新建一個MVC項目:
1.開始先選擇File->New->Project,如圖1-2所示。
2. 如下圖所示,在新建項目對話框左側列的模板部分,選擇Visual C#->Web模板列。在中間列會顯示web應用類型的列表。
3. 選擇ASP.NET MVC3 web應用程序,將應用程序命名為MvcMusicStore,單擊OK。
新的ASP.NET MVC3對話框
創建新的MVC3應用之后會看到一個對話框,包含項目創建過程中的一些具體的MVC選項,如圖1-4所示。在對話框中勾選的選項將為你的應用程序生成一些具體的底層結構,包含賬號管理、view引擎以及測試等。
應用程序模板(Application Templates)
首先,要在預先安裝的兩種項目模板中進行選擇(如圖1-4)。
- The Internet Application template:該模板包含了MVC web 應用程序的基本內容,創建完成后可以立即運行並看到一些頁面。只需要短短一分鍾時間就可以完成這些。該模板還包含了一些基本的賬號管理功能,它對應着ASP.NET Membership系統(第7章中會討論到)。
ASP.NET MVC3更新工具中還添加了Intranet Application template,但它的賬號管理功能不是針對ASP.NET membership系統,而是關於windows賬號。
- The Empty template:這個模板基本上是空的。它也包含了基本的文件夾、CSS和MVC應用的基本架構,但是僅此而已。直接運行用空模板創建的應用將會看到錯誤信息——你需要從頭開始一步步進行開發工作(you need to work just to get to square one)。既然如此,那為什么還要將該模板包含進來呢?其實空模板是為了方便經驗豐富的MVC開發人員更精確的按照自己的需要來進行設置和配置。我們將會在本章后半部分簡略的看一下空應用程序的結構。要想了解更多,可以參考一下MVC音樂商店的應用程序,它就是用空模板創建的。
View引擎(View Engine)
在新的ASP.NET MVC3項目對話框中,接下來的選項是view引擎下拉框。View引擎提供了不同的模板語言用來生成MVC項目中的HTML標簽。在MVC3之前的版本中,view引擎唯一的集成選項是ASPX或者說Web Forms。這個選項依然是可用的,如圖1-5所示。
測試(Testing)
如果使用了Internet或者Intranet應用程序模板,那么在新的ASP.NET MVC3項目對話框中會有另外一個選項。該部分主要處理測試,如圖1-6所示。
如果不選中創建測試項目的復選框,那么意味着你的項目創建時不會包含任何單元測試,也就沒有其他的需要做了。
|
在選中創建單元測試項目復選框(Create a Unit Test Project box)之后,會有兩外幾個選項:
你可能已經注意到,只有一個測試框架供選擇,這看起來好像沒有太大必要了。只有一個下拉框選項是因為單元測試框架式可以注冊到該對跨框中的,所以如果你安裝了其他單元測試框架(如xUnit, Nunit, MbUnit等),那么將會顯示在該下拉框列表中。
Visual Studio Unit Test Framework只在Visual Studio 專業版或者更高版本中可用。如果你使用Visual Studio 2010標准版或者Visual Web Developer 2010 企業版,那么你需要下載安裝ASP.NET MVC的Nunit, MbUnit或者Xunit擴展包才可以看到這個對話框。
為單元測試框架下拉框注冊測試框架
可曾想過為新的MVC新建項目對話框注冊測試框架要涉及到哪些嗎?
該過程在MSDN上進行了詳細的描述(http://msdn.microsoft.com/en-us/library/dd381614.aspx)。主要包括兩個步驟:
1. 為新的MVC測試項目創建並安裝模板項目;
2. 通過在HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0_Config\MVC3\TestProjectTemplates下添加一些注冊表項來注冊測試項目類型。
檢查並確認你的信件MVC 3應用程序對話框中的設置和圖1-8中一致,然后單擊確定。
這樣就創建了包含兩個項目的解決方案——其中一個是web應用程序,另外一個是單元測試項目,如圖1-9所示。
注:參考書籍《Professional ASP.NET MVC3》,僅供學習和交流,請勿用於商業用途。