ASP.NET 5 Beta5 已釋出!

本週我們釋出了 ASP.NET 5 Beta5,您可以於 Visual Studio 2015 RC 內透過 https://nuget.org 直接升級!

VS2015 RC 之前附帶安裝的是 Beta4,您一定和小編一樣迫不急待想升級吧!ASP.NET 5 Beta5 有許多新的功能、新的更新,並進行了一些 bugs 的修復。

首先,您必須瞭解,在 Visual Studio 中包含了 ASP.NET 執行環境 (這是用來執行 Web 應用程式的環境) ,以及 Web 開發工具 (包含支援 HTML/JavaScript 的編輯器,以及新增專案中的範本),而 Beta5 是針對 ASP.NET 5 執行環境 的更新!

ASP.NET 5 可執行於 .NET Framework 和 .NET Core,.NET Core 可執行於 Windows、Azure、Linux 和 Mac,所以現在可以說是安裝並開始使用 ASP.NET 5 執行您的應用程式最好時機。

以下為您統整幾個亮點:

.NET Execution Environment (DNX)

  • 支援 NuGet v3 feeds: 利用新的 NuGet v3 feed 來還原套件絕對是比較快的,趕快加入 https://api.nuget.org/v3/index.json 作為套件來源試試看。
  • 支援新 .NET Target Framework Moniker (TFM): 您先在可以利用 DNX 來建立可攜式 .NET 函式庫,這將可於任何 .NET 環境上執行,並支援您的套件相依性。我們將會在未來的文章中提供更多細節。
  • 在 project.json 中指定語言和版本註釋:那些 nuspec 屬性現在可以在 project.json 檔案中指定。
  • 移除綁訂 JSON.NET 版本: 這是個重大的改變,您的應用程式將不再需要被 DNX 綁訂的相同版本 JSON.NET,一旦 JSON.NET 被呼叫,您不必升級 DNX,就可以直接下載新版本或安裝更新。
  • 新的 IRuntimeEnvironment 服務: 使用新的 IRuntimeEnvironment 服務來取得執行環境的細節,像是 OS、CLR 和 bitness。

ASP.NET 5

  • HttpContext.Connection: 透過新的 Connection property 將可添加連線資訊到 HttpContext 中。
  • 新的本地化抽象方式及中介軟體: 您可以在此範例中看到新的抽象處理方法 >> 本地化範例
  • ASP.NET hosting 統一的終止方式: 之前的 ASP.NET hosting 是按下任何鍵都會終止它,現在我們統一是使用 Ctrl + C 來終止。

MVC 6

  • C# 6 於 Razor 中被支援: 您可以從這裡得到更多資訊 >> C# 6 at MSDN blogs

  • 簡化 MVC 選項並增加 top level 設定: 針對 HTML helpers,我們提供 app-level 的設定,滿足您更多元的設定需求。

  • 新的 JSON helper 在頁面中序列化 JSON 格式: 此功能將讓您可以輕易地連載您的 .NET objects 到 Razor Views 中的 JSON >> @Json.Serialize(Model)

  • 使用 route names 代換 attribute routing 的 token: 您可以使用 route names 來將 route tokens 被使用於 route templates 中,像是

     [Route("Products/[action]", Name = "[actions]Products")]
    public class ProductsController
    {
        public void Add() { }
        public void Buy() { }
    }
    
  • 新的 ImageTagHelper: 新的 ImageTagHelper 將讓您可以透過 cache-buster version number 自動地附加在圖片檔名中,這樣一來您將可以主動地利用您的應用程式快取圖片,像是 - 

     <img asp-file-version="true" src="~/images/my_cool_image.png" />
    
  • Tag helper 支援 binding dictionary 屬性: 現在您可以在 tag helper 中綁定伺服器端的屬性至 dictionary 屬性。例如,AnchorTagHelper透過 asp-route-* 這樣的格式來綁定 route values 以產生連結,就像這樣:

     <a asp-action="Edit" asp-route-id="@index">Edit</a>
    
  • 支援基於伺服器端的屬性值來條件式綁定 tag helpers:現在您可以透過 TargetElementAttribute 指定 tag helper 只在伺服器端有此屬性時才綁定資料。

請務必先閱讀 Beta5 release notes 來了解更多細節及已知問題。在 ASP.NET 5 最終版本釋出前,會有更多的 Beta 版先釋出,最終版 ASP.NET 5 將於 Visual Studio 2015 上市後釋出,我們將盡快帶給您確切的日期。

如果們上述提到,ASP.NET 5 runtime update 將於 Visual Studio 2015 RC 相容,您可以利用 Beta5 runtime packages 和 Visual Studio 2015 RC 開啟、建置並執行 ASP.NET 5 應用程式。

以下為就地升級 ASP.NET 5 Beta5 的步驟:

  • 安裝 .NET Version Manager (DNVM) (這是 Visual Studio 2015 RC 的內建安裝,若您沒有可以從這邊取得)。
  • 從命令列提示字元中設定 DNX_FEED 環境變數的值為 https://www.nuget.org/api/v2
  • 執行 “dnvm upgrade”。
  • 在您的應用程式中更新 global.json 讓它指向 .NET Execution Environment (DNX) beta5。
  • 您的 project.json 也必須指向 beta5。
  • 執行 “dnu restore”。
  • 執行 “dnu build” 並整合您的程式碼到 beta5。

您可以於這裡找到關於 ASP.NET 5 的更多文件和範例。我們希望您可以立即嘗試看看,若有任何問題或建議,請隨時透過我們 GitHub 上的的公共議題追蹤來讓我們知道,感謝您願意嘗試 ASP.NET 5!

若您有興趣的話可以加入我們每週二的 ASP.NET Community Standup,時程和之前的內容都在這裡