.net core 到底怎麼樣?


今年剛轉到.net core,以前做golang開發的。用了.net core最大的變化就是頭髮變多了(這是個玩笑話,因為巨硬把很多東西都給開發者封裝好了,入門跟著官方文檔走就好了)。官方提供的輪子很強大,配合"宇宙無敵"IDE,Vs開發。大部分的業務邏輯基本一次通過。只是工資相對不是很高。個人覺得對於創業初期團隊和小團隊非常適合(主要是基本可以做到全棧),當然大公司也非常適合。騰訊前段時間還在招.net core工程師,不過演算法卡的死死的。


說實話,netcore這個平台好的沒的說。

但是由於歷史原因,很多人還懟net停留在很多年前的階段。netcore已經開源好幾年了,單論語言而言,c#絕對是一門很好的語言,而且性能上一點也不差。

netcore學習起來很容易,入門很簡單,配合宇宙第一IDE,很適合小白。

無論是什麼語言,語言後期只是工具,就像騰訊,招聘還是卡在演算法上,所以要想學習好編程,還得注重哪些看不到的東西,比如演算法,數據結構 等。當內容境界達到了,任何語言都不是問題了。


作為一名腳踏兩三條船的老軟體開發者和一線老師,我雖然主講Java系列課程,對Java技術還算比較熟悉,但我做自己的個人網站時,用的仍然是http://ASP.NET Core 而不是Spring全家桶,這算不算用腳投票?

.NET前些年真的是陷入低谷,原先用.NET的許多公司紛紛放棄.NET平台,工作機會和薪資收入都不行,導致很多.NET開發者轉投其它陣營。

近兩三年我感覺又開始回暖了,想學習.NET技術的人又開始多起來。我覺得主要原因在於.NET Core的推出和不斷完善,本身確實表現不錯,在微軟沒作啥廣告的情形下,又吸引來一波用戶。

性能啥的就不說了,有專門的機構和專家對各技術進行測試和對比,.NET Core表現不俗,而從個人開發體驗角度來看,「用.NET Core的感覺,比Java好多了」。


.NET Core現在很棒呀,2016年正式發布,截止目前是.NET Core3.1正式版本,還出了好幾個.NET5的預覽版了。下面羅列一些寶藏圖片,從方方面面說明下.NET Core的發展現狀:

1 開源跨平台的.NET Core有著完整的生態,有各大頂級大廠的支持

2 海量的使用者,尤其是.NET Core發布後飛速增長

3 前景廣闊,國內多大廠也都在向.NET Core遷移,還在持續增加

4 走向統一的.NET5平台,將打通7大應用方向

5 極致的性能,友好的開發體驗,在開發者中最受歡迎

當一項技術即將騰飛時,在很多地方都能見到端倪,好事兒會越來越多的,請積極擁抱.NET Core,一起見證未來!


.NET Core非常優秀!從2016年發布至今已經多個正式版本,最近的LTS版本為.NET Core3.1,國內外都算得上火爆的開發平台,據微軟官方數據,3.1發布後3個月在github上就增加了100w開發者。

下一個版本是.NET5,打通了7大方向,走向統一,準備召喚神龍了。

感覺你對.NET Core應該不太了解,我這裡發個解讀.NET Core和.NET5的視頻,可以了解下。


一句話:相當靠譜!

建議看下微軟2020年Build大會,看看大佬都發了些啥出來。

官方的簡介:」.NET Core 是一個通用的開放源代碼開發平台。 可以使用多種編程語言針對 x64、x86、ARM32 和 ARM64 處理器創建適用於 Windows、macOS 和 Linux 的 .NET Core 應用。 為雲、IoT、客戶端 UI 和機器學習提供了框架和 API。「;

