.Net core現在可以做什麼?未來發展有前景嗎?

題主是大一學生,用C#寫程序有兩年了,覺得C#真是不錯,但是目前題主用C#寫的程序還僅限於Windows平台,在伺服器上跑的程序還是用Python寫的。前段時間了解到微軟發布了.Net Core可以跨平台,就想了解以下.Net Core現在能夠做到什麼程度,把Windows上的程序(非Winform,大概是Socket伺服器這類)移植到Linux上成本高嗎?


如果是學習的話隨時可以轉.Net Core,正如樓上所說對於大部分程序(非GUI)來說跨平台毫無成本。

但是如果是產品的話建議等CoreCLR 2.0 版本。一方面2.0 的build system 從project.json 切換到了msbuild(.csproj),大一些的程序切換起來會很麻煩。另一方面2.0 版本的核心庫(CoreFX)依賴有變動(到目前都還沒有穩定)。但是,這種等待絕對是值得的,我們測試到2.0 版CoreCLR 有較明顯的性能提升,但具體數值還在變化。


個人看好 .Net Core 的未來發展。

Core面向的是高性能伺服器開發,拋卻了 AspNet 的臃腫組件,非常輕量,但現在的 rc 版本功能還比較弱,各類第三方庫也沒有跟進,可以說還處於發展的初級階段,因此真正未來的情況還要看兩三年後。

基於微軟的 Azure 雲的平台優勢,後期勢必會加入 .Net Core 的支持,未來相信 AWS (特指 Lambda、Beanstalk) 也會加入其支持(現在 Lambda 已經支持 .Net Core 1.0),加上微軟的跨平台戰略,對 Docker 的親和性,對於開發人員也非常友好,所以整體環境來說是健康發展的,未來技術決策時 .Net Core 也有很大的優勢。

因此未來其發展主要看的就是推廣力度及社區支持度,但由於 .Net 系開發者相對於 Java 來說薪資水平要低一些,市場需求也不如 Java 系,因此未來還很難說。

個人現在寫代碼也傾向於把一些邏輯使用 .Net Core 來寫,但是相對標準及現在的功能真的太弱了,未來的正式版微軟將會把 .Net 標準集的功能逐漸加入,也許還會提供 libuv 的 .Net 封裝,方便寫高性能 TCP 應用。

.Net 在伺服器端缺少像 express、spring、hadoop 這類的殺手級應用,有如 go 有 docker 和 kubernetes 支撐一樣;相較於以往微軟對開源的態度,這次社區應該比以往會更熱。

由於 Unity3D、UWP 等技術的存在導致 C# 的接受程度更高,其語法糖及包管理機制也是比 Java 更現代的存在,未來 C# 作為工業級語言的地位也會越來越高。

所以對題主來說,.Net Core 值得學習,值得期待;兩年後也許就是這門技術開始火熱的時候。

風險當然也有,即是你得有心理準備,接受可能較低的薪資水準。

題主喜歡C#,那就一定要堅持下去,因為興趣是最好的老師;然後在現在的基礎上多接觸學習 Linux,熟悉 在 Linux 下的伺服器開發,你會有收穫的!

技術沒有邊界,一法通萬法通,學就對了!


同意樓上說的:「.Net 在伺服器端缺少像 express、spring、hadoop 這類的殺手級應用」,這確實是一個硬傷,儘管大家都在說用Java能做的C#也能做(同樣適合於PHP等語言),但是一些殺手級的應用確實能為語言帶來更多的非理性支持。以前跟一些政府事業單位打交道,有些聽說過幾個技術名詞的領導就指明要用PHP或者Java開發,說是本身是開源的且能運行在開源的Linux上(當然現在.NET core也可以了,不過要深入非技術人員的心還需要推廣幾年),遇到這種不講道理又要別人掏錢的主,你能選擇什麼?

隨著.NET core的開源及最近微軟對開源的親近態度,相信將來會有更多的發展機會。


