一、.net core的起源
談到.NET Core,就不能不提它的前身.NET。當年Java風頭正盛,微軟也對Java青睞有加,Windows平臺上的Java虛擬機就是微軟依據jvm標準開發的,據稱是當時性能最佳的Java虛擬機。然而,微軟有自己的小算盤,試圖將Java與Windows平臺捆綁,增加一些Windows特有的功能。Sun公司對此不滿,導致雙方關系破裂,微軟隨后推出了.NET。.NET從誕生之初就借鑒了Java的許多特性,并在語言特性和窗體開發等方面逐漸超越了Java。Java在1.6版本后發展緩慢,后來也在語言特性上借鑒了.NET,這部分原因也歸咎于Sun公司的表現不佳。https://www.php.cn/link/250aa0985d9e292b68c8841c3c95aa10
盡管.NET一直發展良好,并且出現了如wpf、Unity3D等具有競爭力的框架,但在一些大型項目中,尤其是互聯網公司,.NET并不受歡迎。這是因為.NET不是開源的,也不是跨平臺的,這導致了以下問題:
成本:選擇.NET意味著需要選擇visual studio和Windows Server,許可證費用是不可忽視的成本。 生態:缺乏社區的貢獻,.NET難以孕育出優秀的框架。 人才:無法吸引一線互聯網公司的優秀工程師,因為他們更傾向于使用Java、php等。 雖然有Mono這樣強大的框架,可以讓.NET在Linux上運行,但這還不夠,因為Mono只能發揮.NET的部分功能。此外,隨著容器技術的興起,.NET與Windows的強依賴性使得其難以適應docker等新技術。總之,迫于形勢,微軟推出了.NET Core。
二、.NET Core與.NET Framework的區別 .NET Core是.NET Framework的開源且跨平臺版本。雖然.NET Core是.NET Framework的開源版本,但微軟不能同時維護兩個不同的分支,一個在Windows上運行,另一個在Linux(unix Like)系統上運行。因此,微軟抽象出了一個標準庫,.NET Core和.NET Framework都必須實現這個標準庫的API。這樣,.NET Core、.NET Framework和xamarin就成了三兄弟,分別為不同的平臺服務。
現在.NET Core 2.0的預覽版本已經發布,.NET Core 2.0基本相當于.NET Framework 4.6.1。從2016年6月發布1.0版本到2017年6月發布2.0版本,僅用了一年時間,達到這種程度,微軟的努力可見一斑。
三、學習.NET Core需要做哪些準備? 基礎的編程經驗(.NET、Java、Python等皆可) Windows / Mac作為開發環境(建議使用Windows,因為開發環境是Windows,環境不同操作會有差異) ide:Visual Studio 2017 / visual studio code Linux基本使用(推薦centos、Ubuntu) 虛擬機安裝教程:https://www.php.cn/link/db34fbf0a135038c9c9102e028c614be CentOS快速上手:https://www.php.cn/link/dad0eb8ef352b656351ef2c8285ad148 Ubuntu快速上手:https://www.php.cn/link/e0b48316d133d5b9badb5fd83ac49dd0 如果實在不具備搭建Linux環境的條件,Windows也可以,但不推薦。