二、建立一個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所示。
如果不選中建立測試專案的複選框,那麼意味著你的項目建立時不會包含任何單元測試,也就沒有其他的需要做了。
推薦:選中複選框
我希望你會形成對每個建立項目都選中“建立單元測試項目”複選框的習慣。
我並不打算向你兜售“單元測試”信仰 — 至少現在還不。整個這本書中我們都會談論單元測試,特別是第12章,會涉及單元測試及可測試模式,但我們並不打算把它強行塞入你的喉嚨(讓你生吞活剝)。
因此,我的推銷(建議)是:只選中這個複選框。你(暫時)不必知道這麼做的細節,也不需要你具有一個ALT.NET的粉飾或一份認證(意即,你現在不需要具備單元測試的任何基礎知識)。本書中我們會涉及一些單元測試以讓你入門,而單元測試最好的起步就是選中這個複選框,以便你以後可以編寫一些測試而不必做任何設定。
|
在選中建立單元測試項目複選框(Create a Unit Test Project box)之後,會有兩外幾個選項:
- 第一個很簡單:你可以任意修改單元測試項目的名稱;
- 第二個選項允許選擇一個測試架構,1-7所示。
你可能已經注意到,只有一個測試架構供選擇,這看起來好像沒有太大必要了。只有一個下拉框選項是因為單元測試架構式可以註冊到該對跨框中的,所以如果你安裝了其他單元測試架構(如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》,僅供學習和交流,請勿用於商業用途。