.NET Core 具有以下特性:

  • 跨平台 :可在 Windows、macOS 和 Linux 操作系統上運行。
  • 開放源代碼: .NET Core 框架是開放源代碼,使用 MIT 和 Apache 2 許可證。 .NET Core 是一個 .NET Foundation 項目。
  • 現代: 它實現了非同步編程、使用結構的無複製模式和容器的資源調控等現代範例。
  • 性能: 通過各種功能(如硬體內部函數、分層編譯和跨度&)來提供高性能。
  • 跨環境一致: 在多個操作系統和體系結構(包括 x64、x86 和 ARM)上以相同的行為運行代碼。
  • 命令行工具: 包括可用於本地開發和持續集成的易於使用的命令行工具。
  • 部署靈活: 可以在應用中包含 .NET Core 或並行安裝它(用戶或系統範圍安裝)。 可搭配 Docker 容器使用。

是不是看起來就很高大尚,而且激動人心。

剛好今天整理了.NET技術棧的文章,可以了解一下:

編碼者頻道:.NET技術棧,大腿終於又變粗了?

zhuanlan.zhihu.com圖標


寫點反對的觀點

簡單介紹一下背景,前微軟擁躉,從c#入門,使用時間從.net2.0到4.5 b/s和c/s都接觸過,unity mono也做過遊戲項目,windows phone 8時代在appstore的遊戲拿過編輯推薦

目前全棧python/js擁抱linux

唯獨就沒接觸過.net core

如果是語言和框架的比較,可以在知乎上看問題的數據嘛,瀏覽/關注/回答就能看出一個框架的熱度

至於提到github上的數據,我是想說,屁股決定腦袋,github的爸爸是微軟,給你安排上有毛病嗎?

對於學生來說,微軟的東西千萬別學新的,咱們先不看微軟這十來年成功的項目,數數涼了sliverlight/F#/mono/windowsphone全系,哪個開場的時候不是轟轟烈烈,涼的時候凄凄慘慘,學了找不到飯碗,請慎重

對於初級coder,用啥不用啥,在企業還不是leader一句話,各個企業內部大量的歷史遺留項目,你打算搞個.net技術棧插進去?你離職了誰維護去?

對於外包/架構師來說,恭喜,你至少對項目的技術路線有決定權,但是現在幾乎任何一種通用語言都能完整適配業務需求,但是每一項.net core 都不是最棒的,此外,考慮到招人和長期的維護,參考上文,微軟的東西,可能說涼就涼...

當然,怕同行挖牆腳,選.net core沒毛病,出去了找不到同業(攜代碼團隊潛逃除外)

對於培訓機構,應該是最愛微軟的了,天天鼓搗新玩意,恰飯真香,整幾套教案,開發個教務系統,幫著美化美化簡歷就能大幾千入賬,豈不美哉

最後講個筆者的親身經歷,之前參與過一場面試,面試者是淘寶的資深架構師,他描述在某知名沒跑路P2P公司擔任首席架構師職位的時候,最重要的工作就是推進企業整體從.net架構轉向java...原因是就是企業初創時圖省事,選了.net 後來規模上來了,連mssql的伺服器和license都買不起了

提一個日常開發中的苦惱,接入第三方服務的東西裡面,包含完整文檔和demo里,中小廠支持率就不敢保證了

我的觀點就是:圍觀圍觀,等大廠出手了再說,別看他們說什麼,看看他們做了什麼,等aws,阿里雲,騰訊雲等一票雲平台都開始推基於.net core的 serverless 服務里web這邊就算穩定了,至於其他的,我用vscode比vs多的多,我覺得輕度的c/s結構nodejs就挺好用了...

———————分割線———————

看到不少知友的評論,準備補充一點個人想法

其實提出反對的原因在於,還是看到一些社會上不太好的現狀,首先就是培訓機構的人誤導,筆者因為工作原因,近幾年擔任了很多場的技術面試官,什麼層級都有,其實對於學生和初級開發者來說,其實要堅信一句話,

「選擇比努力更重要」

