ASP.NET 5 Beta5來了(翻譯)

在6月30日微軟發佈了ASP.NET 5 Beta5,咱們能夠從http://nuget.org上獲取Beta5 的packages。html

隨着VS2015RC發佈的ASP.NET 5的版本號是Beta4,因此你必定想在你的項目裏使用這個更新。Beta5上不但修正了以前的一些問題並有了不少改進,並且還新增了不少功能。git

很重要一點,咱們應該知道有ASP.NET的運行時(用來運行你的網絡應用)和Visual Studio上Web 工具(好比HTML、JavaScript編輯器和新文件對話框)。Beta5是對ASP.NET 5運行時的更新。github

ASP.NET 5 能夠運行在全功能的.NET庫和核心庫。.NET核心庫可以運行在Windows,Azure,Linux和Mac上。是時候開始安裝beta5並應用到你的ASP.NET 5項目中去。json

下面是Beta 5的一些亮點:windows

.NET執行環境(DNX)api

  • 支持Nuget v3。
    使用Nuget v3的路徑能夠更快地下載packages。嘗試添加https://api.nuget.org/v3/index.json做爲package源。
  • 支持全新的.NET目標框架監測器(TFM)。
  • 在project.json中能夠設置語言和發佈說明的連接
  • 消除了對JSON.NET的固定版本要求:即再也不要求你的應用程序使用和DNX一致的JSON.NET版本,你能夠選擇新發布的JSON.NET而不須要升級DNX的版本號。
  • 新的IRuntimeEnvironment服務。使用新的Service能夠獲取到運行時具體信息,像OS,CLR等。

ASP.NET 5服務器

  • HttpContext.Connection
    經過HttpContext的新加Connection屬性能夠得到鏈接的信息。
  • 新增本地化的抽象和中間件
    你能夠在本地化的Sample裏發現這些東西的使用。
  • 統一終止ASP.NET宿主環境的快捷鍵爲Ctrl+C
    以前按任意鍵便可終止ASP.NET宿主環境的,如今統一終止快捷鍵爲Ctrl+C。
MVC 6
  • 在Razor支持C# 6
    你能夠經過MSDN上C# 6 瞭解C# 6的新特性。
  • 簡化了MVC的選項設置,添加了頂級配置
    如今有了應用層的設置,能夠用來爲HTML helpers配置各類不一樣的設置。
  • 在視圖中可使用JSON Helper來序列化數據模型
    該功能可讓你在Razor view中很是容易地序列化你的.NET對象成JSON格式:
    @Json.Serialize(Model)
  • 在Route標記中可以使用通配替換
    [Route("Products/[action]", Name = "[actions]Products")]
    public class ProductsController
    {
        public void Add() { }
        public void Buy() { }
    }
  • 新的ImageTagHelper
    <img asp-file-version="true" src="~/images/my_cool_image.png" />  
  • Tag Helper支持綁定字典屬性
    如今你能夠在TagHelpers中綁定服務器端的attributes到字典屬性。好比,AnchorTagHelper利用名字格式爲asp-route-*的attributes來設置路由值。
    <a asp-action="Edit" asp-route-id="@index">Edit</a>
  • Tag Helper支持基於服務端attributes設置的條件綁定
    你能夠利用TargetElementAttribute中Attributes屬性來指定當前TagHelper應用到擁有某些attributes的tag上。好比AnchorTagHelper類的定義以下:
        [TargetElement("a", Attributes = ActionAttributeName)]
        [TargetElement("a", Attributes = ControllerAttributeName)]
        [TargetElement("a", Attributes = FragmentAttributeName)]
        [TargetElement("a", Attributes = HostAttributeName)]
        [TargetElement("a", Attributes = ProtocolAttributeName)]
        [TargetElement("a", Attributes = RouteAttributeName)]
        [TargetElement("a", Attributes = RouteValuesDictionaryName)]
        [TargetElement("a", Attributes = RouteValuesPrefix + "*")]
        public class AnchorTagHelper : TagHelper
        {
            private const string ActionAttributeName = "asp-action";
            private const string ControllerAttributeName = "asp-controller";
            private const string FragmentAttributeName = "asp-fragment";
            private const string HostAttributeName = "asp-host";
            private const string ProtocolAttributeName = "asp-protocol";
            private const string RouteAttributeName = "asp-route";
            private const string RouteValuesDictionaryName = "asp-all-route-data";
            private const string RouteValuesPrefix = "asp-route-";
            private const string Href = "href";
    
            ...
        }
    

    從上面能夠看出,該TagHelper會應用到A tag上,而且這個tag上須要有asp-action, asp-controller, asp-fragment, asp-host, asp-protocol, asp-route, asp-all-route-data和asp-route-*這些attributes中一個或一個以上,不然該tag就會綁定到該TagHelper。好比網絡

    <a href="http://www.cnblogs.com/liontone/">上善若水</a>
    

    就不會被應用上AnchorTagHelper。框架

你們能夠在這裏看到比較關於Beta5的詳細的信息以及關於Beta5已知的問題。後續也會有更多的beta版本發佈知道最終正式發佈爲止。asp.net

Beta5和Visual Studio 2015 RC是兼容的,你能夠利用Visual Studio 2015 RC來打開、編譯和運行基於Beta5運行庫的ASP.NET 5應用。

在Visual Studio 2015RC上升級到Beta5須要作一下幾步:

  • 若是以前沒有安裝,請安裝 .NET Version Manager (DNVM)。若是已經安裝了Visual Studio,請忽略這一步,直接進入下一步。
  • 設置系統環境變量DNX_FEED值爲https://www.nuget.org/api/v2
  • 執行「dnvm upgrade」,升級dnx的版本號到Beta5
  • 更新應用中的global.json文件的sdk版本號到"1.0.0-beta5"(DNX)
  • 更新應用的依賴庫的版本號到beta5
  • Restore新版本的依賴庫
  • 編譯應用並根據beta5的須要作相應的migration.

在beta5還有一些break changes,更詳細的信息請參考Beta5 Release Note,但願你們可以喜歡Beta5。

相關文章
相關標籤/搜索