如何評價 .NET 5?
官方博客: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而已。注意,只是幾乎,遷移起來還是要費點力的。
推薦閱讀: