.NET Core 2.0 是您的最好選擇嗎?

本月14日,微軟發布.NET Core 2.0 正式版,它的發布意味著.NET Core平臺更加成熟,也預示其更美好的未來。本文將分析.NET Core 的特性以及未來發展方向,為開發人員選擇在何種平臺開發程序提供參考。

1.1. Net Core 2.0 特性

1.1.1. NET Core平臺是開源的

.NET Core是.NET Foundation的一部分,如下圖:

.net Foundation

.NET Foundation是一個圍繞.NET開發框架,并不斷創新的社區。微軟的另一大進步就是使ASP.NET Core開源。由于它是一個開源平臺,您可以更好地控制使用和修改它,并且其代碼的透明度可以為您自己的基于.NET Core的項目提供信息和靈感。此外,您和您的伙伴可以更快地更正錯誤和規避安全風險,使.NET Core更安全。.NET Core更穩定,因為該平臺工具的代碼將始終保持公開。整個框架源和包可以在GitHub站點上找到。

1.1.2. 跨平臺

除了使其成為開放源碼外,微軟已經不遺余力地使其跨平臺。開發人員將能夠在Mac,Linux或Windows系統上開發應用程序。事實上,它還引入了專門為Mac和Linux用戶提供的新的代碼編輯器“Visual Studio Code”。

1.1.3. 靈活部署

.NET Core的這一功能可幫助開發人員靈活部署:作為應用程序(FDD-框架依賴部署)的一部分,或作為全新的安裝(SCD-獨立部署) 。FDD允許您使用較小的部署包最小化內存和磁盤空間的使用,而SCD則可以完全控制項目部署(包括.NET Core庫和運行時)。

1.1.4. 模塊化架構

此功能可幫助開發人員根據項目的要求僅使用必需的軟件包。模塊化架構有助于升級其跨平臺兼容性。因此,開發人員現在可以設計輕便,高效和強大的應用程序。與以前的版本相比,新版本相對更輕,更小,這有助于加快開發過程。對文件系統進行了較大改變,將有助于搭建健壯的開發環境。

1.1.5. 命令行工具

與以前的版本相比,新版本更輕,更小,這有助于提高開發效率。為了搭建健壯的開發環境,文件系統作了較大變化。可以在名為DNVM或Dot Net版本管理器的命令行訪問每個可能的產品方案。該命令行可以方便地更新和配置.NET運行時。這是.NET執行環境的補充。命令行的另一個好處就是它與平臺無關,開發人員不需要一次又一次地學習工具鏈。一旦熟悉其使用,就可以在任何其他支持的平臺或界面上使用相同的方式。

1.1.6. 云支持

ASP.NET Core 是率先開發出保持云集成的功能。因為它支持基于云的配置,所以云端初始化設置允許開發人員將其應用程序方便發布到云端。

1.2. NET Core 后續發展路線圖

1.2.1. 已知主要版本的發布時間表

版本 發布時間
1.0 RC1 2016年2月15日
1.0 RC2 2016年5月16日
1.0 2016年6月27日
1.1 2016年11月16日
2.0 2017年8月14日
2.1 2017第四季度

1.2.2. NET Core 發展歷程

** RC1 **

2016年1月 ASP.NET 5 改名 ASP.NET Core 1.0 ,所有名字變動如下圖:

名稱變化

1.0 RC2

.NET Core橫跨各平臺:,也就是說所有基于.NET Core 構建的應用模型(比如:ASP.NET Core, Console Apps 和 class libraries)不僅可以運行在Windows系統之上,同時也可以運行在OS X 和 Linux系統之上。

1.0

