在 Visual Studio 2015 發行中的 ASP.NET 4.6 與 ASP.NET 5 beta 5

許多 .NET Web Development and Tools 部落格的讀者及參與 ASP.NET Community Standup 的人都知道這天要來了 -- 我們在 Visual Studio 2015 發行的同時推出了 ASP.NET 4.6 開發框架及工具,除了 ASP.NET 4.6 之外,我們同時也在這次的發行中加入 ASP.NET 5 beta 5 執行階段與函式庫,在這些新版本中包含了許多很棒的功能,接下來就讓我們一起深入瞭解到底有哪些重要的新功能吧!

ASP.NET 4.6 -- 比您想像得更棒

我們推出了既有 ASP.NET 4.5.2 的更新,包含在 Windows 及 IIS 上運作的執行階段,這些作業系統或 Web 伺服器的設定都與過去一樣,所以您還是可以繼續使用 Web Forms、MVC、Web Pages、Web API 及 SignalR 這些技術來建置網站。事實上,這些新的開發框架的新版本分別為:

  • ASP.NET Web Forms 4.6
  • ASP.NET MVC 5.2.3
  • ASP.NET Web Pages 3.2.3
  • ASP.NET Web API 5.2.3
  • ASP.NET SignalR 2.1.2

您可以在我們的部落格上找到這些開發框架的細節,接下來讓我們看一些程式碼範例。

Web Forms 模型繫結支援方法回傳 Task

模型繫結(model binding)在 Web Forms 中是一項新的技術,而就算頁面已經標記 async="true" 它還是會同步執行。在這次發行的版本中,您可以在方法中使用 async 關鍵字並且回傳 Task 物件,所以在 post 回頁面時不用再等待資料庫的插入或更新的操作。

更多的範例可以參考這篇部落格文章

啟用 .NET 編譯器平台

在更新後的 .NET 編譯器平台("Roslyn")所提供的新語言特色在 ASP.NET 中也可以使用了,您可以在 web forms 的標籤、razor 範本以及 code-behind 檔案中使用這些功能,Web Forms 專案現在預設會引入 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 套件,這讓 web forms 專案可以預先編譯,並且交付更快的專案成果。

HTTP/2 的支援

在 Windows 10 及 ASP.NET 4.6 中目前加入了下一代 Web 通訊協定 HTTP/2 的支援,根據 HTTP 工作小組的工作內容,這並不是重新發明一個通訊協定,而且所有的方法、狀態代碼、以及語意都維持與過去的 HTTP 協定相同,而不同的地方為:

  • 使用二進位傳輸而不是純文字傳輸
  • 完全多工操作,而不是依序及等待的資料傳輸方式,這表示您網站的圖檔、樣式表、scripts 及其它靜態檔案都可以同步並行傳輸。
  • 與伺服器的連線可以平行讀取資源
  • 使用表頭壓縮來減少傳輸量
  • 伺服器可以主動 "推送" 回應至用戶端快取

您可以觀賞下列影片瞭解 ASP.NET 4.6 支援 HTTP/2 的優點。

身份識別與驗證的更新

ASP.NET 4.6 範本使用 Open Id Connect 中介軟體來進行 Azure Active Directory (Azure AD) 的身份驗證,這讓透過 Azure AD 進行身份驗證的程式碼更簡單了。除此之外,在新建專案時若您選擇了「個別用戶身份驗證」的選項,專案範本將會使用 ASP.NET Identity 2.2.1 來產生對應的範例程式碼來進行兩階段驗證以及社交網路的登入。

在 App_Start\IdentityConfig.cs 中,您可以發現下列這段兩階段驗證的程式碼:

其中 EmailServiceSmsService 可以設定透過 Email 或簡訊來傳送訊息,在這個例子中它不會做任何事,所以使用者可以一般登入進行驗證。

社交網路登入的部份會隱藏在 AppStart\Startup.Auth.cs 範例程式碼的註解中:

只要簡單地將需要的部份取消註解,並且填入必要的資訊就可以直接使用了。

更多的細節可以參考 ASP.NET Identity 2.2.1 發行公告的部落格文章

JSON 編輯器的改良

JSON 編輯器在這次的更新中有很顯著的改良,像是:

  • JSON Schema 驗證 - 目前我們使用 JSON Schema draft v4 specification 來進行 JSON 格式驗證。
  • 針對 bower.json 及 package.json 等用在 bower 及 npm 套件管理的設定檔案加入 IntelliSense 的支援。
  • 重複屬性驗證。
  • 支援 SchemaStore.org - 一些實用的 JSON Schema 檔案開源集合,任何關聯到 SchemaStore.org 上 schema 的 JSON 檔案都會加入 intellisense 及驗證的支援。

圖 1: 整合 ShemaStore.org 的 JSON Intellisense

