[中文翻譯] ASP.NET 5 概觀 (ASP.NET 5 Overview,原作 Tom FitzMacken 2014/11/12)

ASP.NET 5 & Web Form 4.6 & MVC 6 & Web API & Visual Studio 2015
[中文翻譯] ASP.NET 5 概觀 (ASP.NET 5 Overview,原作 Tom FitzMacken 2014/11/12)
ASP.NET 5包含下列特點:
**全新的、彈性且跨平台的運作(runtime)。
**全新的、模組化的HTTP Request管線(pipeline)。
**即時可用的雲端環境設定。
**一致化的設計模組,包含MVC、Web API與Web Pages
**不需重建專案就能看到前後版本的差異。
**完整對應(side-by-side).NET Framework各版本。
**能在IIS或自建的主機(self-host)上運作。
**Visual Studio 2015的全新工具。
**GitHub上的開放原始碼(源碼)。

 

 

原文出處:http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview

    以下中文翻譯如果有不明確的地方,建議以原文為準。圖片也來自原文網站。

    如果您需要引用,請註明中文譯者:MIS2000 Lab.,並保留URL超連結到本文章

    http://www.dotblogs.com.tw/mis2000lab/archive/2014/12/03/aspnet_5_overview_webform_46.aspx

    簡體中文 http://www.cnblogs.com/mis2000lab/p/4142436.html

    台灣MSDN Blog http://blogs.msdn.com/b/msdntaiwan/archive/2014/12/04/asp.net5-overview.aspx

......................................................................................................................................................

 
原作:Tom FitzMacken (2014/11/12)
 
