官方博客:https://devblogs.microsoft.com/dotnet/introducing-net-5

隨手搜了個翻譯:https://www.guoxiongfei.cn/cntech/16407.html

.NET Core和.NET Framework合併成為一個.NET 5,完全開源、高性能、跨平台和架構的框架,並且支持Java、Swift和objective-c的雙向互操作性等等,除此之外還包含但不限於易用性、生產效率和性能改進。


看完文章, 總結一下:

.Net5 有三大特點

CLR

以後clr只會有兩個, coreclr和monovm(mini)了,從文章敘述推論來說, 這兩個clr都可能是全平台制霸, 而且可能會在下一個五年內共存

CoreCLR

coreclr 主要面向伺服器和桌面, 有以下特點:

  • 高吞吐量
  • 高生產力, 高性能
  • 全平台支持(包括ios)
  • 只存在jit編譯器, 不支持jit的平台(ios,ps4等)使用Full AOT方案
  • aot方案現在的方向是準備把mono的LLVM aot的方案移植過來

MonoVM

MonoVM 主要是面向移動設備(ios和android)還有嵌入式設備, 有以下特點:

  • 快速啟動
  • 低內存佔用
  • 低內存使用
  • 唯一存在 jit, aot和interpreter 三種模式的clr
  • 支持hybrid運行, 就是interpreter, jit, aot 三種模式可以同時運行

我個人主要是做移動遊戲開發, 所以個人傾向於MonoVM, hybrid模式在遊戲發布和運營時能提供非常多和靈活的選擇, 性能在能提高點就更好了, 雖然現在高版本的mono性能真的不錯了

基礎庫

.Net 5的設計核心就是要讓所有的.Net lib能夠無縫運行在兩個clr上, 所以

  • MonoVM能夠使用CoreFX和它的類庫
  • MonoVM能夠運行基於http://ASP.Net Core 3.0的應用
  • 可以在CoreCLR上運行MonoDevelop和Visual Studio for Mac

簡而言之, CLR對上層透明, .Net 5架構下編譯出來的IL, 理論上在CoreCLR和MonoVM上都必須能成功運行, 用戶可以自由選擇CLR, 要高性能你就選CoreCLR, 要低消耗就選MonoVM. 理論上Unity運行在CoreCLR也是有可能的, 是不是想想就很興奮了?

跨平台的GUI庫

  • 理論上來說CoreCLR和MonoVM都打通了, 跨平台的WPF和Winform是不是可以期待下呢?
  • 但是這個在文章里沒說, 我們拭目以待
  • 個人的感覺可能會是會在庫上加平台策略,舉個例子, WPF只能跑在windows平台上

總的來說, 還是很興奮, 上層的統一規範能提高非常多的開發效率, 很期待.Net 5


2020年完成2001年的目標


謝邀,作為官方博客原文的譯者,譯文被各種轉載十分受寵若驚,但是還是建議加一下署名呢。

回來問題上來,.NET 5 其實現在還看不清形勢,各種細節還沒有披露,期待後續更多爆料吧。從現在有的一些信息來看,其實 .NET 5 只不過是 .NET Core 4.0 的另一個名字罷了。或許是微軟不想讓 .NET framework 死的太難看,給它一個面子所以叫 .NET 5。

一大早就聽說5了,然後看官方博客更新了好幾個帖子,這是一個技術大融合,將.net core 3的下一版本跳過4命名為.Net 5,4.8是老.Net最後一個版本,不過其實4.8也用了很多core的技術嘛,.net core也是把windows only 的 winform wpf給合併進來,無非就是互相抄代碼合併了。

沒有新的跨平台UI開發,還是希望能推出真正的跨平台界面開發,讓不同平台xaml統一,可以搞出跨平台用戶控制項出來,

合併會帶來很多細節問題,原文中就提到了很多,不知道工具該如何適配他們,而.net core還有很多.net下的東西沒有完成,對老的框架估計是不會支持了。.Net 5估計是.Net路線上最正式的一次對老不兼容吧,以前2.0開發的東西還可以強制到4.0下運行,屆時老的項目將可能真的無法運行在最新的.Net上,也不再是重新選個target framework能解決的了。

對於沒有老項目拖累的,則可以往.net core 3遷移了,.Net5說到底還是.net core的演進版本。

java以及其他語言的互操作,目前無法想像何種形式,但是既然說了java是所有平台,那麼對於linux和安卓端應該也能更好的支持。


感覺可以理解成為.Net Core正式上位。

.NET Core和.NET Framework合併成為一個.NET 5

並不是合併,只是.Net Core幾乎實現了.Net Framework而已。注意,只是幾乎,遷移起來還是要費點力的。


推薦閱讀:
相关文章