.NET 5 Preview 7现在可以用了,可以进行评估了。这是此版本中的新增功能:

  • Blazor WebAssembly应用程序现在针对.NET 5

  • 更新了Blazor WebAssembly的调试要求

  • Blazor的可访问性改进

  • Blazor的性能改进

  • 证书认证性能改进

  • 发送HTTP/2 PING帧

  • 支持Kestrel套接字传输中的其他终结点类型

  • Kestrel中的自定义标头解码

  • 其他小改进

Get started

要开始使用.NET 5 Preview 7中的ASP.NET Core,请安装.NET 5 SDK。
您需要使用的Visual Studio 2019 16.7 PreView 5或更新的版本来使用.NET 5 Preview 7. .NET 5也支持了最新的预览的Visual Studio中的Mac。要将.NET 5与Visual Studio Code一起使用,请安装最新版本的C# extension。

升级现有项目

要将现有的ASP.NET Core应用程序从.NET 5 Preview 6升级到.NET 5 Preview 7,请执行以下操作:

  • 将所有Microsoft.AspNetCore.* 软件包引用更新为。5.0.0-preview.7.*

  • 将所有Microsoft.Extensions.* 程序包引用更新为。5.0.0-preview.7.*

  • 更新System.Net.Http.Json包引用。5.0.0-preview.7.*

请参阅.NET 5的ASP.NET Core 中重大更改的完整列表。

升级现有的Blazor WebAssembly项目

要升级现有的Blazor WebAssembly项目,请更新以下属性:

<TargetFramework>netstandard2.1</TargetFramework>
<RazorLangVersoin>3.0</RazorLangVersion>

<TargetFramework>net5.0</TargetFramework>
<RuntimeIdentifier>browser-wasm</RuntimeIdentifier>
<UseBlazorWebAssembly>true</UseBlazorWebAssembly>

另外,请删除对的所有包引用,因为不再需要它。Microsoft.AspNetCore.Components.WebAssembly.Build

什么是新的?

Blazor WebAssembly应用程序现在针对.NET 5

Blazor WebAssembly 3.2应用程序只能访问.NET Standard 2.1 API集。在此版本中,Blazor WebAssembly项目现在以.NET 5为目标,并且可以访问更广泛的API集。在.NET 5中实现对API的Blazor WebAssembly支持正在进行中,因此某些API可能会在运行时抛出。如果您因缺乏对特定API的支持而受阻,我们很乐意收到您的来信。net5.0``PlatformNotSupportedException

更新了Blazor WebAssembly的调试要求

要在Visual Studio Code中启用Blazor WebAssembly应用程序的调试,您以前需要安装JavaScript Debugger(Nightly)扩展程序。不再需要这样做,因为JavaScript调试器扩展现已作为VS Code的一部分提供。如果您先前已安装(Nightly)JavaScript调试器扩展,则可以将其卸载。仍然需要通过Visual Studio Code设置启用JavaScript调试器的预览版。

Blazor的可访问性改进

InputBase现在开始派生的内置Blazor输入组件会在验证失败时自动呈现aria-invalid

Blazor的性能改进

.NET 5中Blazor WebAssembly的主要投资领域之一是提高运行时性能。这是一个多方面的努力。以下是一些需要优化的高级区域:

  • .NET运行时执行

  • JSON序列化

  • JavaScript互操作

  • Blazor组件渲染

不断改进.NET 5的Blazor WebAssembly运行时性能。此版本包含一些初步的性能改进,我们希望在以后的.NET 5更新中共享有关此性能工作结果的更多详细信息。

证书认证性能改进

我们在ASP.NET Core中为证书身份验证添加了缓存。缓存证书验证可以大大提高证书验证的性能。我们的基准测试显示,启用缓存后,每秒请求的速度提高了400%。
您无需对应用程序进行任何更改即可利用性能改进。默认情况下,缓存处于打开状态。如果您愿意,有一些选项可以调整或禁用缓存。
在文档中找到有关ASP.NET Core 中的证书身份验证的更多信息。

发送HTTP/2 PING帧

HTTP / 2具有用于发送PING帧的机制,以确保空闲连接是否仍然有效。当使用长期闲置但只能间歇性地查看活动的长寿命流(例如gRPC流)时,此功能特别有用。通过在上设置限制,我们增加了在Kestrel中发送定期PING帧的功能KestrelServerOptions

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.ConfigureKestrel(options =>{options.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(10);options.Limits.Http2.KeepAlivePingTimeout = TimeSpan.FromSeconds(1);});webBuilder.UseStartup<Startup>();});

支持Kestrel套接字传输中的其他终结点类型

在Kestrel中引入的新API的基础上,Kestrel中的套接字传输(默认)现在允许您绑定到现有文件句柄和Unix域套接字。支持绑定到现有文件句柄,从而可以使用现有的Systemd集成,而无需使用libuv传输。System.Net.Sockets

Kestrel中的自定义标头解码

我们添加了根据标题名称指定用于解释传入标题的功能,而不是默认使用UTF-8。您可以将属性设置为on,以指定要使用的编码。System.Text.Encoding``RequestHeaderEncodingSelector``KestrelServerOptions

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.ConfigureKestrel(options =>{options.RequestHeaderEncodingSelector = encoding =>{switch (encoding){case "Host":return System.Text.Encoding.Latin1;default:return System.Text.Encoding.UTF8;}};});webBuilder.UseStartup<Startup>();});