圖 2: Bower 套件 Intellisense

您可以參考下列影片來看 JSON 編輯器的支援:

HTML 編輯器的改良

HTML 編輯器加入了幾個使用文字編輯器來開發 Web 的開發人員所喜愛的功能,像是:

  • 支援雙重大括號  {{ ... }} 來提供更好的用戶端範本格式,這確保在大括號內的內容不會被當成 HTML 來處理,而且編輯器也可以標記起來。這對於使用 Angular、Handlebard、Mustache 等這類使用雙重大括號來做範本的開發人員來說有很大的幫助。
  • 加強支援 web component 以及自定元素,自定元素不會再被編輯器標成錯誤語法,並且支援 <link rel="import"> 的標籤來使用 web components,而且編輯器還能為這些 web components 提供 intellisense 並且找到定義的區段。
  • 加強支援 angular 表示式及屬性,在 intellisense 的選單中就會出現 angular 的圖案來表示支援的語法。
  • Bootstrap CSS 類別的 intellisense 支援,如下圖所示:

圖 3: Bootstrap CSS 開發框架 Intellisense

JavaScript 編輯器改良

我們在 JavaScript 編輯器中加入了下列功能:

  • AngularJS 的 intellisense 支援 angular controllers, services, factories, directives 以及 animations。
  • 新的 JavaScript 語法(ECMAScript 6)包括 classes, arrow functions, 以及 template string。
  • 新的程式碼導覽列。
  • 支援使用 JSDoc 格式來作文件註解,並且整合進 intellisense 中顯示。
  • 當傳入一個物件實體進函式時,intellisense 會根據 JSDoc 的內容來顯示建議,如下圖所示:

圖 4: JavaScript 編輯器對 JSDoc 及 Intellisense 的支援

支援 JSX (ReactJS)

在編輯器的功能需求上,許多人希望能加入 .jsx 的支援,現在已經能在 Visual Studio 2015 的 JavaScript 編輯器中得到很好的 JSX 支援,我們會持續與 Facebook 中負責 react.js 的團隊合作,提供更好的 react.js 開發體驗。

圖 5: ReactJS 語法亮度支援

Azure Web App 相容性

由於 ASP.NET 4.6 是全新的產品,Azure Web App 正在測試是否完全相容這個新版本,一旦我們確認 Azure Web Apps 可以完全運作 ASP.NET 4.6 的應用程式,並且提供相同、高等級的效能,我們就會公佈相容性的消息,屆時會公佈在 Microsoft Azure 官方部落格上。

ASP.NET 5 beta 5 支援

ASP.NET 5 是一個用來開發現代化網站的一個簡潔的 .NET 技術,這個重新開發的 ASP.NET 在初期設計時就考量到現代化網站的支援,並且能夠運行於不同的平台,以適應不斷變化的 web 開發技術。

ASP.NET 5 包含了下列特色:

  • 新的輕量級要求管線(request pipeline)
  • 可以運行在 IIS 或是自行提供服務
  • 建置於新的 .NET 執行環境(DNX),所以可以運行於完整的 .NET Framework ,或是為雲端平台優化的 .NET Core 上。
  • 可以在 Windows, Mac 及 Linux 跨平台執行
  • 所有函式庫都透過 NuGet 來安裝升級,就連執行環境也一樣
  • 搭配 ASP.NET MVC 6 - 一個一致的 Web UI 及 Web API 的 Web 開發框架。
  • 以環境變數為基礎的設定,方便無縫移轉至雲端環境。
  • 使用依賴注入模式。
  • 新的 Visual Studio 專案系統及高生產力的工具操作體驗。
  • 全部都透過 .NET Foundation 開源於 GitHub 上

Visual Studio 2015 包含了 ASP.NET 5 beta 5 的套件,這些套件還在預覽階段,所以並不建議使用在正式環境中,您可以在 GitHub 上看到各個發行版本記錄問題或修正的討論。

ASP.NET 5 團隊也在 GitHub 上發佈了到正式釋出的時程表,如果您想在正式環境或應用程式中使用 ASP.NET 5,請務必關注這項消息。

您可以在它們的部落格上看到 ASP.NET 5 beta 5 釋出的細節

除此之外,您也可以在 YouTube 上關注 Community Standup 的影片,每週關心 ASP.NET 5 的新發展。

總結

我們很高興在 Visual Studio 2015 中推出最新的 Web 開發工具,我們團隊也很興奮能與您一起打造更酷炫的工具,期待能夠針對開發工具的部份聽到更多您的意見回饋、使用體驗、部落格文章等。如果您還沒開始使用,請到 VisualStudio.com 然後下載 Visual Studio 2015 安裝使用。

本文翻譯自 Announcing ASP.NET 4.6 and ASP.NET 5 beta 5 in Visual Studio 2015 Release