.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/虚拟化/负载均衡等技术介绍。
希望与我有相同目标的各位一起加油!