天天看點

ASP.NET 5系列教程 (一):領讀新特性

ASP.NET 5 是用于創Web應用的架構,相對于以前的版本它更加簡練、靈活,本次釋出的版本徹底優化了應用開發架構,你可以輕松部署應用到雲端或其他平台,它包含了最小的子產品化元件,是以確定你在建構複雜解決方案的同時保持靈活性。

近期微軟釋出了ASP.NET 5.0,本次釋出的新特性需求源于大量使用者的回報和需求,例如靈活的跨平台運作時和自主部署能力使ASP.NET應用不再受限于IIS、Cloud-ready環境配置降低了雲端部署的門檻,另外源碼開放無疑也是一個重量級驚喜。這些更改會有助于建立易于開發、部署、維護和現代的Web應用程式。相信看到以上幾點作為.NET程式員的你已經迫不及待體驗ASP.NET 5 的新功能了,下面我們就來看下這些新特性。

ASP.NET 5 是用于建立Web應用的架構,相對于以前的版本它更加簡練、靈活,本次釋出的版本徹底優化了應用開發架構,你可以輕松部署應用到雲端或其他平台,它包含了最小的子產品化元件,是以確定你在建構複雜解決方案的同時保持靈活性。

ASP.NET 5 包含以下特性:

·靈活的跨平台運作時

·新的HTTP子產品請求管道

·Cloud-ready環境配置

·統一了包含 MVC、 Web API 和 Web 頁面的程式設計模型

·無需重新編譯即可檢視更改效果

·并行的.NET Framework 版本

·自主部署或IIS部署能力

·内嵌于Visual Studio 2015中的新工具

·GitHub開放源碼

使用舊版本開發的應用程式不需要做任何修改,即可直接在 ASP.NET 5上運作。然而,如需使用ASP.NET 5 新功能,你需要将現有代碼移植到新的架構。ASP.NET 5 和早期 ASP.NET 版本基本相同,是以你隻需要把精力集中到新功能開發上,節省了你的代碼遷移時間。

ASP.NET 5系列教程 (一):領讀新特性
以上概括性的介紹了ASP.NET 5的新特性和增強功能。

本篇文章中我們将重點闡述以下幾點:

  • 為什麼重新設計 ASP.NET ?
  • 靈活的跨平台運作時需求
  • 靈活的部署環境
  • 多Framework版本并行使用
  • 簡化依賴關系管理
  • 合并MVC、 Web API 和 Web 頁
  • 增強HTTP性能
  • Cloud-ready 部署能力
  • 內建依賴注入
  • 開源
  • 提供靈活的開發環境
  • 關于Web Forms
  • 早期版本Framework開發應用相容性

為什麼重新設計 ASP.NET?

早期 .NET Framework 版本一直作為單一且全面的整體進行安裝,每個新版本都包含了新功能和幾乎所有早期功能,而鮮有删減,這就不可避免的造成Framework的體積的增長。這種模式確定了安裝了新版 Framework的Windows系統可以相容所有早期版本的.NET 應用,但是也意味着每個應用都将運作在一個龐大備援的架構上,即使很多功能在實際項目中沒有使用。

相信每位.NET程式員都遇到過以下尴尬的決策場景:當收到Framework有更新釋出時的通知時,是放棄使用新增功能保持應用的靈活性還是使用新特性而忍痛讓你的Framework更加龐大!

為了應對以上場景。ASP.NET 5提供了三種運作時,你可以根據實際需要靈活選擇:

1. 全功能.NET CLR

全功能.NET CLR 是Visual Studio工程預設運作時狀态。它提供所有 API,是保持應用向下相容性最佳選擇。

2. 核心CLR (cloud-optimized runtime)

