ASP.NET MVC3 初體驗

在小弟先前介紹的Web Matrix 開發 當中的ASP.NET Razor的撰寫方式,當時我們可以下載這個精簡版的開發工具來體驗Razor的威力,現在MVC3終於Release了。小弟不才,還是在Facebook看見保哥的貼文才發現的這個訊息的 :D。現在透過MVC3 我們可以在Visual Studio 2010中直接開發ASP.NET Razor 的網站了

在小弟先前介紹的Web Matrix 開發 當中的ASP.NET Razor的撰寫方式,當時我們可以下載這個精簡版的開發工具來體驗Razor的威力,現在MVC3終於Release了。小弟不才,還是在Facebook看見保哥的貼文才發現的這個訊息的 :D。現在透過MVC3 我們可以在Visual Studio 2010中直接開發ASP.NET Razor 的網站了。

要安裝MVC3一般來說就是兩種方式:

1. 自行下載 (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6&displaylang=en)

image

 

2.透過 Web Platform Installer

image

在MVC3中已經加入Razor語法至View中,當您新增一個Mvc3Application1時,會再出現一個視窗讓您選擇是否要使用Razor,所以您仍然可以使用MVC2的ASPX開發方式,如下圖:

image

目前只有Razor有Site方式可以開發 (似乎也是當初開發Razor的初衷,可支援動態編譯、執行),如下新增網站時多了一個ASP.NET Web Site (Razor)可以選擇:

image

當建立起ASP.NET Web Site (Razor) 後 (筆者將專案名稱命名為Mvc3RazorSite1),在我們又看見許多新東西,這在Web Matrx 是沒有看見的,以"_" 底線開頭的檔案,這是Layout 檔案,根據ScottGu's Blog 的網站對於Layout檔案的描述才了解原來是為了取代在ASPX當中的Master Page的寫法。

image

在 Default.cshtml 中便參考了 "_SiteLayout.cshtml" 這個檔案,如下Default.cshtml的內容:

	   1:  @{  
	   2:      Layout = "~/_SiteLayout.cshtml";
	   3:      Page.Title = "Welcome to my Web Site!";
	   4:  }
	   5:  <p>
	   6:      ASP.NET Web Pages make it easy to build powerful .NET based applications for the web.
	   7:  </p>

 

而底線開頭的Layout檔案室不可以直接執行的,如果您直接執行,Runtime會Raise一個System.Web.HttpException的錯誤,告訴你Files with leading underscores ("_") cannot be served. 的訊息。

image

 

程式初始執行時就會跑_AppStart.cshtml 的內容,而程式就是一行 WebSecurity 的 InitializeDatabaseConnection 動作,這個動作就會去開啟內建在專案範本中的 StartSite.mdf  的SQL Server Express 檔案,可以注意到在Web.config 已經預先定義好連線字串了。

下為_AppStart.cshtml 的內容:

	   1:  @{
	   2:      WebSecurity.InitializeDatabaseConnection("StarterSite", "UserProfile", "UserId", "Email", true);
	   3:      // WebMail.SmtpServer = "mailserver.example.com";
	   4:      // WebMail.EnableSsl = true;
	   5:      // WebMail.UserName = "username@example.com";
	   6:      // WebMail.Password = "your-password";
	   7:      // WebMail.From = "your-name-here@example.com";
	   8:  }

 

因此整個範本專案檔若您系統沒有啟動 SQL Server Express 的服務時,初次執行時就會出現SQL連線錯誤,如下圖:

image

程式執行的結果與ASPX的MVC2 專案幾乎沒什麼不同,只是改用Razor 方式來撰寫,因為這裡你看不到Controller檔案,果你開啟的是 [MVC3 應用程式專案],那麼就只有VIEW是使用Razor (當然你也可以選擇ASPX的 方式撰寫VIEW),而所有Controller & Model的開發方式與MVC2幾乎沒什麼不同,當然有許多新增功能

  • JaveScript Improvements  (內建的新的AJAX Helper 不僅支援未來HTML5的一些特性,對SERVER端t也支援Client端使用posting JASON-base Parameters 觸發至Server端)
  • Improved Validation (Client 驗證的增強,且MVC3預設就是開啟Client驗證的,從.NET 4.0的MVC2的System.ComponentModel.DataAnnotations這個定義開始,現在又增加了IValidationObject 這個介面支援Model-Level的驗證方式,也允許你將錯誤訊息以及狀態定義在Model上)
  • Output Caching  (MVC3的Output Caching 更增強了可以在不同的Area中重複使用的能力,甚至支援可以放入Windows Server AppFabric 的叢集中統一管理)
  • Better Dependency Injection  (在MVC3中您可以不需要在自行撰寫ControllerFactory,可以輕易的與Dependency Injection (DI)和IoC整合)
  • 其他細節的增強.. 等等

 

 

 

在ASP.NET 應用程式類型的專案中如果您選 Razor ,筆者到覺得是非常棒的開發方式,可以使用到Razor的好處,同時具備所有MVC的各項特性。再加上使用Visual Studio 2010來開發, 支援Intellisense。如下圖,使用Razor的VIEW:

image

反而在ASP.NET Web Site (Razor) 中,許多邏輯都撰寫在網頁上,故筆者感覺比較適合用在小型網站,較不適合用在中大型網站的開發,中大型還是使用應用程式類型的撰案。

 

其他就待各位再去挖掘囉:D

謝謝各位

 

參考資料:

Announcing release of ASP.NET MVC 3, IIS Express, SQL CE 4, Web Farm Framework, Orchard, WebMatrix


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^