跨平台幾乎沒成本吧。
net core現在能做的事情包括:
巨大的.net標準庫支持。
http://Asp.net core,可以用來做web mvc程序,也可以寫WEB API。
支持Self host,server有kestrel和weblistener。前者跨平台,後者只支持windows。
EntityFrameworkCore,幫助你訪問數據,現在支持MySQL,oracal,sql server, PostgreSQL,sqllite.
mongodb已經出了支持.net core的client。
rabbitmq也出了支持.net core 的client。
SingalR正在開發之中。
支持web socket server。
支持WCF客戶端。

以後net framework和mono就不會發展了,只剩下net core會不斷前進。
用net core編寫高性能伺服器程序,應該沒什麼壓力。該支持的都支持了,應該也不太會遇到解決不了的問題。
不過在中國這國情下,目前幾乎沒有net core的工作機會。指望net core拿高薪的希望不大。


嗨-博客

找工作

交友聊天室-相見即是緣

愛收藏

留言板

本人寫的小玩意。全都是用http://ASP.NET Core寫的,跑在阿里雲的Linux系統上。

你說.NET Core可以做什麼,一般別的語言能做的它基本上都能做。你說他是否有發展前景,有微軟在保你餓不死。

截圖效果:


已經在生產環境中使用了 http://ASP.NET Core.

不過還有一些 .NET Framework的依賴,比如Entity Framework, 所以還是部署在Windows Server上。Entity Framework Core 已經1.1了, 卻還缺了一些重要的功能,比如Complex Types, Table per Type。一些第三方的庫,比如Topshelf, Masstransit也還在等 .NET Core 2.0的發布,來完全遷移到 .NET Core.

等這些都解決了,就可以從AWS EC2 instance切換到 Docker了。現在即使是Windows Nano Server的image也要800M , 用Linux image大概只有幾十M

PS. 如果有人想跳槽的話,可以私信聯繫我,我們最近在找一個Senior Developer或者Tech Lead.


.net framework遷移到core,其實成本比我想像的要低得多,我還記得是rc2的時候,mondoDB和swagger的驅動就全好了.json庫就更不用說,我把自己原來用的一套基架弄過去,也就花了小半天而已,題主你可以先試試,.net framework是core的超集,你現在就可以開始在framework裡面寫core了.

而且core的http管線處理流程很簡明清晰,看著比之前mvc時代一大串http handle舒服多了,中間件設計有點像express,也很直觀.

至於說前景嘛,反正你現在才大一,不用考慮這麼多,重要的是,把寫程序的感覺培養起來.core的設計很優秀,好好品味,以後即使換其他語言了,也根本沒什麼損失的.

如果題主想轉到jvm陣營,也行,推薦kotlin,上手後轉scala groovy clojure .

java看看就行.


---------2017年11月4日更新-------------

這是基於metronic5.0.3做的

-------------------------

同樣推薦 .net core,同樣可以做業務網站的,看看我的,也是在工作空閑之餘學習做的


我有很多程序都是.net 2.0平台上開發的http://asp.net和命令行程序。因為兼容性好,.net 2.0平台一直沒更換。

.NET Standard 2.0是支持.net 2.0絕多數,這樣可以在linux伺服器上運行程序了。我在linux服務上運行發現穩定性比以前高多了,沒死過一次機。

我的.net程序都是量化交易程序,一般是自己用,也不會有什麼超高並發下的性能問題了,主要是c#開發起來速度比java快,運行速度似乎比python要快點,這類程序的價值在於你的交易思想是能用語言表達出來而不是追求性能,因為高頻交易在國內有昂貴的手續費和印花稅除非券商普通用戶基本不可能用上,做日線上的交易因為t+1一分鐘或一個小時跳出策略結果差別不大。這些代碼能不能掙錢,掙多錢,和你用什麼語言沒有關係(當然好的語言事半功倍),關鍵在於你的交易思想的代碼化。

