.NET 是信息技術應用創新產業重要參與者

今天是國慶節,也是中秋節,月滿中秋,舉國歡慶,在這裏祝各位開發者中秋國慶快樂。 放假在家就想把這幾年對於.NET發展相關生態作個梳理,寫一篇文章來總結一下這兩年從騰訊出來本身創業,推進.NET在國內的應用的一些感想,畢竟我是一個弱小的創業者,沒有大公司的資源,更可能是要靠你們的共同努力,打造更加有生命力的.NET社區。html

首先咱們處於中國這樣的一個大環境之下,在中國的.NET社區發展來講,相對於微軟開源.NET 的2014年以前,中國的.NET社區獲得了長足的發展,涌現了大量的開源社區,其中以NCC(.NET Core Community)爲表明匯聚了國內主要的開源項目,NCC的發展過程也是曲折的,不時據說有人詆譭,咱們相信謠言與誹謗終將破滅,一切詆譭開源社區的行爲終將被反噬。在NCC 以外還存在着有特點的社區,好比以微信開發生態發展起來的盛派開發者社區,最近他們推出了集合盛派多年開發經驗的框架NCF。前端

隨着中國的發展,不少技術由於一些緣由愈來愈受制於人,尤爲是上游核心技術。在中美當前背景下爲了解決這個問題,我國明確了「數字中國」建設戰略,搶佔數字經濟產業鏈制高點。因而,國家提出「2+8」安全可控體系,2020-2022年是國家信息技術應用創新產業推廣最重要的3年,中國IT產業從基礎硬件-基礎軟件-行業應用軟件有望迎來國產替代潮。數據庫

信息技術應用創新產業(簡稱信創)須要在四個層面逐步實現:基礎硬件設施,如芯片、服務器、存儲、交換機、路由器;底層軟件,包括操做系統、數據庫、中間件等;應用軟件,面向實際應用的不一樣領域;安全產品,保障邊界安全、終端安全和管理安全產品。目前在安可領域,高端芯片服務器等硬件已能基本知足辦公需求;基礎軟件正在實現國產化替代。而在信創下,應用生態便顯得匱乏了。 要實現應用軟件從WinIntel 聯盟、雙A聯盟(Android + ARM)到信創產業的平滑過渡,是豐富國產應用生態、推進信創產業從「可用」走向「好用」的重要手段。國內衆多應用軟件開發商也正在安可這一領域展開激烈競爭。編程

image

在信創產業龍芯給咱們作出表率,他們積極投入研發力量把OpenJDK 和 .NET 歸入信創產業來建設,龍芯支持了計算機上運行應用程序的動態虛擬機Java、Javascript、.NET三大虛擬機,龍芯還正在開發一套指令翻譯系統,能夠將其餘指令集翻譯成Loongarch指令兼容X86,ARM,MIPS。目前信創產業國內也有不少的參與方,其中ARM的鯤鵬計算推動比較快,最近我也同華爲的鯤鵬生態的相關負責人溝通,他們在鯤鵬生態對.NET支持是很支持的,而不是坊間流傳的不支持.NET, 我和華爲雲的同窗一塊兒在華爲雲上創建了一個生態合做夥伴論壇的.net技術專區https://bbs.huaweicloud.com/forum/forum-1184-1.html。 9月份我給華爲雲鯤鵬計算的全國各地的產業基地的同窗們分享了一次.NET 技術。後端

在信創產業背景下的中國.NET社區的發展也正在加速,活躍的社區加上具備說服力的開源產品的不斷涌現,結合.NET的性能優點,充分發揮.NET的跨平臺能力,在各行各業的開發者在各自領域均可以推出有競爭力的產品,亦或是基於其餘語言流行產品的.NET版本或者客戶端,這裏舉一個例子就是看到有些人以爲國內的.NET開源項目之中大多數ORM或者Web框架之類,同質化嚴重,我以爲有競爭纔是好事,能說服社區的產品就是要貨比三家、大浪淘沙。安全

微軟是很是有誠意發展.NET社區的,經過成立相似於Apache基金會的.NET基金會來支持.NET社區和開源,旨在拓寬和增強.NET生態系統和社區。這能夠經過多種方式完成,包括項目指導,指導,法律和營銷幫助,技術和財務支持設置等,2014年 .NET基金會的創始成員中有六位創始人,均非微軟公司員工。隨着微軟的收購動做,Miguel 也成了微軟員工,Migel一直在努力讓.NET基金會獨立於微軟。2014年以來已經有衆多知名公司加入.NET基金會, 僅在平臺項目中,.NET平臺上有87%貢獻者其實不在Microsoft工做。在.net conf 2019 AWS加入了支持.NET Foundation的.NET開源生態系統中愈來愈多的行業領導者,這些成員包括Microsoft,Google,Red Hat,JetBrains,Unity,三星,Pivotal,Insight和Telerik,AWS等公司。前端框架

