初识 .NET6
2019.05.06 Build2019
2020.11.10 .NET5.0:结束了双版本并行的事儿
2021.11.08 .NET6.0 LTS 版 发布
每年一个大版本,两年一个 LTS
.NET Framework2019 年 4 月已经停止更新,必须得升级
1 .NET6 环境
https://dotnet.microsoft.com/download/dotnet/6.0
2 开发工具
https://visualstudio.microsoft.com/zh-hans/downloads/
2 .NET6 亮点
号称迄今为止最快的.NET---1w+ git 提交
https://devblogs.microsoft.com/dotnet/announcing-net-6/
据说
ASP.NET Core 性能 10 倍于 Node.js,与 Go Web 框架旗鼓相当
1 LTS 版本,发布前经过了长期的线上生产压力测试;
2 性能提升,包括文件 I/O,Json API,以及 PGO 深度优化;
3 跨浏览器、云、桌面、IoT 和移动应用程序的统一平台;
4 Blazor 重磅升级,最小 API,跨平台 MAUI 等新技术发布;
5 热重载 HotReload、AOT 编译、深度 Arm 支持等新技能;
3 先来对比一下 .Net5
.net5 Api 项目

.net6 Api 项目

1.去掉了 Startup.cs 类 中间件注册 add 与 管道 Use 直接写到了 Program
原来.Net5 里 Startup.cs 类的
ConfigureServices()方法
Configure()方法
都迁移到 Program.cs 类 直接写了
2.Program.cs 类 没有了 命名空间 和 Main() 函数 直接写语句---顶级语句

3 WebAPI 新增了一个 Minimal APIs 模式
创建的时候这里不勾选 直接生成 Minimal APIs


生成出来的项目 连 Controllers 都没有了
没有控制器---没有 Filter—啥都移除了
为了极致的性能
业务逻辑都丢到 service,api 真的是极度简化
在 Program.cs 类 app.MapGet(包含一个委托的写法)就是一个简单的 Controllers

//括号里面 支持依赖注入 也支持异步的写法
app.MapGet("/GetVirtualWallet", async (IVirtualWalletService WalletService, IMapper mapper,int walletID) => await WalletService.getVirtualWallet(walletID));

评论