我覺得.net core用於移植以前的程序挺好的,開發很多程序需要大量時間和投入,一般推薦用mysql資料庫,這樣在linux下兼容性好,在windows下也能運行,數據存儲用redis,sqlite,mysql,mongodb這些通用的平台,一個成熟的量化交易平台必然有大量的代碼,隨著代碼量的增加c#在軟體工程特徵比js/php/python更有表現力,比java更省時間,比c++/c/go更容易開發。

unity3d在ios平台的火爆,c#語言大量應用於遊戲(如王者榮耀、絕代雙驕、爐石傳說、神廟逃亡、仙劍奇俠、穿越火線、時空召喚、全民無雙....),讓微軟看到了c#的跨平台特徵的大量用處,只是需要提供一個運行環境。程序發展到一定程序就會慢慢穩定下來,性能也越來越好,未來還是看好c#,雖然大型電商類應用推薦java,但多數小型程序推薦用c#,如果你的程序發展到了類似京東用java代替c#的地步,你也就不差錢了,到時再換也不遲,c#在中小型應用領域有便捷性,也有產生金錢的力作,現在有了.net core,在開發時注意一下兼容性,完全可以做到跨平台運行,這樣的代碼更有生命力。


最近對這個黑科技產生了興趣:CatLight - Notifier for Developers

注意網頁右下角

Electron + .Net Core你怕了嗎?


線上用RC1支撐著每天百萬級的有效訂單,正準備升到1.0。


java能做的,.net core難道不可以嗎

不要用有些人說什麼開源社區規模語言根基信仰生態...全是狗屁

扯的都是些沒用的

就一簡單能不能的問題

你想幹什麼就能幹什麼,而且開源的東西

搞不定,就有問題

2.0不是發布了嗎,穩得一批


怎麼感覺知乎上那麼多人成天唱衰C#,講真用什麼語言寫代碼真的那麼重要麼,不少程序員都是工作需要什麼就寫什麼,說到底什麼框架什麼語言什麼核都是工具,能幹出多大動靜才是我們程序猿的最終目的不是


準備轉移到.net Core上去,基礎的框架都搭好了,除了事務對象需要想辦法重寫,其他的都已經遷移過去了;

結果被強行壓著從頭搞一套Python的,內心在滴血,總覺得有天要懷疑自己是49年投果黨了。


.net core 大法好。

首先不再依賴mono,獨立可以運行在Linux上,部署方便。

其次性能高效。

脫離了原有的臃腫的架構,更的更為簡潔。

總而言之,算是浴火重生後的產物。

關鍵是!有宇宙第一好用的IDE_(:з」∠)_


http://code68.com 免開發 就是.net core開發的《插件式組裝的》


為什麼都說像express?明顯和koa一個思路啊,各種中間件自由組合


可以學習,微軟軟體設計本身都還不錯。但不要入坑,如果你不是牛人,花同樣的時間在別的語言,回報會更多。連js這古董語言,緩慢進化都越來越興旺。看微軟技術棧被放棄多少了。跟了微軟快十年了,準備放棄了。如果做服務有node.js,有java可以替代。我花時間在core幹嘛,就算core各方面吊打別人,也對我們個人沒什麼意義。


現在.netcore1.0一套代碼不能多個平台運行,

等2.0的版本,性能優化,真正的誇平台開發…


http://demo.siyouku.cn/ 歡迎一起研究學習


還是那句話,得看有沒有類似docker這樣的殺手級應用出現。

有,go這種語言也能拯救一下。

沒有, C#,F#也carry不動。。。


我見過的用 .net搞伺服器的活人不超過三個。。。建議還是別人幹什麼你什麼吧。。。


推薦閱讀:

如何評價 JetBrains .NET IDE 的正式版 Rider 2017.1 ?
VS里有什麼Eclipse里沒有的強大功能?
如何編寫能夠監聽特定程序或全系統所有Http請求的.Net程序?
C#為什麼Random類不做靜態?
關於 C# 中「string + int」的執行機制的疑惑?

TAG:微軟Microsoft | NET | C# | NETCore |