譯者:MIS2000 Lab. (www.dotblogs.com.tw/mis2000lab/
 
 
ASP.NET 5簡介
 
ASP.NET 5是一個精鍊的.NET堆疊(lean .NET Stock)用來建構現代化的網路應用程式。我們從最底層一步一步建構起來,並且提供各種應用程式一個最佳化的開發架構,您可以建構雲端的應用或是在本機上運行兩者都可。.NET Framework包含了各種最小耗能(minimal overhead)的模組化元件,讓您可以靈活地建構各式解決方案。
 
ASP.NET 5包含下列特點:
  • 全新的、彈性且跨平台的runtime。
  • 全新的、模組化的HTTP Request管線(pipeline)。
  • 即時可用的雲端環境設定。
  • 一致化的設計模組,包含MVC、Web API與Web Pages(譯者註解:這是使用Razor語法撰寫的網頁程式,跟ASP.NET Web Form不相同)
  • 不需重建專案就能看到前後版本的差異。
  • 完整對應(side-by-side).NET Framework各版本。
  • 能在IIS或自建的主機(self-host)上運作。
  • Visual Studio 2015的全新工具。
  • GitHub上的開放原始碼(源碼)。
 
我們為ASP.NET 5所做的改變都是源自客戶的要求與回饋。這些改變都是為了讓網路應用程式的開發、主機部屬(hosting、託管)與維護更加簡便。
 
您的舊版應用程式不需任何異動就可以在新版本ASP.NET上面運作。然而,想要用到ASP.NET 5新功能的優點,您將需要把既有的程式碼轉移到新的架構上。 你會發現ASP.NET 5和早先版本的ASP.NET之間有很多相似之處,所以程式碼轉移只需修正一些具體的議題,而不用全面改寫應用程式。
 
 
下載Visual Studio 2015 Preview
 
請由此下載Visual Studio 2015 Preview(http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs 下載VS 2015預覽版),關於VS 2015的新功能可以參閱 http://www.visualstudio.com/en-us/news/vs2015-preview-vs
 
 
 
 
為何重新設計ASP.NET?
需要更彈性、跨平台的 runtime
 
過去,.NET Framework是單一、兼容並蓄的(all-encompassing)完整安裝。隨著.NET的每一個版本的演進,功能只有新增卻很少刪除,因此該架構的容量不斷激增。這種做法確保了安裝.NET的每一台Windows主機可以支持所有類型的.NET應用程式,但它也意味著每個應用程式沿用了許多它未曾用到的功能。
 
如果一種.NET的技術需要重大更新,即使你並沒有直接使用這部分的.NET,您也會收到一個通知建議您進行更新。你必須決定是否要安裝此更新,過程中可能忍受伺服器的中斷運作,或是您忽略這次更新,希望恰巧沒用到本次更新的部分。
 
ASP.NET 5為您提供了更大的靈活性,能在下列三者中運作情境下執行:
 
1. 完整的 .NET CLR 
完整的 .NET CLR是Visual Studio中預設運作的專案。它提供了整個API集合,是為了各種版本向下相容的最好選擇。
 
2. Core CLR(雲端最佳化的運行時) 
Core(核心)CLR是一個精鍊、完全模組的runtime,用在ASP.NET 5專案上。這CLR已被重新設計成元件,以便您可彈性地包含你需要的部分在應用程式裡面。您可以透過NuGet添加元件。當你完成之後,你的應用程式只用到需要的功能即可(不必包山包海地納入全部功能)。通過重新分解runtime為各自單獨的元件,因為每個元件的更新可以有其自己的時程,我們可以更迅速地提供某些需要改進的元件(譯者註:個別更新,不需要等到全部改進後才發表)。如此一來,核心的Core CLR十分精簡,只有11MB大小,而 "不是" 完整的200MB .NET CLR。該核心CLR可以隨著您的應用程式進行部署,而不同版本的核心 CLR可以side-by-side地運作(這兩種優點在下面更詳細地描述)。
 
3. 跨平台CLR 
未來,我們將會發布跨平台的runtime在Linux和Mac OS X作業系統上。將來發佈時,這些版本的runtime將開發並在Mac和Linux設備上運行.NET應用程式。上述的跨平台CLR事宜,我們將與Mono社群緊密合作。待它發表時,您將可以使用Mono CLR作為跨平台開發。欲了解更多信息,請參閱 Develop ASP.NET vNext applications on a Mac(譯者註解:或參閱台灣微軟新文章 http://blogs.msdn.com/b/ericsk/archive/2014/12/05/run-aspnet-5-on-mac.aspx 
 
預設的情況下,新的Visual Studio專案會使用完整的.NET CLR。您也可以定義Core CLR在專案的設定屬性裡面(如下圖)
 
譯者註解:您可以到這個網站,看看幾張圖片,就能理解上文提到 .NET Core 與 完整版(Fully)的差異
 
 
 
無所不在的Host
 
ASP.NET 5允許您可以部屬您的應用程式在IIS或自己的主機(self-host)上面運作。當你鎖定(確認)Core CLR以後,你可以為每一份即將部屬的應用程式,綁定專屬的軟體套件。因此,您的應用程序和它所依賴的套件均是完全獨立(自給自足的,self-contained)的,不再依賴於系統既有(事先安裝好)的.NET版本。不久的將來,任何類型的設備或主機平台都能執行您的應用程式。
 
這樣的新功能為您提供更多的自由。我們仍然建議IIS是主機的最佳選擇,但在某些情況下,你可能需要用到不同的主機平台。現在,您只需部署您的專案到該主機上頭。您的主機屬性不再綁死在開發的架構上面,反之亦然。
 
如果想要更多的例子,可以參閱 Create a Web API in MVC 6
 
 
完整對應(side-by-side)不同版本的.NET Framework
 
當一台伺服器上的應用程式依賴於一個單一的、完整安裝的.NET Framework時,所有的應用程式必須執行同一版本的.NET才行。考慮是否要升級到新版.NET Framework時,可能造成你的不安。也許,你想讓一些應用程式使用最新的.NET版本,但你無法確定是否所有的舊版應用程式都可以跟新的.NET一起運作。
 
幸運的是,ASP.NET 5解決了這個問題。您可以自行定義「部屬的軟體套件」內的相關性,所以你可以為「每個應用程式」定義它需要的.NET版本。你可以得到最新版應用程式帶來的好處,並可以輕易地讓某些應用程式搭配舊版本來執行。各種不同版本.NET可以side-by-side地運行而且沒有任何問題。要運行不同版本請您務必鎖定Core CLR。(譯者註解:您可以參閱這篇文章與圖片,解釋得很清楚。)
 
 
簡化依存性(Simplify dependency management)
 
ASP.NET 5引薦了一個新的、輕量化的方式來管理專案的依存性(dependency)。你不再需要在專案中個別「加入參考」(add assembly references),相反地只需要透過NuGet就能管理這些外掛的元件。您可以藉由的NuGet Package Manager添加新的NuGet軟體套件,或者您可以編輯JSON文件(如project.json檔)來控管專案中使用的NuGet軟體套件與版本。要添加其他的外掛套件,只需輸入的NuGet套件名稱和版本編號到project.json檔案裡面即可(如下圖)
 
( 譯者註解:下面的操作需使用VS 2015的「專案(WebApplication)」,並挑選「ASP.NET 5」才有以下功能。)
 
 
在Visual Studio 2015中,智慧選字系統(IntelliSense)也能找到NuGet軟體套件的關鍵字,如下圖。
 
 
前述的project.json檔案只包含您想加入專案中的NuGet套件。如果添加的NuGet套件跟其他軟體套件互相依賴(彼此相關),這些相關的套件也會被載入,但不會列在project.json檔裡面。這種作法讓你的project.json檔更簡潔、也更易於管理。如果你從project.json檔移除了某幾個NuGet套件,與其相關套件也會被刪除 (前提是:沒有其他的套件也引用到它們)。
 
即使你沒有安裝Visual Studio,(上述的)JSON格式也能讓您更輕鬆地管理軟體套件(外掛)之間的依存關係。你可以在任何一種文字編輯器打開project.json文件並進行修改; 如更新部署到雲端中的應用程式,他們的軟體套件依存關係。
 
 
消除MVC、Web API與Web Pages之間的重複
 
過去的MVC、Web API與Web Pages有許多重疊的特性,但這些功能的實作卻是各自獨立的(譯者註解:Web Pages是使用Razor語法撰寫的網頁程式,跟ASP.NET Web Form不相同)。例如,MVC和Web API均提供路由(routing)的功能,但MVC路由的類別卻放在System.Web.Mvc.Routing命名空間裡,而Web API的卻放在在System.Web.Http.Routing命名空間內。 或者,Web Pages和MVC皆使用Razor的語法,但有些NuGet套件分別只相容(MVC或Web Pages)其中一種。
 
在ASP.NET 5,MVC、Web API和Web Pages將被合併成一個 "單一架構",名為MVC 6。這樣的合併消除了重複的架構,使您更輕鬆地開發使用這些程式架構框架的應用程式。你不需要為了是否在MVC,Web API或Web Pages前後文關係(Context)中,再去撰寫重複、類似的程式碼了。
 
在VS 2015 Preview預覽版裡面,MVC與Web API已經在MVC 6統一了。Web Pages將會再下一個MVC 6的釋出版本中加入。
 
 
改善HTTP效能
 
ASP.NET 5引入了一個新的HTTP Request管道(pipeline)使其更加精簡和快速。這條管道是模組化的,所以你可以只添加您需要的組件即可。透過管道的減少消耗,你的應用程式將體驗到更好的傳輸量(throughput)。新管道仍支持 OWIN
 
 
雲端立即可用
 
當你新建一個ASP.NET 5專案,此專案的先天結構就是為了"部署到雲端環境"而生。 Visual Studio 2015提供了一個全新的環境設定系統,它取代了既有的Web.config檔。新系統讓您能夠從各種來源(如JSON,XML,或環境變數)要求(索取)已命名的值。你為每個環境指定的值,或是在部署以後能讓您的應用程式只需讀取正確的值。
 
我們還提供診斷和追蹤工具,使你更容易地發現在雲端裡面的應用程式問題。
 
 
整合dependency injection
 
Dependency injection(DI)也是內建在ASP.NET 5的功能,您可以使用Inversionof Control(IoC)容器來註冊這些依存性。Dependency injection(DI)有利於對環境提供正確的服務。欲了解更多信息,請參見 Dependency Injection in ASP.NET vNext
 
 
開放源碼與透明
 
所有的ASP.NET 5的程式碼都放到 GitHub上面了。不僅是程式碼可用,而且GitHub repositories也融入我們的開發之中。你可以清楚地看到.NET進行了哪些更改,每次變更以後,您可以下載程式碼並把修正後的結果提交 (submit) 給我們。
 
在GitHub上開發ASP.NET 5,我們讓您更容易理解程式碼,了解我們的預期方向發展,有助於增強和建置您想要客制化的ASP.NET功能。
(譯者註解:.NET開放原始碼的專案列表,請看 http://www.dotnetfoundation.org/projects
 
 
更靈活的開發環境
 
Visual Studio 2015為ASP.NET應用程式提供了一個輕量級的開發者經驗。您只需改變你的程式碼、存檔、然後刷新瀏覽器畫面(如下圖)。就可以看到在Web瀏覽器的修改成果,而無需重新建置(re-build)專案。
 
 
如上圖,倘若你改變的程式碼是在Web專案中、或是在您的專案中引用的類別庫裡面。你還是得執行(CTRL + F5)專案,而不是在debug模式下看到這些動態地的變化。
 
Visual Studio使用羅斯林(Roslyn)編譯器  啟動了這個動態的編譯。你仍擁有所有編譯架構的結構和權力,但開發經驗感覺更像是一種直譯型(Interpreted)語言。
 
 
Visual Studio使用者介面(UI)中的每一個功能都可以對應命令行(command-line)的操作。您可以在使用者介面和編寫command-line script之間輕鬆轉換。
 
最後,您可以使用其他的程式碼編輯器來完成 ASP.NET 5專案。
 
 
Web Form怎麼了?
 
您可以繼續開發Web Form應用程式,並相信:Web Form是.NET的Web開發平台的重要組成部分。我們將繼續致力於增加新功能,以Web Form提高開發經驗、並保持最新網路實務的技術。
 
Web Form 4.6包括Web Form以下新的特點:
 
您既有的Web Form應用程式將繼續地運作,在不變更在IIS的情況下以.NET 4.6執行。但是您不能使用Web Form應用程式在cloud-optimized(針對雲端最佳化的)runtime上面。
 
有關新功能的 Web Form 4.6,請參閱 Web Forms 4.6(請到此觀賞影片,影片可選中文字幕。有關Web Form在Visual Studio 2013 Update2近期變化的資訊,請參閱 Improvements to ASP.NET Web Forms
 
別害怕,還有 .NET Framework 4.6

雖然有了 .NET Core、ASP.NET 5 這些東西,但如果還不想跟得那麼新、或是現行的專案無法這麼輕易轉換到新的架構下,還是可以繼續在 full-stack 的 .NET Framework 上來建構各種應用程式,包括 WPF、ASP.NET 4.6 等等,在這條路線下,還是能夠用一切熟悉的架構、工具來運行應用程式,所以 Connect(); 上依然宣佈了 .NET Framework 4.6 Preview,而 WPF 也會繼續改良,如果你還在觀望 .NET vNext 的發展,這裡還是提供了你待著的環境,不必擔心一夕之間什麼東西都要砍掉重練了!

 

 
 
以前的應用程式呢?
 
你可能會擔心隨著ASP.NET 5的版本不斷改變,需要重新編寫以前的應用程式。別擔心!你在早期版本建立的ASP.NET應用程式將繼續與新的.NET架構一起運作。如果你不需要用到ASP.NET 5的新功能,則不需要更新或重新部屬(安裝)這些應用程式。
 
例如,你的應用程式,目前使用Web Form、MVC 5、Web API 2、SignalR 2、Web Pages 3或Entity Framework 6,都可以在完全不經修改的情況下,完整獲得新架構支援。但是,你很可能需要使用「完整的.NET CLR」來執行這些舊版本的應用程式,因為只有這個(完整版)CLR提供與早期版本完全相容。
 
在cloud-optimized(針對雲端最佳化的)runtime上面提供了很多限制型的API的介面。使用cloud-optimized runtime時,應用程式必須只使用這個runtime專用的類型和成員。
 
想知道你的應用程序可不可以在cloud-optimized runtime執行嗎?請使用 API Portability Analyzer工具來偵測一下。此工具會告訴你哪個平台上的應用程式可以針對並避免應用程式移動到另一個平台時會產生的相依性。它可以幫助你了解需要改變的範圍,並提出新的類型或成員代替那些已經不被支援的軟體套件。
 
MVC 6和SignalR 3的應用程式使用新的HTTP pipeline,所以它們不相容於使用System.Web的應用程式。要升級現有的應用程式到MVC 6或SignalR 3,您必須透過Visual Studio 2015新建一個新專案,然後你的程式碼移植到新專案裡面。移植到新版本時,可能需要修改一些已經不支援的程式碼。
 

 

......................................................................................................................................................

本文後續仍有一些相關文章與影片,請看

原文出處:http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview

    以上中文翻譯如果有不明確的地方,建議以原文為準。圖片也來自原文網站。

    如果您需要引用,請註明中文譯者:MIS2000 Lab.,並保留URL超連結到本文章

    http://www.dotblogs.com.tw/mis2000lab/archive/2014/12/03/aspnet_5_overview_webform_46.aspx

    簡體中文 http://www.cnblogs.com/mis2000lab/p/4142436.html

    台灣MSDN Blog http://blogs.msdn.com/b/msdntaiwan/archive/2014/12/04/asp.net5-overview.aspx

 

這裡有一張圖片,我覺得講得很清楚。

如果把下圖左側的 ASP.NET 4.6改名為 Web Form 4.6或許更清楚了。

 

 

這份簡報的圖片也解釋得很清楚  http://www.slideshare.net/mbaric/introduction-to-aspnet-5-44980909

 

關於 ASP.NET 5 我另外翻譯一篇相關文章:

 [中文翻譯] ASP.NET 5 簡介(Introducing ASP.NET 5,原作ScottGu 2015/2/13)





 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程教學,遠距教學 (Web Form 約 51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (ASP.NET MVC 約 135hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.tw  或  school (at) mis2000lab.net

 (1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A 

 (2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I 

[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm  。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b  


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

.........   facebook社團   https://www.facebook.com/mis2000lab   ......................

.........  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)。

...................................................................................................................................................... 

ASP.NET MVC  => .NET Core MVC 線上教學  ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講   事先錄好的影片,並非上課側錄!   觀看時,有如「一對一」面對面講課