摘要:ASP.NET MVC 3, IIS Express, SQLCE 4,Web Farm Framework, Orchard, WebMatrix發佈
[原文發表位置]Announcing release of ASP.NET MVC 3, IIS Express, SQL CE 4, Web Farm Framework, Orchard, WebMatrix
[原文發表時間]January 13, 2011 12:11 PM
我非常高興地在這裡給各位介紹今天發佈的幾個產品:
- ASP.NET MVC 3
- NuGet
- IIS Express 7.5
- SQL Server Compact Edition 4
- Web Deploy and Web Farm Framework 2.0
- Orchard 1.0
- WebMatrix 1.0
以上產品全部免費。 他們是在.NET 4和 VS2010 RTM 上建立的,為 ASP.NET(包括Web Forms和MVC)和 Microsoft Web Server stack 增添了很多新的價值。
ASP.NET MVC 3
今天我們發佈ASP.NET MVC 3的 RTM。你可以從這裡下載安裝ASP.NET MVC 3,也可以根據需要從這裡下載ASP.NET MVC 3程式碼 (發佈在一個與OSI相容的開放程式碼許可 (註:MS-PL License) 下)。
ASP.NET MVC 3是一個重要的更新,帶來很多很棒的功能。其中的改進包括:
Razor
ASP.NET MVC 3的發佈包含一個稱為「Razor」的新繪製引擎 (Rendering Engine) 選項,此外還繼續支援、增強現有的.aspx繪製引擎)。Razor 將編寫一個 View 模板所需的字元輸入入降到最低,實現了一個快速流暢的程式碼設計工作流程。
和大多數模板語法不一樣,透過Razor,你無需為了在 HTML 中明確指定伺服器區塊的開端和結尾 (註:即 <% 和 %>) 而中斷你正在進行的程式碼編寫工作。Razor 解析器夠聰明,能根據你的程式碼推斷出來這些訊息。這實現了一種緊湊而富有表達力的語法,輸入非常乾淨,快速而有趣。
你可以從我過去6個月中發表的幾篇關於Razor的文章中獲知更多。
- Razor介紹
- Razor中的新關鍵字:@model
- 用Razor實現排版
- 透過Razor實現伺服端註解
- Razor的@和<text>語法
- 用Razor實現內隱式和外顯式程式碼切片
- Razor中的排版和區段
今天的發佈使 Razor 完全支援 Visual Studio 2010 和免費 Visual Web Developer 2010 Express 上的 intellisense(VB和C#)。
Java Script改進
ASP.NET MVC 3 實現了豐富的 JavaScript 場景,並利用了新興的 HTML5 的功能。
ASP.NET MVC3中的AJAX和驗證輔助程序現在使用基於Unobtrusive JavaScript的方法。Unobtrusive JavaScript避免往HTML中注入inline JavaScript,透過使用新HTML5中的「Data-」屬性慣例(也方便在早期瀏覽器中使用——包括IE 6)實現更乾淨的行為分離。這讓你的HTML緊湊而乾淨,讓它更容易根據需要換掉或客制JS程式庫文件。
ASP.NET MVC 3現在內建支援從客戶端JavaScipt發送基於JSON的參數到伺服端的操作函數。 這易於交換客戶端和伺服端資料以及構建豐富的JavaScript前端介面。我們認為這個功能在以後的場景包括客戶端模板及資料繫結(包括ASP.NET團隊最近往jQuery專案中貢獻的jQuery外掛)中會尤其有用。
之前發佈的ASP.NET MVC的版本中包括核心jQuery庫。 ASP.NET MVC 3現在也包含jQuery驗證外掛(我們的驗證輔助程式在客戶端驗證場景中會用到該外掛)。我們今天的版本,也預設包括jQuery UI在內(為你在專案內提供了一套豐富的客戶端JavaScript UI小工具)。
改良的驗證功能
ASP.NET MVC 3包含很多驗證增強功能,將資料使用變得更加方便容易。
客戶端驗證現在在ASP.NET MVC 3中是預設開啟的(使用一個onbtrusive javascript實現)。今天的發佈也包括針對遠端驗證的內建支援——讓你用一個驗證屬性來標記模型類別, 當在客戶端驗證輸入時,該屬性使ASP.NET MVC向一個伺服器方法發送遠端驗證呼叫。
ASP.NET MVC3現在也支援 .NET 4 的 System.ComponentModel.DataAnnotations 命名空間引入的驗證功能, 包括支援新的IValidatableObject介面——它使你能實現模型層次驗證,並允許你提供針對模型整體狀態或模型中兩個屬性間的特定驗證錯誤訊息。
ASP.NET MVC 3還支援.NET 4中對ValidationAttribute類別的改進。 ValidationAttribute現在支援一個新的IsValid多載,提供了更多關於當前驗證前後資訊(比如正在驗證的是什麼物件)的訊息。這實現了更豐富的場景,讓你在模型中另一個屬性值的基礎上驗證目前值。 我們已經隨ASP.NET MVC 3發佈了一個內建的[Compare]驗證屬性,通過這個支援,能更容易於在模型外比較和驗證兩個屬性值。
你能透過ASP.NET MVC 使用任何資料存取API或技術。 去年我們和.NET 資料團隊緊密合作以確保新的Entity Framework Code First Library (EF Code First library) 能很好地在ASP.NET MVC應用程式上使用。 我的這兩篇文章涵蓋了最新的EF Code First預覽,Demo 如何透過ASP.NET MVC 3來使用它,以便更簡單地編輯資料(配有端對端的客戶端+伺服器驗證支持)。Entity Framework Code First Library 最終版將在近幾周內發佈。
今天我們還發佈了新的MvcScaffolding專案的首個預覽版。它讓你能很容易地搭建ASP.NET MVC 3 Controller 和 View,並能很好地與 Entity Framework Code First 一起使用(而且是可插拔的,以支援其他的資料存取介面)。現在你能透過NuGet安裝它,你可以從Steve Sanderson寫的關於MvcScaffolding的文章中瞭解更多。
輸出快取
之前的ASP.NET MVC版本支援URL或操作方法層級的輸出快取內容。
ASP.NET MVC V3中我們也支援部分頁面輸出快取——允許你很容易地將一個回應的快取區域或片段輸出,而不是輸出全部。 這個功能在很多場景中很有用,讓你能大幅度地減少你的應用程式在伺服端所需要做的操作。
ASP.NET MVC 3中這個新的部分頁面輸出快取支援使你很容易地在一個網站,不同的URL間,重覆使用一個頁面上快取的局部區域或片段。它支援將內容快取在伺服端,或根據情況快取在一個像Windows Server AppFabric或memcached類似的分散式快取伺服器上。
我以後將發表一些課程來展示如何在局部頁面場景中使用ASP.NET MVC 3的新輸出快取支援。
更好的依賴注射
ASP.NET MVC 3能更好地支持依賴注射(Dependency Injection, DI)和DI/IOC容器的整合。
使用ASP.NET MVC 3,你不必為了用控制器依賴注射的實現而建立客制ControllerFactory類別。取而代之,你只需用ASP.NET MVC 3註冊一個依賴注射框架,它就會解決所有的依賴,不但適用於控制器,而且還適用於你的應用程式中使用的檢視、操作篩選器、模型繫結器、資料供應程式、驗證供應程式以及模型詮釋資料提供程式。
這讓你易於在專案內很乾淨地整合依賴注射。
別的改良
ASP.NET MVC 3包含很多其他改良,不但能減少你所需要編寫的程式碼量,而且讓你寫的程式碼更乾淨。 這裡有幾個範例:
- 改進的新增專案對話盒,使從模板建立一個新的ASP.NET MVC 3專案變得更加簡單
- 改進的新增->推測檢視 (Scaffolding View) 支援,更易於生成更乾淨的檢視模板。
- 新ViewBag屬性,使用.NET 4的動態支援,使將控制器中的晚期繫結資料傳向檢視變得更加簡單。
- 全域篩選器支援,允許在一個應用程式中指定貫穿所有控制器的交叉篩選器屬性(比如[HandlerError])。
- 新的[AllowHtml]屬性,允許在繫結表格資料到模型時可更細部的請求驗證。
- Session-less Controller 支持,更好地控制一個控制器的SessionState是開啟還是關閉。
- 針對常見HTTP場景的新ActionResult型別,比如HttpNotFoundResult和RedirectPermanet。
- 新Html.Raw()輔助函數,用來指定輸出不能透過HTML編碼。
- 新的Crypto輔助函數,用來Salt和hash密碼。
- 更多更多……
瞭解關於ASP.NET MVC 3的更多信息
我們本周將在 http://asp/net/mvc上發佈很課程。下面是今天發佈在該網站上的兩個很棒的ASP.NET MVC3課程:
以後我們還將在http://asp.net/mvc 上繼續發佈其他的ASP.NET MVC 3課程和影片。請定期去訪問看看是否有新的課程吧。
如何升級現有項目
ASP.NET MVC 3與ASP.NET MVC 2相容——這意味著將現有的MVC 項目升級到ASP.NET MVC 3很簡單。
ASP.NET MVC 3版本中的新功能是基於在我們之前已經在MVC 1和MVC 2中做過的基礎性工作上的——這意味著你所獲得的技能,知識,程式庫和書本知識都能直接應用在MVC 3發佈版上。MVC 3加了新功能, 同時它也不會廢棄現有功能。
你可以參考發行說明中的手動升級步驟來升級現有的ASP.NET MVC 2專案。或者,你能使用這個自動化ASP.NET MVC 3升級工具來很方便地升級現有的專案。
本地化版本
今天發佈的ASP.NET MVC 3版本是英文版的。我們將在幾天之後發佈其本地化版本(九種語言)。一旦它們發布,我將在文章中給出下載連結。
NuGet
今天我們還發佈了NuGet——一個免費的開放原始碼套件管理器,方便你在項目中找到、安裝和使用開放原始碼套件。它能和所有的.NET 專案型別(包括ASP.NET Web Form,ASP.NET MVC,WPF,WinForms,Silverlight,和類別庫)一起使用。你可以從這裡下載和安裝。
NuGet讓維護開放原始碼專案(比如Moq, NHibernate,Ninject,StructureMap,NUnit, Windsor,Raven, Elmah等.NET專案)的開發工程師們可以將他們的程式庫檔案封裝並註冊在一個可供搜尋的線上空間/目錄裡面。包括全部Visual Studio整合的客戶端NuGet工具讓需要使用其中的程式庫檔案的.NET 程式設計師可以很容易地在他們所開發的項目中找到(那些程式碼)並安裝。
NuGet負責管理程式庫檔案之間的依賴關係(比如: 程式庫檔案1依賴於程式庫檔案2)。它還使你的項目以後易於升級/刪除程式庫。它支援web.config文件更新(如果一個套件需要配置環境)。 它還允許將Powershell腳本(比如:基礎命令)封裝到專案內。重要的一點是,NuGet是透明而且乾淨的——不在系統層面安裝任何東西,而是主要專注於如何讓你簡單地管理專案中所使用到的程式庫檔案上。
我們引入NuGet的目的是希望能盡量簡單地在.NET專案中整合開放原始碼程式庫檔案。
NuGet Gallery
本周我們還開放了一個Beta版的Http://nuget.org網站——所有人都可以在這個線上空間很簡單地通過NuGet搜尋和瀏覽可用的開放原始碼套件。 現在這個網站還允許程式設計師根據需要提交其願意分享給別人的新套件。 你可以從這裡獲知如何建立和分享一個套件。
現在NuGet Gallery裡面已經有上百個開放原始碼.NET專案了。我們希望將來有更多。
IIS Express 7.5
今天我們還發佈IIS Express 7.5。 IIS Express是針對開發者場景最佳化過的IIS 7.5免費版。它適用於ASP.NET Web Forms和ASP.NET MVC 專案類型。
我們認為IIS Express具備了當前整合到Visual Studio內的ASP.NET web伺服器的易用性與IIS的全付功能。 包含:
- 它是輕量級的,容易安裝(少於5M的下載量,安裝迅速)
- 它不需要管理員帳號來從Visual studio執行、偵錯應用程式
- 它實作了一個完整的Web伺服器功能集——包括SSL, URL Rewriting,和其他IIS 7.x模組
- 它支援並實作和IIS 7.x所支援的同樣的可擴充模型和Web.Config文件配置
- 它能與完整IIS Web伺服器以及ASP.NET 開發伺服器並行安裝(互不衝突)
- 它可以使用在Windows XP及以上作業系統上——給你在所有Windows 作業系統平台上提供完整的IIS 7.x開發者功能集。
IIS Express(像ASP.NET開發伺服器)能被迅速從磁碟目錄下啟動去運行一個網站,不需要透過任何註冊、配置步驟。這使得它在開發場景中非常容易啟動和執行。 如果你需要一個輕量級的伺服器,你還能選擇分散式IIS Express。標準的IIS Express EULA現在亦包含轉散布權限。
Visual Studio 2010 SP1增加了對IIS Epxress的支援。 請閱讀我寫的關於VS 2010 SP1和IIS Express的文章獲知它所實現的功能。
SQL Server Compact Edition 4
今天我們還發佈SQL Server Compact Edition 4(又稱為SQL CE 4)。 SQL CE是一個方便資料儲存的免費嵌入式資料引擎。
無需安裝資料庫
SQLCE的使用不需要你運行一個安裝程式或安裝一個資料庫伺服器。簡單地將SQLCE 支援檔案拷貝到你的ASP.NET應用程式的\bin目錄下,就可以將它作為資料庫引擎使用了。 無需安裝或額外的安全權限就可執行。 你不需要有機器上的管理員帳號。 只要將你的web應用程式拷貝到任何伺服器上,它就可以使用。 即使對於執行在一個web宿主環境 (Hosting Environment) 中的中等信任應用程式也是如此。
SQL CE在你的ASP.NET應用程式中的記憶體中運行, 它會在你第一次存取一個SQL CE 資料庫的時候啟動,在你的應用程式終止的時候自動關閉。SQL CE資料庫以檔案形式儲存在你的ASP.NET 應用程式的\App_Data資料夾下。
和現有的資料API一起使用
SQL CE 4能和現有的基於.NET的資料API一起使用,支援一種與SQL Server相容的查詢語法。這意味著:透過SQL CE,你既能使用像ADO.NET一樣的現有資料API,又能使用像 Entity Framework 和NHibernate一樣的更高級的ORMs。這樣你可以使用與目前已知的相同的資料庫程式設計技能和資料API。
支援開發、測試、產品場景
SQL CE現在能用於開發場景,測試場景,和輕量級產品使用場景中。隨著SQL CE 4的發佈,我們已經完成所有確保SQLCE不會在多執行緒伺服器場景(比如ASP.NET)中故障或死結的相關工作。這相對於之前的SQL CE是一個很大的改進——之前的設計針對於只有客戶端的場景,並且封鎖了在web伺服器環境下的運作。自SQLCE 4起,你也能在web伺服器中使用它了。
對SQL CE來說沒有任何許可限制。完全免費。
VS2010 SP1中的工具支援
Visual Studio 2010 SP1增加了對SQL CE 4和ASP.NET專案的支援。請閱讀我寫的關於VS 2010 SP1和SQLCE 4的文章獲知更多關於它如何實作的訊息。
Web Deploy 和 Web Farm Framework 2.0
今天我們還發佈Microsoft Web Deploy V2和Microsoft Web Farm Framework V2。 為將ASP.NET 應用程式部署到不管是單個伺服器還是一個web farm的機器上,這些服務提供了一個靈活而強大的方法。
你可以從我之前發表的文章中獲知更多關於這些功能的訊息:
請瀏覽http://iis.net網站獲知更多訊息並下載。 都是免費的。
Orchard 1.0
今天我們還發佈Orchard v1.0。
Orchard是一個基於社區的免費開放原始碼。 它提供社群外的內容管理系統和部落格系統支援,實現了不需要寫程式碼就輕鬆建立和管理網站(網站所有者可以通過基於瀏覽器的內建Orchard編輯工具客制網站)。請閱讀這些課程獲知關於如何建立和管理你自己的Orchard網站的更多訊息。
Orchard本身是用Razor檢視模板建立的一個ASP.NET MVC 3應用程式(預設使用SQL CE 4進行資料儲存)。希望擴充Orchard網站的客制功能的開發人員可以將它像一個Visual Studio專案一樣地打開並編輯——往上添加新的ASP.NET MVC 控制項、檢視。
WebMatrix 1.0
WebMatrix是Microsoft提供的一個新的免費web開發工具,它提供一系列能在網站開發中很容易實現的技術。 開發人員可以用它透過從一個線上web應用程式空間(包括像Umbraco,DotNetNuke,Orchard,WordPress, Drupal和Joomla等流行的應用程式)瀏覽和下載一個應用程式模板來建立一個新的網站。此外,也支援開發人員從頭開始建立和編寫一個網站。
WebMatrix專注於任務,幫助指導開發人員開發網站。WebMatrix包括IIS Express, SQL CE 4和ASP.NET ——集web伺服器、資料庫和程式設計框架於一體。它還包括內建web發佈支援,易於找到虛擬主機服務商並將網站部署上去。
你可以從我夏天寫的介紹WebMatrix的文章中瞭解更多。請現在就瀏覽http://Microsoft.com/web來下載和安裝它吧。
總結
對於今天的這些發佈,我感覺非常的激動——他們給使用ASP.NET、Visual Studio和Microsoft Web 伺服器實作的網路開發錦上添花。
今天這個分享凝結了很多人的努力。謹此代表我們的整個團隊——祝你們用的開心!
Scott
附:除了寫部落格之外,我現在也用Twitter來即時更新狀態和分享連結。請關注我:twitter.com/scottgu