[Many links] .NET 7 ASP.NET Core Roadmap

[Many links] .NET 7 ASP.NET Core Roadmap

Some feature highlights we plan to add to the server in .NET 7 version

Last updated 2/19/2022 6:05 PM
追逐时光者
7 min read
Category
ASP.NET Core
Tags
.NET C# ASP.NET Core

Source: https://github.com/dotnet/aspnetcore/issues/39504

Reposted from Zhihu: https://zhuanlan.zhihu.com/p/469359820

Each list is a link, just browse through. If interested, click the original article or the linked article on the website. The official account won't include links because they can't be clicked...

ASP.NET Core Runtime

Server - Features

Here are some feature highlights we plan to add to the server in the .NET 7 release:

  • Add support for output caching #27387
  • Shared port with Kestrel+YARP #39640
  • ANCM for ARM64 #39281
  • WebSocket support over HTTP/2 with Kestrel #7801
  • OCSP stapling support for Kestrel #4762
  • Rate limiting for Kestrel - design mechanism for applying backpressure to accepted connections #13295
  • [Theme] Support migrating .NET Framework applications to .NET Core #40078

Server - Performance

.NET 6 was a major release for server performance, and we aim to further improve in .NET 7, as follows:

  • Connection performance improvements #39846
  • Allow server memory pool to shrink #27394
  • Enable kernel response buffering for HTTP.sys server #14455
  • Improve HTTP/2 performance using Channels #30235

HTTP/3 Support

HTTP/3 support was provided as a preview feature in .NET 6. For .NET 7, we aim to complete it and make it a supported feature.

  • HTTP/3: UseHttps configuration #34858
  • Implement Http3 static response header compression #33980
  • Dynamic table support for HTTP/3 #28433
  • HTTP/3: Remove non-final h3 ALPN #35032
  • HTTP/3: Enable Kestrel by default in .NET 7 #36486

ASP.NET Web Frameworks

Minimal APIs

  • Improve minimal API routing via grouping #36007
  • Add support for endpoint filters #37853
  • [Epic] OpenAPI in .NET 7 #37098
  • Extend the ability to customize parameter binding for Minimal APIs #35489
  • Add anti-forgery (anti-csrf) support to minimal endpoints #38630
  • Generate security schemes for individual endpoints/operations #39761
  • Support binding request body as Stream/ReadOnlySequence or ReadOnlyMemory/ReadOnlySpan #38153
  • Consider a better API to configure JsonOptions for minimal actions/routes to code #39226
  • Make IResult methods more testable #37502
  • Minimal API does not support binding to StringValues from query or headers #36726
  • Minimal actions - array support in method signatures from query string binding #32516
  • Usage of ProblemDetails is inconsistent across ASP.NET Core #32957
  • Configuring authorization for minimal APIs should be simple and feature-rich #34545
  • Design validation for minimal APIs #30666
  • [Epic]: Minimal APIs + MVC #36637 analyzers (improving developer experience)

SignalR

  • Support returning values from client calls #5280
  • Refresh authentication tokens in SignalR #5297
  • [Epic] SignalR should have a C++ client #5301 (improve existing C++ client)

Rate Limiting

  • Complete implementation of non-generic rate limiters (fixed window, sliding window, token bucket, concurrency limiter) #37381
  • Design generic rate limiting API #37383
  • Implement rate limiting middleware in aspnetcore #37384
  • Redesign current aspnetcore concurrency limiter middleware to use new abstractions and implementations #38306
  • Rate limiting implementation in Yarp #37387
  • Rate limiting for Kestrel - design mechanism for applying backpressure to accepted connections #13295
  • Move rate limiting abstractions/API to dotnet/runtime #37385

gRPC (dotnet-gRPC)

  • [EPIC] gRPC JSON transcoding grpc/grpc-dotnet#1583 (gRPC/HTTP)

Orleans

  • Implement POCO Grains orleans#7351
  • Configurable serializer for grain persistence orleans#7471
  • Remove SMS provider orleans#7475
  • Implement stateless service abstraction orleans#7469
  • [Epic]: Implement workflows as a primitive in Orleans orleans#7487
  • [Epic]: Improve experience for Orleans customers deploying to Azure orleans#7486
  • Simplify streaming configuration abstractions orleans#7473
  • Add Orleans templates for aspnetcore orleans#7479

ASP.NET Web UI

Blazor Hybrid

  • Blazor with MAUI cannot use or