.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. 翻译 - ASP.NET Core 托管和部署 - 在 Linux 上使用 Nginx 托管 ASP.NET Core 网站

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0 本文介 ...

  2. [翻译] ASP.NET Core 2.2 正式版发布

    本文为翻译,原文地址:https://blogs.msdn.microsoft.com/webdev/2018/12/04/asp-net-core-2-2-available-today/ 我(文章 ...

  3. 翻译 Asp.Net Core 2.2.0-preview1已经发布

    Asp.Net Core 2.2.0-preview1已经发布 原文地址 ASP.NET Core 2.2.0-preview1 now available 今天我们很高兴地宣布,现在可以试用ASP. ...

  4. [翻译] ASP.NET Core 简介

    ASP.NET Core 简介 原文地址:Introduction to ASP.NET Core         译文地址:asp.net core 简介           翻译:ganqiyin ...

  5. [翻译] ASP.NET Core 3.0 的新增功能

    ASP.NET Core 3.0 的新增功能 全文翻译自微软官方文档英文版 What's new in ASP.NET Core 3.0 本文重点介绍了 ASP.NET Core 3.0 中最重要的更 ...

  6. 翻译 - ASP.NET Core 基本知识 - 中间件(Middleware)

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-5.0 中间件是集成 ...

  7. 翻译 - ASP.NET Core 基本知识 - 通用主机 (Generic Host)

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-5.0 ...

  8. 翻译 - ASP.NET Core 基本知识 - Web 主机 (Web Host)

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/web-host?view=aspnetcore-5.0 ASP. ...

  9. ASP.NET Core 在 .NET 6 Preview 2 中的更新

    原文:<ASP.NET Core updates in .NET 6 Preview 2>,作者 Daniel Roth .NET 6 预览版 2 现已推出,其中包括许多对 ASP.NET ...

随机推荐

  1. Java XML文件解析

    四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 蓝色字体内容由上一篇博文中补充进来的,写作风格比较好,大家有兴趣可以去查看原文 众所周知,现在解析XML的方法越来越多,但主流的方法也就四 ...

  2. JavaWeb网上图书商城完整项目--day02-20.修改密码各层实现

    1.我们来看看后台操作的业务流程 每一层都按照上面的步骤来进行实现: 这里我们要使用commUtils.toBean把表单提交的参数封装成User对象,必须保证User对象中的字段和表单提交的字段的名 ...

  3. 【秒懂Java】【第1章_初识Java】04_学习资料

    为了学到更多的新知识,我们经常会去网上搜索各种学习资料.或者,在学习.工作过程中遇到了解决不了的问题,我们也会去网上搜索答案(比如百度.谷歌一下).这篇文章,主要想跟大家聊聊关于学习资料的选择. 建议 ...

  4. linux crontab 定时任务 邮件问题 及其相关的 dead.letter 问题

    最近开发项目的时候发现公司服务器用root账号登录的时候 一直会提示有新的信件,一直提示一直提示. 联想到另一台服务器上 的dead.letter文件每天都不断的变大  而且在 root家目录里 ,系 ...

  5. models.py连接mysql

    安装pymysql: other setting---project Interpreter---+pymysql 更改数据库 在项目名的同名文件下的settings.py中DATABASES,改成 ...

  6. 113资讯网:安装程序进入Admin后台出现:SQLSTATE[HY000] [1045] Access denied for user'root'@'localhost' (using password: YES)

    各项设置设置正确,就是出现这种原因! 1.config.inc.php解决办法: 修改phpMyAdmin的配置文件里的密码设置,进入phpMyAdmin的安装目录,找到config.inc.php配 ...

  7. linux test tool--"ab"

    install(ubuntu os): sudo apt-get install apache2-utils usage: ab -c 200 -t 100 http://localhost:8001 ...

  8. 【线型DP】CF1012C Hills 小山坡

    来了来了. 题目: 给你n个数,你一次操作可以把某一个数-1(可以减为负数),你的目标是使任意的k个数严格小于它旁边的两个数(第一个数只用严格小于第二个数,第n个数只用严格小于第n-1个数),问最少需 ...

  9. 在java中捕获异常时,使用log4j打印出错误堆栈信息

    当java捕获到异常时,把详细的堆栈信息打印出来有助于我们排查异常原因,并修复相关bug,比如下面两张图,是打印未打印堆栈信息和打印堆栈信息的对比: 那么在使用log4j输出日志时,使用org.apa ...

  10. JSR 303 进行后台数据校验

    一.JSR 303 1.什么是 JSR 303? JSR 是 Java Specification Requests 的缩写,即 Java 规范提案. 存在各种各样的 JSR,简单的理解为 JSR 是 ...