其實,現在的編程語言已經進入到高度同質化的時代,說在圈裡內卷一點都不過分,.net core 在各個領域並未展現出壓倒性的優勢,於此同時,在職場和工業生產領域,整個微軟技術棧,市場份額普遍不高,但是對於培訓機構來說呢,他們的屁股就是決定了,他們只是要賺你的錢,你學會了這個,他再教你學新的,你看到了未來(他們給你畫的餅),他看中了你的學費,所以,有限的時間,有限的生命,先找到你的目的,要找到工作,要恰飯,要升職加薪,面向人民幣編程,就要先了解行業特性,而不是語言特性

求職準備之前,最後先錨定行業和行業龍頭企業,混一些開發者群,了解一下龍頭企業的技術棧,再有針對性的學習,行業內的秘密

「大多數行業內部產品,都是一套代碼的多版本二次開發」

很有可能行業前幾名的代碼都長的差不多,但八成不是.net core

既然.net core這麼容易上手,等項目組裡準備換語言了,買本工具書,對著文檔用兩天就差不多了

強烈建議非cs專業的學生和初級程序員去B站白piao一下cs專業相關本科課程,比交錢的速成班強多了

對於獨立開發者/創業公司,更多還是要考慮未來的前景,產品如果爆發了,風投進來了,項目組人員需要急速擴張完成金主爸爸交給的kpi,那個時候考慮的就不是語言優美,而是我到底還需要多少人天的工作量

實際情況是,大多數情況下語言無關

———————分割線——————

今天早上接了一個外企獵頭的電話,不知道是上哪翻出我好多年前的簡歷,隨便扯了一通,上海特斯拉,了解到他們確實有在用 .net core (並非全部,java和golang棧多一點)和樓下評論區一位外企朋友的說法比較吻合,上圖

不過有幾個點 大家看看吧

Experience with docker and kubernetes

估計也都上了全套的devops了吧,那就說明基本上全生產環境都在linux下了,emmm...

結合微軟最近出的wsl...

打個比方...蘋果為了兼容安卓應用,在某代ios里嵌入了安卓內核,可以直接安裝apk並運行應用,估計下面評論就是

蘋果藥丸吧

好好學.net core吧 .net framework就靠你傳承了

其他還有一家 好像也是新加波的一家製造型企業需要.net core 其他的目前沒聽說,有了再更


看到評論區有小夥伴提到財付通的 net core的問題

我不認識財付通里的人,但是我在知乎用站內搜索搜了一下結果...

emmm...結果果然很有趣

首先這是應該是17年的舊聞了...技術這種東西變化速度很快...17年到20年,說不定當時推動用net core人都離職了也說不定(純個人推測)

然後在知乎宣傳這件事的人是誰...嗯 一個培訓機構...賣課的...屁股決定腦袋...大家自己想想吧...不願意搜結果的 我放幾張圖 大家慢慢品

8月29號更新

最近接手了一個.net core項目,也算是正式上手了.net core的東西,這個項目用到了

ASP.NET Core Blazor?

docs.microsoft.com

整個項目還在評估中,不過看了一眼Blazeor的寫法就給我看樂了,第一印象就是,哎這套路咋跟php那麼像,php我接觸的不多,用過一小段時間的yaf,這不就是代碼文件套模版么,好像似乎又回到asp那個時代的老路了,不過這回好在對於不太愛寫javascript的小夥伴們開心了,可以C#一站到底了,等項目評估以後再更,事情越發向有趣的方向發展了

9月13日更

項目上線應用了一段時間了,net core的使用方式出奇的容易入手...不過,這不是啥優點...明顯感覺微軟這次真的是祭出的騰訊的大招,打不過就copy他,從項目構建到運行,基本上跟java的spring boot和nodejs的項目流程差不多,不說誰參考誰,反正net早期那套可視化的流程基本都摒棄了,不過nuget真不給力,我用的vscode,引用一個redis的三方庫,居然報版本號錯誤,還要特意去修改vscode里nuget插件的源碼才能解決,呃,開源的ide就是充話費送的孩子么?

