刷新.NET

  • 2020 年 2 月 12 日
  • 筆記

.NET Core 發布的那一天起,它在完成自我刷新的過程,一切為了適應未來,雲原生。不僅僅跨平台那麼簡單。

.NET Core 未來發展路線

我們發現跳過了.NET Core 4.X 避免了和目前.NET Framework4.X命名上的混亂,明年直接命名為了.NET 5 , 默認還是core,不過.NET 4.8將是最後一個.NET Framework版本,.NET core 才是.NET真正的未來。

.NET Core 是微軟 .NET 技術的開源、跨平台版本,允許開發者在 Windows、Mac 和 Linux 上使用包括 C#、F#和 Visual Basic 等語言。可以說,.NET Core 是僅支援 Windows 的 .NET Framework 的一個跨平台分支,自 2016 年 6 月首次發布後,微軟一直在保持同時開發這兩個版本。當時微軟表示,.NET Core 適用於 ASP.NET Web 應用,以及 Win10 UWP 應用。Windows 桌面應用將繼續使用 .NET Framework 。

不過今年發布的.NET Core 3.0 和最近發布的3.1長期版本,重點改進了桌面開發(包括WPF和Windows窗體)和Blazor,可以完全看出.NETcore (將來在.NET Core之上構建的.NET 5)將是.NET的未來,同時能夠廣泛地支援C#8.0(主要新功能包含有:Nullable的引用類型、各種非同步流(Async streams)、範圍與文件、以及不同的Switch表達式。)。

生命周期

建議儘可能的遷移到.NET Core 3.1。它對.NET Core進行了多方面的改進。這也是一個LTS版本,將支援三年。其他版本的生命周期:

  • .NET Core 3.0將於今天(即2020年3月3日)終止。
  • .NET Core 2.2的每個生命周期都將在12月23日結束。
  • .NET Core 2.1的支援將一直持續到2021年8月(這也是LTS版本)。

NETER從.NET Framewrok 過渡到.NETcore 開發,學習成本不會太大,可能對一些新的術語有點迷糊。下面梳理下

  • .NET Standard:.NET Standard 是一套正式的 .NET API 規範,有望在所有 .NET 實現中推出。推出 .NET Standard 的背後動機是要提高 .NET 生態系統中的一致性。ECMA 335 持續為 .NET 實現行為建立統一性,但適用於 .NET 庫實現的 .NET 基類庫 (BCL) 沒有類似的規範。.NET Standard 可實現以下重要情境:為要實現的所有 .NET 實現定義一組統一的、與工作負荷無關的 BCL API。使開發人員能夠通過同一組 API 生成可在各種 .NET 實現中使用的可移植庫。減少甚至消除由於 .NET API 方面的原因而對共享源程式碼進行的條件性編譯(僅適用於 OS API)。總之一句話,.NET Standard是支援跨平台.NET庫並替代PCL的現代方法
  • Blazor 是一個基於C#,Razor模板語言和HTML的web框架,可以通過WebAssembly在Web瀏覽器中運行,不需要使用javascript就可以創建動態網站。而WebAssembly(簡稱:Wasm)是基於堆棧的虛擬機的二進位中間程式碼,可在瀏覽器中執行,並且旨在補充JavaScript。目前已經是w3c的標準了,各大瀏覽器都已支援。
  • Electron.NET 可能有人說微軟沒有提供GUI解決方案,無法真正的跨平台,現在呢,社區受到Electron的啟發,Electron.NET誕生了,可以利用.NETcore進行開發。

我們一起拖過控制項,一起擁抱.NET Core,一起迎接.NET5……未來可期,接下來準備閱讀下這本書……

參考:https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/cross-platform-targeting