原文:bit.ly/2Qb56NP作者:DanielRoth译者:精致码农-王亮
.NET6预览版3现已推出,其中包括许多对新的ASP.NETCore改进。以下是本次预览版的新内容:
更小的SignalR、BlazorServer、MessagePack脚本文件
启用Redis分析会话
HTTP/3端点TLS配置
初步.NET热重载支持
Razor编译器不再生成单独的视图Assembly
IIS中的浅拷贝支持
适用于SignalRC++客户端的Vcpkg端口
减少闲置TLS连接的内存占用量
从SlabMemoryPool中移除板块
用于WPF和Windows窗体的BlazorWebView控件
1开始要在.NET6Preview3中开始使用ASP.NETCore,请安装.NET6SDK[1]。
如果你在Windows上使用VisualStudio,我们建议安装VisualStudio.10的最新预览版。如果你在macOS上,我们建议安装VisualStudioforMac8.10的最新预览版。
2升级现有项目要将现有的ASP.NETCore应用程序从.NET6Preview2升级到.NET6Preview3:
更新所有Microsoft.AspNetCore.*包引用至6.0.0-preview.3.*。
更新所有Microsoft.Extensions.*包引用至6.0.0-preview.3.*。
查看ASP.NETCorefor.NET6中的完整中断性更改列表[2]。
3更小的脚本文件得益于BenAdams的社区贡献,SignalR、MessagePack和BlazorServer脚本现在明显变小了,下载体积减少,浏览器解析和编译JavaScript的次数减少,启动速度加快。
这项工作带来的下载体积减少是非常惊人的:
LibraryBeforeAfter%↓.brsignalr.min.jsKB39KB70%10KBblazor.server.jsKBKB45%28KB现在你也只需要为MessagePack提供
microsoft/signalr-protocol-msgpack包,而不需要包含msgpack5。这意味着你只需要额外的29KB而不是之前的KB来使用MessagePack而不是JSON。下面说下我们是如何减少体积的:
更新TypeScript和依赖关系到最新版本.
将uglify-js换成了terser,这是webpack的默认版本,支持新的JavaScript语言特性(比如class)。
将SignalR模块标记为"sideEffects":false,这样tree-shaking就更有效了。
丢弃了"es6-promise/dist/es6-promise.auto.js"的多边填充。
更改TypeScript为输出es而不是es5,并放弃了es.promise和es.iterable的polyfill。
从
msgpack/msgpack移到msgpack5,因为它需要更少的polyfills,并且是TypeScript和模块感知的。你可以在GitHub上Ben的PR[3]中找到更多关于这些变化的细节。
4启用Redis分析会话我们接受了GabrielLucaci的社区贡献,在此预览版中使用Microsoft.Extensions.Caching.StackExchangeRedis启用Redis分析会话。关于Redis分析的更多细节,请参见官方文档[4]。该API的使用方法如下:
services.AddStackExchangeRedisCache(options={options.ProfilingSession=()=newProfilingSession();})5HTTP/3端点TLS配置
HTTP/3与现有的HTTP协议相比具有许多优势,包括更快的连接设置,以及在低质量网络上的性能改进。
在此预览版中,新增了使用UseHttps在单个HTTP/3端口上配置TLS证书的功能。这使得Kestrel的HTTP/3端点配置与HTTP/1.1和HTTP/2一致。
.ConfigureKestrel((context,options)={options.EnableAltSvc=true;options.Listen(IPAddress.Any,,listenOptions={listenOptions.Protocols=HttpProtocols.Http3;listenOptions.UseHttps(