此外,人生苦短,我用python,c#和java真的回不去了,具體表現就是,經常少寫包裹語句塊的大括弧,還有結尾的分號,嗯,寫了幾年python發現真的少打了很多字

這次接手net core的項目也只是在不重複造輪子的前提下,盡量把已有的項目整合進現有系統,net core項目表現ok,只是感覺微軟泯然眾人矣


寫了好幾年了,但就是不好找工作o(╥﹏╥)o


謝邀

.net core從2015年發布到2020年的今天

我們看一下1.0版本發布時間為2016年6月27日,操作系統支持Windows、Mac,Linux的版本。

由於Linux發行版比較多,在此版本中支持的發行版比較少,並在下載頁面進行列名支持的發行版。

在看一下3.1版本支持程度:同樣支持Windows、Mac和Linux版本。但是在支持的系統表格中並沒有詳細列名支持的Linux哪些發行版,而是給出了安裝支持包,以及支持32和64位情況,這就說明對於Linux發行版的支持程度就更大了。同時在當前版本中也支持桌面開發了,包括wpf和winform桌面程序的支持。

在看一下最新預覽版,支持程度與3.1基本上相似。但是此版本是合併.net framework和.net core版本後的第一個大統一版本,後續將不再區分.net framework和.net core版本,統一命名為.net。這對於.net的發展是很有幫助的,解決了各種框架的支持程度。

但是在19-21號舉辦的build大會,發布了很多的新的計劃功能,並包括在.net6版本中支持的maui,並且是長期支持版本。

.net core入門書籍還是推薦一下:

蔣金楠新作問世 ASP.NET Core 3 框架揭秘(上下冊)京東去購買?

C# 7.0本質論京東去購買?

CLR via C#(第4版)京東去購買?

正版新書-C# 7.0核心技術指南(原書第7版)京東去購買?


根據TechEmpower 第19輪編程語言框架性能排行榜2020年5月28日的正式發布,在主流的編程語言中http://ASP.NET Core 獲得了排名三的好成績,本次的測試的是http://ASP.NET Core 3.1, .NET 5 在生產任務調度方面還在繼續優化,相信未來性能還會繼續提升。平心而論,.NetCore在各個方面的表現都不俗,有最強IDE的加持,更是起飛的節湊,如今擁抱開源,擁抱開發者的微軟相信在未來會給開發者帶來更多的福音,未來可期。


原先用golang寫一些微服務程序,主要提供web和websocket介面,很方便,寫完可以放windows上,可以放linux伺服器上,可以丟樹莓派里,尤其升級https超級簡單.

現在弄unity,使用c#,寫的順手了,一看.net core跨平台,就樂顛顛的用c#去寫,畢竟編程語言來回換也傷腦子,前面還好,web服務HttpListener,嗯,沒問題,websocket也沒問題,編譯放linux伺服器運行也沒問題.

功能寫了一大半了,上伺服器跑感覺還行,然後申請了證書升級https一下就傻眼了,到處找不到.net core HttpListener怎麼在linux環境下支持https,只有windows環境下的添加證書方法.

現在處於尷尬階段,當前用HTTP也能對付,但https畢竟安全一些,而且我這邊還要移動端頁面拿手機加速度感應數據,必須得https環境下,只能期待什麼時候有個解決方案出來.

畢竟https是趨勢,golang兩行代碼就能解決的事情,沒想到.net core居然沒有任何處理方法,或者我沒找到?

============2020年5月30日的編輯線================

我這個只是微服務性質,所以思路是越簡約越好(其實就是懶),再就是我以前用過golang做https,只要以下語句就可以了:

http.Handle("/", http.FileServer(http.Dir("www"))) // &<-- 靜態文件

http.HandleFunc("/data", dataFunc) // &<-- 數據

if err := http.ListenAndServeTLS(":443", "my.crt", "my.key", nil); err != nil {

log.Fatal("開啟失敗:", err)

}