核心 CLR 是精簡的完全子產品化運作時。這個CLR已經被重新設計成元件便于你僅包含項目中實際使用的的.NET特性。元件作為NuGet 包添加。一旦完成引用,你的應用僅依賴于所需的功能。通過分解運作時為元件,我們可以更快的更改每個元件,因為每個元件都有自我更新機制。核心CLR隻有11M大小,相對于200M的全功能CLR無疑将使應用更加輕便。核心CLR可以伴随應用一起部署并且不同的核心CLR可以并行運作。

3. 跨平台CLR

微軟将釋出針對于Linux 和 Mac OS X 釋出跨平台運作時。這意味着你的.NET應用具備了在Mac 和Linux 裝置上運作的能力。微軟将和 Mono 社群合作完成這一新特性。在釋出之前,你可以使用Mono CLR用于跨平台開發。

建立 Visual Studio 工程預設使用全功能 .NET CLR,可以在工程屬性頁面更改為核心CLR。

ASP.NET 5系列教程 (一):領讀新特性

靈活的部署能力

ASP.NET 5 允許部署應用到 IIS,或脫離IIS進行獨立部署,當設定目标 Framework 為Core CLR時,即可以使用部署包中的依賴項來部署應用。是以,你的應用自成一體,再不依賴于全功能的.NET 版本。該應用可以在任何裝置和平台中運作應用。

這對.NET平台開發人員無疑又是個驚喜,部署應用不在局限于IIS,當然微軟仍然推薦你使用IIS部署應用,但是如果需要在不相容IIS的平台部署應用,你就可以使用該新特性進行操作。

後續文章中我們會釋出如何建立不依賴于IIS 的MVC6應用,敬請期待。

多版本.NET并行使用

早期版本的.NET Framework,你将時刻面臨是否更新版本的選擇,一方面你希望使用更新的功能,另一方面你将為舊版本開發的工程是否可以平滑遷移到新版 .NET Framework 而感到糾結。

微軟在 ASP.NET 5中改善了以上問題。在使用核心CLR前提下,你可以在部署包内定義依賴關系,是以你可以為每個應用程式指定.NET版本。 舊版應用可以平滑運作,同時你也可以使用新版本開發應用。是以在ASP.NET 5中多個版本的.NET應用是并行的。

ASP.NET 5 推出了一種全新的輕量級依賴關系管理機制。你不再需要在應用中添加引用,而是使用引用NuGet 包代替。你可以通過NuGet Package 管理器添加NuGet包,或者你可以編輯包含NuGet包清單和版本資訊 JSON 檔案(project.json)來實作引用。project.json 檔案用于列舉應用使用的 NuGet 相關資訊,如需添加其他引用,直接在該JSON檔案中添加即可。

ASP.NET 5系列教程 (一):領讀新特性

在 Visual Studio 2015中,根據智能提示可以快速的添加NuGet 包。

ASP.NET 5系列教程 (一):領讀新特性

project.json 檔案僅包含直接添加到工程中的 NuGet 包。如果添加引用檔案外的包,這類依賴項将僅僅被加載,而不會顯示到project.json 檔案中。這種機制可以使project.json 檔案輕便易管理。

JSON格式檔案使你可以在沒有安裝Visual Studio情況下,輕松管理引用。當然,可以使用任何文本編輯器打開和編輯project.json。

合并MVC, Web API 和Web 頁

早期版本中, MVC、Web API 和Web 頁一直在使用着不同的方式實作着相同的功能,可以說是殊途同歸。例如, MVC 和Web API 都提供了路由,但是MVC routing 類在System.Web.Mvc.Routing 命名空間中,而Web API 中類似的類在System.Web.Http.Routing 命名空間中。再舉一個例子, Web 頁和 MVC 都是有Razor 文法, 但是仍然包含在相同功能的不同NuGet包中。

在 ASP.NET 5 中, MVC、Web API和and Web 頁将被整合到同一架構-MVC 6。這就意味着移除了重複功能子產品,使開發應用變得更簡單。

在預覽版本中, MVC and Web API 首先被合并到MVC 6中。 Web 頁面将後在後續釋出版本中添加。

