天天看點

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

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

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

推廣無可厚非,但是這種以标題黨形式貶低.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 給使用.NET的公司所帶來的機遇

.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的公司所帶來的機遇

繼續閱讀