其他改进

  • 对于预览版7,我们已开始将可为空的注释应用于ASP.NET Core程序集。我们打算在5.0版本期间对框架的大多数常见公共API表面进行注释。

  • CompareAttribute 现在可以应用于“Razor Page”模型上的属性。

  • 默认情况下,从主体绑定的参数和属性被认为是必需的。

  • 我们已经开始将可为空的注释应用于ASP.NET Core程序集。我们打算在.NET 5发布期间对框架的大多数常见公共API表面进行注释。

  • 现在,使用端点路由时的授权将接收HttpContext而不是端点实例。这允许授权中间件访问通过类无法访问的RouteData和属性。可以使用从上下文中获取端点。HttpContext``Endpoint``context.GetEndpoint()

  • 现在的默认格式默认为W3C格式。默认情况下,这使得ASP.NET Core中的分布式跟踪支持可与更多框架互操作。System.Diagnostics.Activity

  • CompareAttribute 现在可以应用于“Razor Page”模型上的属性。

  • FromBodyAttribute 现在支持配置允许将这些参数或属性视为可选的选项:
    C# public IActionResult Post([FromBody(EmptyBodyBehavior = EmptyBodyBehavior.Allow)] MyModel model) { ... }

给予反馈

我们希望您喜欢.NET 5中此版本的ASP.NET Core!我们很想听听您有关此最新.NET 5版本的经验。通过在GitHub上提交问题,让我们知道您的想法。
感谢您试用ASP.NET Core!

原文:https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-7/

ASP.NET Core在 .NET 5 Preview 7的更新相关推荐

  1. Consul作为配置中心,配置Asp.Net Core应用程序 依据key/value动态更新

    Consul作为配置中心,配置Asp.Net Core应用程序 依据key/value自动更新 https://github.com/wintoncode/Winton.Extensions.Conf ...

  2. 菜鸟入门【ASP.NET Core】6:配置的热更新、配置的框架设计

    配置的热更新 什么是热更新:这个词听着有点熟悉,但到底是什么呢? 一般来说:创建的项目都无法做到热更新:即项目无需重启,修改配置文件后读取到的信息就是修改配置之后的 我们只需要吧项目中用到的IOpti ...

  3. .NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

    .NET Core 3.0 Preview 3已经推出,它包含了一系列关于ASP.NET Core的新的更新. 下面是该预览版的更新列表: Razor组件改进: 单项目模板 新的Razer扩展 End ...

  4. java grpc 服务路由_.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

    原标题:.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容 英文:devblogs.microsoft.com 来源:艾心 译文:cnblogs.com/ediso ...

  5. 解决 ASP.NET Core 部署到 IIS,更新项目时文件夹正在使用错误

    前言 虽然 ASP.NET Core 应用程序是跨平台的,但我们还是经常将它部署到 Windows 的 IIS 下. 当 ASP.NET Core 站点运行时,它会锁定正在使用的程序集,如果这时向站点 ...

  6. ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1

    一.前言  最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划的学习 Vue 中生命周期的相关知 ...

  7. .NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新

    我们都知道在6月12日的时候微软发布了.NET Core 3.0的第6个预览版.针对.NET Core 3.0的发布我们国内的微软MVP-汪宇杰还发布的官翻版的博文进行了详细的介绍.具体的可以关注&q ...

  8. 升级 asp.net core 1.1 到 2.0 preview

    Upgrading to .NET Core 2.0 Preview 1 更新 依赖的类库 改为 标准库 2 web app  更改 csproj 文件---升级版本 <PropertyGrou ...

  9. ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)

    ASP.NET Core 1.1 Preview 1于2016年10月25日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强. 要将现有项目更新到ASP.NET Core 1.1 Pre ...

最新文章

  1. 遥感计算机分类的基本原理,遥感数字图像的计算机分类
  2. 【Linux】无法添加用户,报“useradd: cannot open /etc/passwd”问题解决过程记录
  3. asp.net的一个不错日期控件
  4. iphone屏幕录制_无需第三方APP,苹果iPhone手机屏幕录制的方法
  5. 分布式ELK日志采集系统
  6. 关于java中线程yield()方法问题
  7. C++:vs2017编写代码时的光标变成了黑块,选中字时替换掉了黑块选中的字【解决办法】
  8. 常见问题与常见算法的时间复杂度
  9. ]MySQL操作命令语句实例
  10. 《机器学习Python实践》第6章——数据理解
  11. paip.版本控件svn删除文件或目录后的恢复
  12. 整人c语言代码大全,(C语言整人代码大全.doc
  13. 解决EPSON LQ-630k打印机打印方向相反的问题(预览正常打印就不行)
  14. RTC唤醒低功耗(standby)模式
  15. 最简单的数据地图制作,只要6步就搞定!
  16. 有个人在偷偷的爱着你
  17. java der 解码_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
  18. 只要5个步骤,教你开发一个自己的chrome扩展程序
  19. [教你做小游戏] 《五子棋》怎么判断输赢?你能5分钟交出代码吗?
  20. RAID5和RAID10在磁盘读写选择对比

热门文章

  1. 一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题!...
  2. 巴巴运动网学习笔记(16-20)
  3. 命令行下的mysql的基本操作
  4. 从基础开始:Qomo OpenProject中的一些关键词
  5. wifi名称可以有空格吗_收购公司后可以变更公司名称吗,变更公司名称和股权如何处理?...
  6. 充分利用Microsoft Planner的6种方法
  7. geek_愚蠢的怪胎技巧:在Windows 7中启用秘密的“ How-To Geek”模式
  8. outlook日历不显示_如何在Outlook Online中突出显示不同的日历
  9. monogdb操作system.*权限
  10. 在Kubernetes集群上部署和管理JFrog Artifactory