ASP.NET 5 提供了一個精煉快速的HTTP 請求管道,該子產品化管道允許你僅添加需要的元件,通過減輕管道開銷,應用将有更好的吞吐量。

雲部署能力

當你建立一個新的 ASP.NET 5 工程,這個工程預設就已經具備輕松部署到雲端的結構。Visual Studio 2015 提供了全新的環境配置系統代替了Web.config 檔案。新的系統允許使用多種檔案類型(例如JSON, XML, or 或環境變量)存儲鍵值對,是以你可以在任意環境中輕松指定值或擷取這些值。

同時,ASP.NET 5提供了檢測和跟蹤已部署雲應用問題的工具。

依賴注入被内置于ASP.NET 5中。你可以使用 IoC容器注冊依賴項。依賴關系的注入促進了正确服務環境的提供。

ASP.NET源碼已經釋出到GitHub中。不僅僅提供了目前版本源代碼,微軟也承諾會同步更新GitHub中的源碼,你可以及時檢視到ASP.NET 的變化,可以下載下傳并且送出更改到GitHub上。

這有助于你了解ASP.NET 代碼及技術走向,同時你可以定制自己的ASP.NET。

Visual Studio 2015 提供了一個輕量級的ASP.NET 開發環境。無需重新編譯工程,隻需要儲存更改代碼,就可以在浏覽器中檢視最新結果。

ASP.NET 5系列教程 (一):領讀新特性

你更改的代碼可以在Web工程或者由目前Web工程中引用的類庫中。

Visual Studio 使用 Roslyn 編譯器允許動态編譯。確定你擁有完整、強大的編譯架構的同時,擁有趨近于解釋語言的開發體驗。

每個Visual Studio 的使用者界面都具有對應的腳本,是以你可以輕松在UI界面和腳本之間切換。

最後,可以使用其他代碼編輯器編輯ASP.NET 5 工程。

關于 Web Forms

微軟一直緻力于提供給使用者新的功能去改善開發體驗,你仍舊可以開發Web Forms 應用,并且在Web Forms 4.6 添加了以下新特性:

  • HTTP 2
  • 異步綁定模式
  • Roslyn CodeDOM 編譯器

早期版本開發的 Web Forms 應用無需任何更改可以直接在 IIS .NET 4.6架構下運作。不過,無法使用ASP.NET 5 核心CLR新特性。

例如目前有使用Web Forms、 MVC 5、 Web API 2、SignalR 2、 Web Pages 3 或 Entity Framework 6 開發的應用,你僅需設定目前運作時版本為全功能運作時,無需做出任何代碼級别修改即可在 ASP.NET 5中運作。 但是, 核心CRL是ASP.NET 5新特性,如果你希望應用具備該運作時的功能,那麼需要做出一定的修改。微軟提供 API Portability Analyzer 工具可以判斷目前應用是否可以使用核心CRL。這個工具還可以分析目前應用可以運作在哪些平台,以及哪些因素阻止其不能在特定平台上運作。同時也會提示所需要的更改以及使用哪些新增接口來替換。

MVC 6 和 SignalR 3 應用使用新的HTTP管道,是以它們無法與使用System.Web 接口的應用相容。如果需要更新已存在應用到MVC 6 或者 SignalR 3,你必須使用Visual Studio 2015 建立新工程,再導入原有工程,導入過程中需要修改不支援的代碼片段。解讀完ASP.NET 5的新特性,才能更好地利用這些新特性進行開發,同時還可以借助一些開發工具,ComponentOne Studio for ASP.NET 是ASP.NET平台上的一整套完備的開發工具包,包含的Web窗體控件、MVC scaffolding模闆以及HTML5/JavaScript頁面元件,僅通過幾行代碼就可以在系統中實作豐富的功能。

原文位址:ASP.NET 5 Overview

本文是由葡萄城技術開發團隊釋出,轉載請注明出處:葡萄城官網

繼續閱讀