初识 .NET6
2019.05.06 Build2019
2020.11.10 .NET5.0:结束了双版本并行的事儿
每年一个大版本,两年一个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));
