.NET開發者必須學習.NET Core
很多的.NET開發者在接觸.Net Core之前,對於linux系統一點也不瞭解,也未曾有過主動去學習的念頭。在接觸了.Net Core之後才會慢慢學習linux相關知識,很多同學想轉Java,這個很扎心,你有很好的條件轉向.NET Core為啥要轉Java,據說目前市場上Java多如牛毛,兩年以內的Java工作經驗的都找不到工作了。
學習.Net Core最直接的好處就是培養你看英文文件和原始碼的習慣。你剛開始工作的時候遇到的一些問題百度一下基本上都能找到解決方案,實在找不到就去翻一翻Stack Overflow,在有道,bing翻譯等一些工具的輔助下,看英文文件本身並不是一件很難的事情。包括看一些開源工具的原始碼也是一樣,只要堅持一段時間,很多能力和習慣都是水到渠成的,最怕的就是我們會因為各種各樣的原因而半途而廢。
你在學習.Net Core的過程中,很自然地就會接觸到一些以前所接觸不到的東西,比如說linux系統,nginx反向代理和docker容器、kubernetes等等。 微軟的開源與跨平臺之舉開闊你的視線,和開發社群的所有人一樣擁有廣闊的知識。現在.Net Core技術棧相關的招聘在增多,也說明了大家對於微軟的開源還是保有比較積極的態度的。特別是趕上雲原生應用開發這個歷史程序的時候,我們要更加註重自我奮鬥的重要性了。
下面這段話摘自:https://blog.csdn.net/achuan2015/article/details/86171497
在 2018 開源領袖峰會(OSLS)上,CNCF 基金會、Google Cloud 工程總監 Chen Goldberg 宣佈,Kubernetes 成為第一個從 CNCF 畢業的專案。這也意味著該開源專案已經成熟並且足夠靈活,可在任何行業、各種規模的公司中大規模地管理容器。Kubernetes是整個雲原生計算的核心、靈魂和平臺級技術,正因為Kubernetes技術、商業和生態的成熟,才導致了2019年開始全面進入雲原生技術的商業化之年。
隨著Kubernetes的商業化成熟,IaaS、PaaS和SaaS三層雲計算技術體系將在未來幾年形成全面的技術體系和供應商陣營,向上支撐起可以大規模、工業標準化運作的企業APP或SaaS開發、運營和管理能力,企業級APP時代即將全面繁榮。.NET Core是在雲原生背景下誕生一個開發平臺,.NET Core 3.0 在雲原生時代所完成的蛻變:
- 體積更小:對於微服務分散式架構而言,更小的體積意味著更少的下載頻寬,更快的分發下載速度,.NET Core 的映象體積都很小,alpine的映象更小,帶上應用程式通常80M。
- 啟動速度更快:對於傳統單體應用,啟動速度與執行效率相比不是一個關鍵的指標。原因是,這些應用重啟和釋出頻率相對較低。然而對於需要快速迭代、水平擴充套件的微服務應用而言,更快的的啟動速度就意味著更高的交付效率,和更加快速的回滾。尤其當你需要釋出一個有數百個副本的應用時,緩慢的啟動速度就是時間殺手。對於Serverless 應用而言,端到端的冷啟動速度則更為關鍵,即使底層容器技術可以實現百毫秒資源就緒,如果應用無法在 500ms 內完成啟動,使用者就會感知到訪問延遲。這裡我拿AWS Lambda來舉例,因為各大雲廠商都是以AWS是模仿的目標,AWS Lambda中可用的所有語言都是高階的,而不是像Assembler,c/c++或Objective C那樣。從指令碼語言到JavaScript和Python,再到像Java和C#到Go這樣被編譯為二進位制檔案的託管執行時的語言,所有語言都是他們有自己的長處。在基準測試中,最重要的.NET Core是 冠軍,具體參看https://react-etc.net/entry/aws-lambda-benchmarks-node-js-python-java-c-go-dotnet-core
- 佔用資源更少:執行時更低的資源佔用,意味著更高的部署密度和更低的計算成本。.NET Core的 CLR啟動速度非常快,降低啟動時資源消耗,可以減少資源爭搶,更好保障其他應用 SLA。
- 支援水平擴充套件:.NET Core 3.0預設更好的支援Docker資源限制,官方團隊也在努力讓.NET Core成為真正的容器執行時,使其在低記憶體環境中具有容器感知功能並高效執行。 具體可以參看文章《從CLR GC到CoreCLR GC看.NET Core對雲原生的支援》,隨著記憶體成本的下降和虛擬化的流行,大記憶體配比已經成為趨勢。所以我們一般是採用水平擴充套件的方式,同時部署多個應用副本,在一個計算節點中可能執行一個應用的多個副本來提升資源利用率。
最後推薦一個微軟在Channel9 上雲原生的系列視訊推薦給大家: https://channel9.msdn.com/Shows/The-Cloud-Native-Show
那個spring cloud的母公司 Pivotal也釋出了標題為Cloud-Native .NET 的正確方法 的免費指南: https://content.pivotal.io/dotnet/pivotal-cloud-native-dotnet-the-right-way,隨著微服務等更新的體系結構以及.NET Core的推出,企業現在正在對其.NET應用程式進行更多的投資。
微軟是對程式設計師最友好的公司了,產品文件做的非常好,特別是微軟docs專案還是github上面非常受歡迎的專案,微軟的 docs網站的內容非常全面, 涵蓋所有的產品,也包括.NET ,asp.net ,xamarin等,學習起來這些資料是非常多的了,而不是缺乏資料,而且這些資料還都是免費的,你現在就動手訪問下面的連結開始學習吧。
- .NET 文件
- ASP.NET Core
- C# 指南
- Xamarin 文件
- ML.NET 文件