概述
asp.net vNext 也叫 asp.net 5.0,意思是微軟推出的下一個版本的asp.net。可以說是微軟對asp.net的一個比較重大的重新設計, asp.net vNext是一
個比較理想的選擇對於構建現代Web應用程序來說。它為部署到雲端或者運行在本地的應用程序提供了一個優化的開發框架,它的模塊化組件以最小的
開銷讓你可以靈活地構建你的解決方案。
asp.net vNext 包括以下幾個特性:
- 1,新的靈活和跨平台的運行時。
- 2,新的模塊化HTTP請求管道。
- 3,雲計算環境的配置。
- 4,MVC,Web Api, Web Pages 相結合的統一的編程模型。
- 5,不通過編譯工程即可看到代碼改變的效果。
- 6,並行的.net framework 版本。
- 7,可以自我托管或者托管到IIS上。
- 8,vs 2015的一些新的工具。
- 9,在github上開源。
這些改變簡化了開發,托管,維護並且更加針對性的去構建現代應用程序。接下來我們就看看asp.net vNext 到底有哪些變化吧。首先我們需要下載
Visual Studio 2015 Preview。下面我就詳細說說這些特性吧。
1 新的靈活和跨平台的運行時
在過去 .net framework 只能單一的安裝在windows 平台下,每一次.net 的發布都會加入很多的新特性但是卻很少去刪除已有的特性,這也導致了
.net framework 的大小越來越大。這保證了安裝了.net framework 的windows機器可以只是各種類型的.net 程序。但是也意味着每一個應用程序
所依賴的功能並不會在實際用到過。
所以asp.net vNext 提供了三個更靈活的可以運行的運行時:
1,Full .NET CLFR
這是visual studio 默認的運行時,它提供了完整的API這是向后兼容的最好選擇。
2 Core CLR (cloud-optimized runtime)
Core CLR 是一個完全模塊化的運行時,對於構建asp.net vNext 項目來說是一個比較理想的選擇,組件被重新設計,所以我們可以在程序中靈活的
選擇我們所需要的組件。可以通過 NuGet來添加。Core CLR 大約有11M,但是full .NET CLR 要有 200M。Core CLR 可以隨着程序一起發布。不同版
本的Core CLR可以共存。
3 Cross-Platform CLR
我們可以對linux 和 mac os x發布Cross-Platform CLR ,該運行時你可以在mac 和linux 設備上開發和運行.net 程序。
可以在程序中設置我們需要的運行時:
首先新建一個mvc 項目 ,然后右鍵-》屬性 如圖:

2 可以托管到任何一個地方
asp.net vNext 確保我們開發的程序可以托管在IIS或者自我托管到我們自己的程序進程中,如果我們選擇運行時是Core CLR,在發布包中就包括了
我們程序所需的所有依賴包。所以完全不用去管操作系統是否安裝了.net framework。任何類型的設備或者托管平台都可以運行我們的程序。以后我
們就不用非要發布到IIS上了,脫離了對IIS的依賴。
3 不同版本的.net 可以共存
過去我們的程序運行在服務端的時候是依賴於單個的服務器上安裝的.net的版本,所有的程序都必須使用相同的.net 的版本,但是如果升級這個版
本的話可能會造成一些麻煩,因為不能保證如果升級的話程序會不會在新的版本里能正常的運行。Asp.net vNext 解決了這個問題,我們可以在程序
里制定每個程序運行所需要的.net 版本。 所有的版本都可以共存,但是注意在程序里需要設置你的運行時是 core CLR。
4 簡化依賴
Asp.net vNext 有一個新的輕量的管理依賴的方式,不再像以前那樣添加assembly 引用,只需要通過Nuget 包來管理即可。然后編輯項目中現有的
project.json(相當於之前的web.config) 文件即可。添加的時候會有只能提示,可以制定版本,如圖:

5 統一 MVC,Web Api 和 Web Pages
在以前的asp.net 版本中 MVC,Web Api 和 Web Pages有些東西是重疊的,但是實現這些東西的時候我們需要分別的去實現。比如說,web api 和
mvc 都有路由機制但是不同的是 mvc 的routing 類是在System.Web.Mvc.Routing 命名空間里,但是api 的卻是在System.Web.Http.Routing命
名空間里。web pages 和 mvc 都有razor 語法但是只有一些類是兼容的。
在 asp.net vNext中 MVC,Web Api 和 Web Pages 都被合並到統一的mvc 6 框架中,移除了之前重疊的東西。使開發更加的簡單,我們不需要再考
慮我們的代碼是基於mvc web api 或者web pages 的,因為他們都統一起來了。值得注意的是 目前的2015 preview 中 mvc 和 web api 已經統一
,web pages 的 統一可能需要正式版或者稍后發布的版本中。
6 http 性能的改善
asp.net vNext 的新的http 請求管道更加的精簡和快速,該管道是模塊化的,所以你只需要添加你所需要的組件,減少了管道的冗余,程序也會有
更好的吞吐量,同時也支持OWIN。
7 雲計算
asp.net vNext 的項目結構更加有利於發布到雲上,vs 2015 提供了一個新的環境配置系統替代了原來的web.config。它可以接受多種文件傳來的
值(Json xml 和其他的環境變量),
8 依賴注入
我們可以使用IOC 去注冊依賴在asp.net vNext 中,依賴注入有利於環境提供正確的服務。
9 開源
眾所周知 asp.net vNext 在github(鏈接)上 已經開源了,我們還可以fork 這個項目。開源的好處我就不說了,呵呵。
10 靈活的開發環境
vs 2015 提供了輕便的開發體驗,改變我們的代碼保存修改,不需要重新的編譯,然后刷新瀏覽器,我們就可以看到這個變化。(注意:不是按f5 而是
按 ctrl+f5 )步驟是 ctrl+f5 運行項目 > 修改代碼 保存修改> 刷新瀏覽器 ok 如圖:


以上應該是asp.net vNext 主要的特點了,以后我還會分享,謝謝。
