1. 程式人生 > >.NET Core 給使用.NET的公司所帶來的機遇

.NET Core 給使用.NET的公司所帶來的機遇

單獨 weight 擔心 ber asp.net emp 基金會 nor 人工智

今晚在余晟的微信公眾號看到了一篇文章《 從.NET/C#開發的“後繼無人”說起: https://mp.weixin.qq.com/s/rO2d0xZ58Z2syqT7AaNT3w》。 這篇文章以從.NET/C#開發的“後繼無人” 引出了推廣極客時間的課程 劉超的《趣談Linux操作系統》,通篇看下來這明顯是 劉超的《趣談Linux操作系統》的軟文。

技術分享圖片

推廣無可厚非,但是這種以標題黨形式貶低.NET,讓幾十萬的.NETer 蒙羞是一種無恥的操作,何況余晟 是一位小有名氣的博主,這篇文章轉發在朋友圈,光是這個標題就夠有殺傷力的了。這也是我看到這篇文章特別想寫一篇短文來表達一下心中的999個傷害。

我也有一個公眾號“dotnet跨平臺”,其中的主題就是微軟在2014年開始開源的.NET Core, 即將在今年發布3.0版本, .NET Core是開源跨平臺的.NET ,而且他的兄弟Mono也是開源的,至今已經有17年歷史,大名鼎鼎的Unity3d 就是基於Mono。.NET Core/Mono早就可以跨平臺運行於Linux/Mac系統之下,而且微軟把Linux 作為一等公民對待。目前我就是使用Windows 10作為開發工具,使用.NET Core開發的系統通過容器化運行於k8s 之下。微軟的Visual Studio 和Visual Studio Code 為容器化應用程序開發提供了一流的體驗。

余晟完全可以這麽寫: 如果要把技術棧從.NET/c#切換為.NET Core/C#, 可以完美運行於Linux 之下,借助於kubernetes 容器調度,最主要有什麽困難。

接下來想針對《 從.NET/C#開發的“後繼無人”說起》裏面的一些邏輯錯誤給大家分享下:

市場上招不到多少.NET/C#的開發新人: 這是一個毫無根據的主觀臆斷。據我所知,還是有不少學校開設了C#編程的,至少我就知道有好幾個學校,社會上的培訓機構也有不少培訓以Unity3d編程為背景的c#培訓,培訓機構確實很少批量生產快餐式的.NET程序員了,這些培訓機構都一窩蜂的湧向Java培訓,導致的結果是現在Java快餐式程序員滿大街都是,這些快餐式程序員也不是很多公司所期望的。倒是有不少.NET 程序員質量非常高,他們通過參與開源項目進行著高質量的自我成長,身邊有不少95後程序員新人,他們的水平都是很不錯的。

微軟自己的Azure 雲服務,也不強調Windows特性了: 微軟從2014年新的CEO 薩提亞?納德拉上臺以來,在他第一本書《刷新:重新發現商業與未來》全景回顧了薩提亞的變革路徑,如在硬件Surface電腦上的投入,在混合現實、人工智能和量子計算三大領域的戰略布局等;系統總結了他的核心管理思想,即任何組織和個人,達到某個臨界點時,都需要自我刷新。 微軟自我刷新,今天微軟的市值已經突破9000億美元,繼續向一萬億進軍,這裏最重要的一個平臺就是Azure 雲服務,微軟Azure 擁抱開源,Azure 可以運行主流的開源解決方案,我們已經從跨平臺進入跨雲時代,我們開發的應用系統都是針對跨多個雲為要求的,Windows 服務器和Linux服務器一樣已經下沈為雲服務的底層一個組件,雲平臺已經上升為新時代的操作系統。

如果把技術棧從.NET/C#切換到Java: .NET/C# 目前已經在跨平臺這條道理上走過了10多年,.NET Core更是把.NET 的跨平臺推向一個新的高度,.NET Core借鑒了.NET Framework的最佳實踐,並將軟件工程的最新進展結合在一起。這些是.NET Core的一些顯著特征。 同一個庫可以在後臺服務“本地”或雲中運行,也可以在手機,平板電腦或桌面上運行的客戶端應用程序中運行。與其為iOS,Android和Windows構建單獨的應用程序,您可以構建一個適用於所有平臺的應用程序。.NET Core是小型和完美的容器,可以輕松擴展並縮短開發時間。 .NET Core和.NET Standard Library建立了一個通用平臺。過去,當新版本的操作系統或新設備出現時,開發人員有責任重新構建新平臺的應用程序或庫,並分發更新。使用.NET Core,不需要重建和重新分配。只要新的平臺支持你所有的依賴庫,它就支持你的應用程序。采用.NET Core讓你在以往在.NET上的投資更有價值,我們來看最新asp.net core 性能已經跨入頂級序列,最新一期的TechEmpower基準測試第十七輪測試:

技術分享圖片

.NET Core和Java都是開源跨平臺的,我們可以來比較一下.NET Core和Java的開源協議,.NET Core是以MIT協議開源, Java是GPL協議開源。 Java 8 SDK升級Oracle要收費這件事對於很多小公司是有著重大的影響的。眾多沒有能力開發維護OpenJDK的公司完全可以轉向更具有競爭力的.NET Core,.NET Core從屬於.NET基金會,由微軟進行官方支持。使用最寬松的MIT和Apache 2開源協議,文檔協議遵循CC-BY。這將允許任何人任何組織和企業任意處置,包括使用,復制,修改,合並,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版 權和許可提示,後者協議將會除了為用戶提供版權許可之外,還有專利許可,並且授權是免費,無排他性的(任何個人和企業都能獲得授權)並且永久不可撤銷,用戶使用.NET Core完全不用擔心收費問題,你可以很自由的部署在任何地方,。

現在是雲計算時代,.NET Core已經磨練5年時間,準備好了迎接雲計算時代的雲原生應用開發,雲系統中,用更少的硬件為更高密度的用戶提供服務是非常重要的。應用程序的占位面積越小,密度越高。容器只包含應用程序及其依賴項。文件大小要小很多倍,啟動時間以秒為單位,只有應用程序加載到內存中,容器保證在任何主機上工作。鑒於容器的明顯優勢,.NET Core的設計決定之一就是使其成為模塊化。這意味著你的.NET Core應用程序可以被"發布",使得它和它的所有依賴關系在一個地方,這很容易放入容器。

2018年年末的聽到大量的互聯網公司裁員消息,但是我服務這幾家客戶都有很強烈的招聘.NET Core開發人員的需求,這是大量學習Java的同學轉向.NET Core平臺的好時機,我一直認為做Java開發的同學比做傳統.NET的人員更容易用好.NET Core, Java相比C#,在使用了C#後你不會再去想用Java,而且.NET Core有你非常熟悉的Spring Cloud那一套約定的編程範式,然而見過很多.NET 開發人員, 依賴註入都沒用過,更別說用Linux了。在這裏我沒有貶低.NET開發人員的意思,技術更多的還是要靠自己的努力,我們努力一起成為一群不被時代拋棄的程序猿。

.NET Core 給使用.NET的公司所帶來的機遇