image

我對全部參與社區建設的人都充滿敬意,也鼓勵各位.NET開發者積極融入社區,去了解、參與甚至創造.NET開源項目,請不要在社區裏充滿了嘲諷、不屑和鄙夷(常常能夠在微信羣,QQ羣,博客評論裏見到這種言論)。 不要抱怨社區沒有什麼,而是想一想能爲社區作什麼。等到.NET社區充滿了戰鬥力,受益的最終仍是整個開發羣體。服務器

image

這幾年.NET社區獲得了很大的發展,仍是有賴於.NET 自己的技術發展,.NET技術方面的優化和升級,也是.NET發展的強勁動力,不少人在談到.NET Core相對於.NET Framework的優勢時,第一時間想到的是開源跨平臺。其實跨平臺只是起點而非目的。.NET Core的更大的意義在於性能的提高,以及保持與時俱進的設計甚至引領潮流。 即將在2020 dotnet conf 上發佈的.NET 5 將支持全部 .NET 應用程序類型:Xamarin、ASP.NET、IoT 和桌面,將利用一個單獨的基類庫 (BCL)、兩個獨立的運行時(MonoCLR和CoreCLR,由於很難將兩個大相徑庭的運行時單獨做爲源)和一個工具鏈(好比 dotnet CLI),結果將是行爲、API 和開發人員體驗之間的一致性。 .NET 的統一有不少優勢。將框架、運行時和開發人員工具集統一到一個代碼庫中,將減小開發人員(Microsoft 和社區)須要維護和擴展的重複代碼量。微信

image

而且全部 .NET 5 源代碼都將是開放源代碼,全部人都能見證和參與其中,這讓全球真心熱愛這個平臺或C#語言的有志之士有了一個集中的交流地,也極大的促進了國內.NET的發展,這些年雖然缺乏了微軟中國的佈道支持,國內的.NET開源社區同樣發展的不錯,若是有微軟中國的資源投入支持,相信這個結果會更好。微信開發

性能的提高直接使得不少人開始關注和學習.NET 帶來的優化,例如基礎庫中至關多的線程安全的靜態方法被優化和重寫,大幅減小競爭資源的損耗;推出性能極佳的System.Text.Json基礎庫替代包袱沉重的Json.NET, 還有更底層的Span<T>/Memory<T>, ref struct 等的引入,讓C#在高效生產力的條件下擁有C/C++的性能。從C# 7.0開始一路完善的模式匹配(固然仍是有不少人對這些新特性不是很滿意),以及Range/Index的切片語法等等,這些都使得基於.NET的編程體驗更上一層樓。在設計上引領潮流方面來講,以ASP.NET Core最爲典型---依賴注入無處不在,認證、受權、日誌、配置、中間件等模塊都很是值得學習,對Docker,雲服務、微服務、IOT、ML等支持和持續優化,也使得.NET/C#在較前沿的工程領域佔有一席之地,特別是基於WebAssembly技術的Blazor框架在先後端分離的前端框架上也是引領潮流的。

回顧自2014年以來的.NET 的開源發展路程,一路發展也不是一路順風的,中間也有很多批評和困擾。例如在.NET Core 2.1的HttpClient 出現了一些嚴重的性能問題,使得不少開發者怨聲載道,EF Core 3.0 再也不默認使用客戶端評估(https://docs.microsoft.com/zh-cn/ef/core/querying/client-eval)這樣的一個較大的破壞性更新,讓開發者在升級項目的數據訪問層代碼時遭遇打擊。.NET的版本升級如今也是很快,這裏強烈建議大火把項目升級到當前最新的LTS版本,之後的升級儘可能避免隔代升級,好比即將到來的.NET,從3.1升級上去會比較順滑,這裏特別要提醒的是別覺得.NET 4.8也能夠順滑的升級到.NET 5。 這些發展道路上的問題確實也打擊了部分開發者的耐心和信心,以致於他們在當時不得不額外花費時間,承受進度壓力處理問題的時候,對.NET的評論極其負面。這同時也阻撓了至關一部分人將.NET Framework項目遷移到.NET Core或升級舊版本.NET Core的信心,隨着.NET Core/Framework,新舊版本之間的差距愈來愈大,最終形成了惡性循環,項目的老化積重難返,想找到靠譜的人維護也變得逐漸困難。

可是從整體上來講,這些年.NET的在技術發展上取得的成績是值得欣喜的,它走出的每一步都是讓.NET繼續煥發青春,接下來幾年時間裏也是國家信息技術應用創新產業發展的黃金時間,一個徹底開放的.NET生態會是這裏很是重要的參與者。

相關文章
相關標籤/搜索