{"id":43236,"date":"2022-11-08T08:59:50","date_gmt":"2022-11-08T15:59:50","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=43236"},"modified":"2022-11-08T16:22:52","modified_gmt":"2022-11-08T23:22:52","slug":"announcing-asp-net-core-in-dotnet-7","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-asp-net-core-in-dotnet-7\/","title":{"rendered":"Announcing ASP.NET Core in .NET 7"},"content":{"rendered":"<p>.NET 7 is now <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-dotnet-7\">released<\/a>! ASP.NET Core in .NET 7 includes everything you need to build rich modern web UI and powerful back-end services.<\/p>\n<h2>What&#8217;s new?<\/h2>\n<p>Here&#8217;s a sampling of the great new features and improvements in ASP.NET Core for .NET 7:<\/p>\n<ul>\n<li><strong>Servers and runtime<\/strong>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/performance\/rate-limit?view=aspnetcore-7.0\">Rating limiting<\/a><\/strong>: Limit the rate of handled requests using flexible endpoint configuration and policies.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/performance\/caching\/output?view=aspnetcore-7.0\">Output caching<\/a><\/strong>: Configure caching for responses to more efficiently handle requests.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/fundamentals\/middleware\/request-decompression?view=aspnetcore-7.0\">Request decompression<\/a><\/strong>: Accept requests with compressed content.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core?view=aspnetcore-7.0\">HTTP\/3<\/a><\/strong>: Built-in support for HTTP\/3, the latest HTTP version based on the new QUIC multiplexed transport protocol.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/fundamentals\/websockets?view=aspnetcore-7.0#http2-websockets-support\">WebSockets over HTTP\/2<\/a><\/strong>: Use WebSockets over HTTP\/2 connections.<\/li>\n<li><strong><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/experimental-webtransport-over-http-3-support-in-kestrel\/\">WebTransport (experimental)<\/a><\/strong>: Create streams and data grams over HTTP\/3 with experimental support for <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-webtrans-http3\/\">WebTransport<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Minimal APIs<\/strong>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/fundamentals\/minimal-apis\/min-api-filters?view=aspnetcore-7.0\">Endpoint filters<\/a><\/strong>: Use endpoint filters to run cross-cutting code before or after a route handler.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/fundamentals\/minimal-apis?view=aspnetcore-7.0#typed-results\">Typed results<\/a><\/strong>: Return strongly typed results from minimal APIs.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/fundamentals\/minimal-apis?view=aspnetcore-7.0#route-groups\">Route groups<\/a><\/strong>: Organize groups of endpoints with a common prefix<\/li>\n<\/ul>\n<\/li>\n<li><strong>gRPC<\/strong>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/grpc\/json-transcoding?view=aspnetcore-7.0\">JSON transcoding<\/a><\/strong>: Expand the reach of your gRPC services by also exposing them as JSON-based APIs<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/grpc\/json-transcoding-openapi?view=aspnetcore-7.0\">OpenAPI with JSON transcoding (experimenal)<\/a><\/strong>: Use experimental support for generating OpenAPI specs for your gRPC JSON transcoded services.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/grpc\/health-checks?view=aspnetcore-7.0\">gRPC health checks<\/a><\/strong>: Report and check the health of gRPC server apps.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/grpc\/authn-and-authz?view=aspnetcore-7.0#bearer-token-with-grpc-client-factory\">gRPC client <code>AddCallCredentials<\/code><\/a><\/strong>: Create clients that send authorized requests using bearer tokens.<\/li>\n<\/ul>\n<\/li>\n<li><strong>SignalR<\/strong>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/signalr\/hubs?view=aspnetcore-7.0#client-results\">Client results<\/a><\/strong>: Return client results to the server in response to requests from the server.<\/li>\n<\/ul>\n<\/li>\n<li><strong>MVC<\/strong>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/release-notes\/aspnetcore-7.0?view=aspnetcore-7.0#support-for-nullable-models-in-mvc-views-and-razor-pages\">Nullable view and page models<\/a><\/strong>: Nullable page and view models are now supported to improve the experience when using null state checking.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Blazor<\/strong>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/blazor\/components\/?view=aspnetcore-7.0#blazor-custom-elements\">Custom elements<\/a><\/strong>: Build standard HTML custom elements with Blazor to integrate Blazor components with any JavaScript-based app.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/blazor\/fundamentals\/routing?view=aspnetcore-7.0#handleprevent-location-changes\">Handle location changing events<\/a><\/strong>: Intercept location changing events to create custom user experiences when navigating.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/blazor\/components\/data-binding?view=aspnetcore-7.0\">Bind after\/get\/set modifiers<\/a><\/strong>: Run async logic after data binding and independently control how data binding gets and sets the data.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/blazor\/security\/webassembly\/additional-scenarios?view=aspnetcore-7.0#custom-authentication-request-scenarios\">Dynamic authentication requests<\/a><\/strong>: Create dynamic authentication requests at runtime with custom parameters to handle advanced authentication scenarios in Blazor WebAssembly apps.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/blazor\/javascript-interoperability\/import-export-interop?view=aspnetcore-7.0\">Improved JavaScript interop on WebAssembly<\/a><\/strong>: Optimize JavaScript interop call when running on WebAssembly using the new <code>[JSImport]<\/code>\/<code>[JSExport]<\/code> support.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/blazor\/tooling?view=aspnetcore-7.0&amp;pivots=windows#net-webassembly-build-tools-1\">WebAssembly SIMD &amp; exception handling<\/a><\/strong>: Improve performance with .NET WebAssembly ahead-of-time (AOT) compilation using WebAssembly SIMD and exception handling support.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>For a full list of everything that&#8217;s new in ASP.NET Core in .NET 7, check out the <a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/release-notes\/aspnetcore-7.0\">ASP.NET Core in .NET 7 release notes<\/a>.<\/p>\n<h2>Get started<\/h2>\n<p>To get started with ASP.NET Core in .NET 7, <a href=\"https:\/\/dotnet.microsoft.com\/download\">install the .NET 7 SDK<\/a>. .NET 7 is also included with Visual Studio 2022. Mac users should use the latest Visual Studio 2022 for Mac preview.<\/p>\n<h2>Upgrade an existing project<\/h2>\n<p>To upgrade an existing ASP.NET Core app from .NET 6 to .NET 7, follow the steps in <a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/migration\/60-70\">Migrate from ASP.NET Core 6.0 to 7.0<\/a><\/p>\n<p>To upgrade an existing ASP.NET Core app from .NET 7 RC2 to .NET 7, update all ASP.NET Core package references to <code>7.0.0<\/code>.<\/p>\n<p>That&#8217;s it! You should be all set to enjoy the benefits of .NET 7.<\/p>\n<p>See also the full list of <a href=\"https:\/\/learn.microsoft.com\/dotnet\/core\/compatibility\/7.0\">breaking changes<\/a> in ASP.NET Core for .NET 7.<\/p>\n<h2>Join us for the .NET 7 release at .NET Conf 2022<\/h2>\n<p>Come celebrate with us and learn all about the .NET 7 release at <a href=\"https:\/\/dotnetconf.net\">.NET Conf 2022<\/a>, a FREE, three day virtual developer event with over 80 sessions featuring speakers from the .NET team and the broader .NET community. The conference starts TODAY and goes from November 8-10. We hope you can join us!<\/p>\n<h2>.NET 7 on Azure<\/h2>\n<p>.NET 7 is already deployed and ready to be used across your favorite Azure services, like <a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=2214434\">Azure App Service<\/a>, <a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=2214834\">Azure Functions<\/a>, and <a href=\"https:\/\/aka.ms\/swa-dotnet7-ga\">Azure Static Web Apps<\/a>. Get started building with .NET 7 on Azure today!<\/p>\n<h2>Thank you!<\/h2>\n<p>Thank you to everyone in the community who helped make this release of .NET 7 possible! This release represents the culmination of many GitHub issues, pull requests, design feedback comments and documentation updates contributed by many members of the .NET community. We couldn&#8217;t have made it to this point without you!<\/p>\n<p>We hope you enjoy this release of ASP.NET Core in .NET 7. We&#8217;re eager to hear about your experiences building with it. Let us know about any feedback you have on this release on <a href=\"https:\/\/github.com\/dotnet\/aspnetcore\/issues\">GitHub<\/a>.<\/p>\n<p>Thanks again, and happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>.NET 7 is now available! Check out all the new features and improvements in ASP.NET Core in .NET 7.<\/p>\n","protected":false},"author":417,"featured_media":43288,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,197,7509,7251],"tags":[7611],"class_list":["post-43236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-aspnet","category-aspnetcore","category-blazor","tag-dotnet-7"],"acf":[],"blog_post_summary":"<p>.NET 7 is now available! Check out all the new features and improvements in ASP.NET Core in .NET 7.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/43236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/417"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=43236"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/43236\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/43288"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=43236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=43236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=43236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}