func dataFunc(response http.ResponseWriter, request *http.Request) {

//數據事務處理

}

把編譯的單程序跟密匙文件放到伺服器上,就可以提供https服務了,不用在系統里添加什麼,簡單的不得了.

如果想加入websocket,加下面一句:

http.Handle("/client", websocket.Handler(func(ws *websocket.Conn) {

//ws.OnLink(ws)

}))

就完全具備websocket的功能.

可以直接編譯到不同的系統下單文件運行,特別適合我這樣專門做各種雞零狗碎雜活的人,由儉入奢易,由奢入儉難啊!

微軟的東西很多都太繁重繁瑣,然後對windows過於偏向和依賴,經常碰見弄個東西扯到操作系統里的依賴和許可權,處理這些少見並且模糊不清的問題提示,往往消耗了極大的時間和精力.

.net core方向很不錯,當我在樹莓派上安裝好dotnet,運行用c#寫的程序時,確實驚喜了一下,現在windows,linux,pi需要用的都用一個語言來寫,方法和思路可以延續,一些工具代碼也可以復用,這樣提升了不少效率.


性能卓越,語言現代化,開發方便,跨平台多,.........反正只要是褒義詞往上放就對了


從.net 的框架分布來說.net fx 4.6和 .net core 2 兩個比例已經超過了75%, 使用.net fx 4.0的用戶還有20%, 不知道具體是什麼原因還停留在 4.0,有可能還在使用winform,程序需要跑在Windows Xp/2003. 應當升級到4.6,經常聽到很多人在抱怨招不到人,是不是也要反思下是不是自己使用的技術已經太落後,比如使用Webform技術的,大學裡的學生肯定不會再去學習這麼被淘汰的技術,更願意去學習新的.net core技術。.net core作為.net framework的下一代平台,其中變化最大的就是http://ASP.NET Core, 當前http://ASP.NET Core 的大多數熱點話題都是圍繞它的跨平台體驗,雖然這是一項巨大成就,但如果你是常規 http://ASP.NET 用戶,編寫了大量基本 .NET 4.x 代碼,並打算繼續使用熟悉的 IIS 和 Windows 環境,你也是可以進行升級的,最典型的應用就是nopCommerce去年12月就完成了遷移到http://asp.net core,但是他是跑在.NET Framework 4.6.1上的。


從1.x版本開始用,好幾年了,個人開發者利器,很容易做到全棧


開源了,挺好的


很香,但需要繼續加油。

人生苦短,Netcore是延年益壽的好東西哈。


非常好,但是國內不待見


我已經使用.net core寫web服務3年了,不要拿.net framework 那一套來看待現在 .net core。現在的 .net core 性能優異,社區輪子夠用。具體還是自己體驗一下就知道了,上手之後應該會愛不釋手的那種。但是社區生態和國內使用率那又是另外一回事。


跟著公司轉型java開發了,發現vs是宇宙無敵的開發工具。


不咋樣 學完了去哪裡上班?難道就定位職業規劃封頂在中小公司嗎?想去大公司也行 去那邊維護項目或者開發內部系統?微軟的新技術砍了多少 我時間珍貴恕不奉陪


從技術上講 是一個不錯的web技術方向

從目前國內使用情況來講 不是很樂觀,國內大多項目用的還是. net ,從成本和為了穩定來講,大多數都不願意翻新或是改動,導致很多招聘信息還是基於老的項目作維護 加功能等,況且薪資待遇跟不上節奏,很多都已經轉語言了,惡性循環。

雖然看到國內也在積極改變,但希望更快一點,薪資水平也能跟上節奏,哈哈哈

(看到這個話題,也說下自己的小感受,不喜勿噴哈)


動不動就看到玩頭髮梗,不知道的還以為是洗髮水生髮棒什麼的。既然.net用著輕鬆工作生活更平衡了,怎麼不見有人說自己ooxx次數更多質量更高呢

必須匿


推薦閱讀:

TAG:NET | NET開發 | NETCore |