.Net 5简介
.NET 5.0 初識
- .NET 5 的開始
- .NET5,完成統一
- DotNetdaily容器支持優勢
- .NET 5 優勢
- 總結
.NET 5 的開始
.NET5.0正式發布了!這是一個重要的版本—其中也包括了C# 5大量新特性和優秀的改進。微軟和其他公司的團隊已經在生產和性能測試環境中開始使用了。這些團隊反饋的結果比較令人滿意,它證明了對性能提升及降低Web應用托管成本的機會有積極的表現。
微軟希望 .NET Framework .NET Core開發者能夠遷移他們的代碼和應用到 .NET 5.0 上,為明年發布的 .NET 6.0 將 Xamarin 開發者過渡到統一平臺奠定基礎。
很明顯以后只會有一個.NET平臺,NET 5.0是.NET Framework和.NET Core核心的結合,旨在統一.NET平臺,微軟將其描述為“.NET的未來”。
.NET5,完成統一
微軟2019全球開發者大會上正式宣布的.NET5,其主要目標之一是提供一個單一的、跨平臺的.NET 運行時和具有統一運行時行為和開發者體驗的框架。在第一次宣布這個項目時,.NET 團隊的程序經理 Richard Lander 強調了這個項目的重要性:
未來只會有一個.NET,可以支持 Windows、Linux、macOS、iOS、Android、tvOS、watchOS 和 WebAssembly,等等。我們將引入新的.NET API、運行時功能和語言特性作為.NET 5 的一部分。此外,我們想清楚地告訴大家,.NET 5 是.NET 平臺的未來。
時至今日,.NE5 RC1發布,也同步發布了http://ASP.NET Core和EF Core的RC1版本,能看到各平臺的打通,能看到底層CLR和BCL的通用,能看到多個方向的應用框架用法,跟.NET Core3.1的區別并不大。從2016年分裂的.NET Framework和.NET Core被.NET5完成了統一!
DotNetdaily容器支持優勢
新的互聯網技術時代已經來臨了,容器、Kubernetes、DevOps、微服務、云原生才是技術前進的方向,其中容器技術屬于基石。從.NET Core誕生直到.NET5 RC1,都能持續看到平臺對容器技術的官方支持和適配改進,RC1里面還強調了有著更小的容器鏡像。.NET5+Docker容器化后還有其他語言無可比擬的優勢!
1 體積更小
.NET5的鏡像體積都很小,alpine的鏡像更小,帶上應用程序也才80M,對于微服務分布式架構而言,更小的體積意味著更少的下載帶寬,更快的分發下載速度。
2 占用資源更少
.NET5的CLR+默認http://ASP.NET Core框架頁面啟動后,僅需22M內存,同比Java8已經需要120M了,運行時資源占用也更低,意味著更高的部署密度和更低的計算成本。
3 啟動速度更快
.NET5的 CLR啟動速度非常快,而啟動速度就意味著交付效率和回滾效率,在動輒數百個副本微服務時,啟動速度就是個非常重要的特性。
4 容器感知,低配運行
.NET5 默認更好的支持Docker資源限制,官方團隊也在努力讓.NET5成為真正的容器運行時,使其在低內存環境中具有容器感知功能并高效運行,遠超其他平臺。
.NET 5 優勢
1 開源跨平臺
跟windows綁定和閉源,讓.NET錯失了移動互聯網時代,當下.NET5對開源跨平臺的支持可謂不遺余力:.NET5全面開源、收購GitHub、官方團隊助力開源,不僅.NET5運行時支持各平臺,甚至還專門提供了VS Code這一全新開發神器支持跨平臺!全球500w的.NET開發者,其中有200W開始了跨平臺,大量的項目運行在Linux,開源社區也極度火熱,一切都預兆著,大勢所趨!
2 極致性能
年初.NET Core3.1發布后,.NET Core性能和ASP.NET Core性能各種霸榜,下圖是TechEmpower第19輪編程語言框架性能排行榜,ASP.NET Core排第6,Golang第29,Java,34,NodeJS第73,PHP第348,換言之是主流Web框架中排名第一的存在!.NET5發布的日志中明確聲明,相對于.NET Core3.1,.NET5性能再度提升。
3 按需使用
嘗試下ASP.NET Core開發,都會發現一個特征:框架里面移除了很多默認組件,最典型的就是Session都沒有了,用的話需要自行配置中間件,隨處可見各種擴展方法以分離組件,無處不在的IOC,這些都是為了最小化框架設計,讓程序能夠按需去加載需要的東西,去掉多余的,做到Pay-For-What-You-Use。
4 能屈能伸
現代化的終端設備變得越來越豐富,既有高性能的服務器,也有低配的便攜設備,甚至在云環境下,大的服務器也需要拆分成小的資源體來使用,全新設計的.NET5,既能在高配服務器上以高性能模式運行,管理大量內存、使用大量CPU資源、保持高并發和高可用,也能在各種低配終端和低資源容器內正常運轉,真心666!
5 順應大勢
移動互聯網的大潮.NET錯過了,而當下互聯網的大潮就是微服務云原生,.NET5占據先機。最小的ASP.NET Core鏡像只有80多M,這意味著更快的分發部署;毫秒級內完成冷啟動,這意味著更高的交付效率和回滾效率,運行時低資源訴求,這意味著更高的部署密度和更低的計算成本。
6 新技術紅利
經過.NET Framework和.NET Core的4年雙線并行,到現在終止Framework版本更新,倒逼企業和開發者跟進最新.NET5,新框架新平臺都是汲取前任智慧,結合當前技術的產物,毋庸置疑具備著先進性!當下.NET的最好選擇就是最新版本,不用考慮LTS問題,平臺本身保持著兼容,開發者可以充分享受新技術紅利,相對于停滯在Java8,簡直不要太優秀!
7 微軟決心
最后就是微軟對.NET5的決心了,從Build2020對開發者的重視,到Conf2020對中國.NET社區的重視,從長遠的.NET版本規劃(2021年.NET6,2022年.NET7),到對社區各種.NET開源項目的支持和鼓勵,微軟是真的走上了一條全新路線,讓全球500w.NET開發者一起來發展.NET,何其有幸!
總結
總而言之 .NET 5 跨平臺,性能強,更適合新時代,特別是強大和性能和按需加載的小鏡像包與容器技術特別般配。
我個人技術學習到了需要選擇一個技術方向,之前我還在糾結是否轉回 JAVA Spring全家桶,但是最近兩年我主要都是使用.NET C# 作為主要開發語言,加上.NET5的發布與今年MS的發力,所以我還是決定繼續跟著MS老哥混社會,學習.NET 5,而后學習MS的Cloud,去通過MS認證。
這個教程我會從頭開始寫,以C#作為開發語言學習,大概思路是:
第一步:
介紹學習 .NET 中常用的Web技術,比如:WebAplication/MVC/ API等。
補充介紹C#特性和其他技術原理,比如:C#語言特性/Http協議/RestFul規范等。
第二步:
介紹學習以ABP為主的各種框架和技術,比如:AOP IOC ORM等
補充介紹Auth2.0/領域設計/數據庫技術等。
第三步:
介紹學習Vue.js的開發
補充介紹Vuetify和Element組件的使用和Android移動端H5的開發。(以前寫的應用是原生,但是現在我已經放棄了,精力有限)
第四步:
以微服務,Docker,Linux為主的開發學習。
補充微信小程序開發/PAAS/虛擬化/負載均衡等技術介紹。
希望與我有相同目標的各位一起加油!
總結
- 上一篇: 在Linux环境下使用OTPS工具箱提取
- 下一篇: 批处理文件bat