微軟團隊提供的下載中(https://www.microsoft.com/net/download)包含了 .NET Core Runtime, .NET Core SDK, .NET Core VS Tooling (包括 Web 開發工具), .NET Core Windows Server Hosting, 以及更新的 NuGet ASP.NET Core 1.0 和 Entity Framework Core 1.0 包。微軟還發布了用于創建 .NET Core 項目的 Visual Studio 和 Visual Studio Code 擴展,以及 .NET Documentation(https://docs.microsoft.com/zh-cn/)。

1.1

.NET Core 1.1 發布,這個版本支持有效期三個月,后續有變動。
11/16 .NET Core 1.1 RTM 版發布。對應發布 ASP.NET Core 1.1 、EF Core 1.1。Visual Studio for Mac 也一同發布。可以通過Visual Studio 2015, Visual Studio 2017 RC, Visual Studio Code and Visual Studio for the Mac 創建 .NET Core 1.1 的應用。

2.0

受Visual Studio 2017 15.3 版本支持,并引進了新的 Razor Pages 用戶界面設計范例。對于ASP.NET Core來說,這個版本主要簡化了部署,提高了預加載頁面性能.人們更關注配套的.NET Core 2.0平臺帶來的變化:

  • 降低入門及學習的障礙,.NET Standard 2.0通過標準化共享API,可以輕松地跨.NET Framework,.NET Core和Xamarin共享代碼。
  • .NET Framework 4.6.1支持.NET Standard 2.0,.NET Standard 2.0 添加了許多.NET Framework 4.6.1 支持的API,以及.NET Standard 2.0 自己特有的API
  • .NET Standard 2.0 添加了 14,994 個.NET Framework 4.6.1已經支持的API
  • .NET Standard 2.0 只有 43 個 .NET Framework 4.6.1不支持的API
  • .NET Standard 2.0 將是.NET Standard 1.6的超集。 換句話說,.NET Standard 2.0和1.x不會發生突破性的變化。
  • .NET Framework兼容模式: 允許.NET Standard項目引用.NET Framework庫,利用.NET的歷史遺產,便于開發平臺從.NET Framework遷移到.NET Core.

最終可以理解為.NET Core 2.0 將是等價于 .NET Framework 4.6.1,同時既有的.NET Framework代碼可以很輕松的移植到.NET Core平臺

1.3. NET Core 或 .NET Framework ?

1.3.1. 概述

.NET Framework支持Windows和Web應用程序。今天,您可以使用Windows Forms,WPF和UWP在.NET Framework中構建Windows應用程序。ASP.NET MVC用于在.NET Framework中構建Web應用程序。

.NET Core是為所有操作系統(包括Windows,Mac和Linux)構建應用程序的新型開源和跨平臺框架。.NET Core支持UWP和ASP.NET Core,UWP用于構建Windows 10目標Windows和移動應用程序,ASP.NET Core用于構建基于瀏覽器的Web應用程序。通過下圖您能看到.NET Core和以前的.NET Framework的主要功能區別:

frameworkvscore

同樣的ASP.NET Core 與 傳統的 ASP.NET 也有較大區別,如下圖所示:

與asp.net應用差別

1.3.2. 選擇.NET Core 還是.NET Framework

產品需求 .Net Core/Framework
使用Windows Forms和WPF的Windows客戶端應用程序 .NET Framework
使用到WCF,WF等庫的應用程序 .NET Framework
需要使用的第三方.NET 庫或NuGet包不能用于.NET Core .NET Framework
需要使用不可用于 .NET Core 的 .NET 技術 .NET Framework
需要使用不支持 .NET Core 的平臺 .NET Framework
預配置的環境和系統 .NET Framework更好
對Dockers容器支持 都支持,但.NET Core更適合
微服務 都可以,但.NET Core更適合
跨平臺需求 .NET Core
需要高性能和可擴展的系統 .NET Core
需要按應用程序級別選擇并行的 .NET 版本 .NET Core

1.4. 總結

.NET Core平臺自2016年誕生到現在發展很快,這不稀奇.在它出生前微軟就積累的多年.NET Framework經驗.從以上我們能看出微軟的策略:

  • 第一步最重要的是實現跨平臺
  • 第二步是使其具有并超越當前.NET Framework的能力
  • 第三步是實現一統各平臺開發和運行環境,包括各端(服務器,手持設備,IOT等等)

目前看第一步完成度很高,第二步完成了70%(按API數量實現).第三步也一直在做.我們能從微軟的發展路線中看到一個美好的前景,即用.NET的語言給各種設備寫一遍程序就足以應付產品需求,這是多方共贏的局面。我們也由衷的希望.NET Core有一個更加美好的未來。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容