{"id":56732,"date":"2025-05-13T11:30:00","date_gmt":"2025-05-13T18:30:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=56732"},"modified":"2025-07-15T11:32:55","modified_gmt":"2025-07-15T18:32:55","slug":"dotnet-10-preview-4","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/dotnet-10-preview-4\/","title":{"rendered":".NET 10 Preview 4 is now available!"},"content":{"rendered":"<p>Today, we are excited to announce the <strong>fourth<\/strong> preview release of .NET 10 with enhancements across the .NET Runtime, SDK, libraries, C#, ASP.NET Core, Blazor, .NET MAUI, and more. Check out the full release notes linked below and get started today.<\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/dotnet.microsoft.com\/download\/dotnet\/10.0\" target=\"_blank\">Download .NET 10 Preview 4<\/a><\/div><\/p>\n<p>This release contains the following improvements.<\/p>\n<h2><strong>\ud83d\udcdaLibraries<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/libraries.md#add-out-of-proc-trace-support-for-activity-events-and-links\">Add Out-of-Proc Trace Support for Activity Events and Links<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/libraries.md#rate-limiting-trace-sampling-support\">Rate Limiting Trace Sampling Support<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/libraries.md#new-async-zip-apis\">New async Zip APIs<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/libraries.md#performance-improvement-in-gzipstream-for-concatenated-streams\">Performance improvement in GZipStream for concatenated streams<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/libraries.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>\u23f1\ufe0fRuntime<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/runtime.md#escape-analysis-for-local-struct-fields\">Escape Analysis for Local Struct Fields<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/runtime.md#inlining-improvements\">Inlining Improvements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/runtime.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>\ud83d\udee0\ufe0f SDK<\/strong><\/h2>\n<ul>\n<li>No new features added in this preview release.<\/li>\n<\/ul>\n<h2><strong>C#<\/strong><\/h2>\n<ul>\n<li>No new features added in this preview release.<\/li>\n<\/ul>\n<h2><strong>F#<\/strong><\/h2>\n<p>This release you will find updates across the <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/fsharp.md#f-language\">F# language<\/a>, <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/fsharp.md#fsharpcore-standard-library\">FSharp.Core standard library<\/a>, and <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/fsharp.md#fsharpcompilerservice\">FSharp.Compiler.Service<\/a>.<\/p>\n<h2><strong>Visual Basic<\/strong><\/h2>\n<ul>\n<li>No new features added in this preview release.<\/li>\n<\/ul>\n<h2><strong>\ud83c\udf10 ASP.NET Core &amp; Blazor<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#json-patch-with-systemtextjson\">JSON Patch with System.Text.Json<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#minimal-api-validation-for-record-types\">Minimal API validation for record types<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#generate-openapi-schemas-in-transformers\">Generate OpenAPI schemas in transformers<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#improved-openapi-xml-documentation-support\">Improved OpenAPI XML documentation support<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#access-the-openapi-document-with-iopenapidocumentprovider\">Access the OpenAPI document with <code>IOpenApiDocumentProvider<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#openapinet-updated-to-preview17\">OpenAPI.NET updated to Preview.17<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#javascript-interop-for-constructors-and-properties\">JavaScript interop for constructors and properties<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#reference-a-javascript-function-with-ijsobjectreference\">Reference a JavaScript function with <code>IJSObjectReference<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#blazor-webassembly-runtime-diagnostics\">Blazor WebAssembly runtime diagnostics<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#signal-not-found-responses-using-navigationmanager\">Signal Not Found responses using <code>NavigationManager<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#navigationmanagernavigateto-no-longer-throws-a-navigationexception\"><code>NavigationManager.NavigateTo<\/code> no longer throws a <code>NavigationException<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#quickgrid-method-closecolumnoptionsasync-renamed-to-hidecolumnoptionsasync\"><code>QuickGrid<\/code> method <code>CloseColumnOptionsAsync<\/code> renamed to <code>HideColumnOptionsAsync<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#writeimportmaptohtml-renamed-to-overridehtmlassetplaceholders\"><code>WriteImportMapToHtml<\/code> renamed to <code>OverrideHtmlAssetPlaceholders<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#preload-blazor-framework-static-assets\">Preload Blazor framework static assets<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#blazor-webassembly-standalone-app-template-updates\">Blazor WebAssembly Standalone App template updates<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#blazor-boot-manifest-merged-into-dotnetjs\">Blazor boot manifest merged into dotnet.js<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md#use-webapplicationfactory-with-kestrel-for-integration-testing\">Use <code>WebApplicationFactory<\/code> with Kestrel for integration testing<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/aspnetcore.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>\ud83d\udcf1 .NET MAUI<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/dotnetmaui.md#mediapicker-modernization\">MediaPicker modernization<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/dotnetmaui.md#nullable-pickers\">Nullable Pickers<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/dotnetmaui.md\">Full Release Notes<\/a><\/li>\n<li>Full list of quality improvements on <a href=\"https:\/\/github.com\/dotnet\/maui\/releases\/\">dotnet\/maui GitHub releases<\/a>.<\/li>\n<\/ul>\n<h3><strong>\ud83e\udd16 .NET for Android<\/strong><\/h3>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/dotnetmaui.md#use-systemiocompression-for-apk-creation\">Use System.IO.Compression for <code>.apk<\/code> creation<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/dotnetmaui.md#reduced-download-size\">Reduced download size<\/a><\/li>\n<li>Full list of quality improvements on <a href=\"https:\/\/github.com\/dotnet\/android\/releases\/\">dotnet\/android GitHub releases<\/a>.<\/li>\n<\/ul>\n<h3><strong>\ud83c\udf4e .NET for iOS, Mac Catalyst, macOS, tvOS<\/strong><\/h3>\n<p>This release was focused on quality improvements and build performance. A detailed list can be found on <a href=\"https:\/\/github.com\/dotnet\/macios\/releases\/\">dotnet\/macios GitHub releases<\/a> including a list of <a href=\"https:\/\/github.com\/dotnet\/macios\/wiki\/Known-issues-in-.NET10\">Known issues<\/a>.<\/p>\n<h2><strong>\ud83d\udda5\ufe0f Windows Forms<\/strong><\/h2>\n<p>This release introduced <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/winforms.md#shared-core-clipboard-functionality-with-wpf\">shared core clipboard functionality with WPF<\/a> and was focused on several quality and engineering improvements. See the <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/winforms.md\">full release notes<\/a> for details.<\/p>\n<h2><strong>\ud83d\udda5\ufe0f Windows Presentation Foundation (WPF)<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/wpf.md#messagebox-api-enhancements\">API Enhancements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/wpf.md#shared-clipboard-code\">Shared Clipboard Code<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/wpf.md#fluent-theme-bug-fixes-and-enhancements\">Fluent Theme Bug Fixes and Enhancements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/wpf.md#performance-improvements\">Performance Improvements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/wpf.md\">Full Release Notes<\/a> for details.<\/li>\n<\/ul>\n<h2><strong>\ud83c\udf81 Entity Framework Core<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/efcore.md#full-text-search-support-on-azure-cosmos-db-for-nosql\">Full-text search support on Azure Cosmos DB for NoSQL<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/efcore.md#hybrid-search\">Hybrid search<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/efcore.md#vector-similarity-search-exits-preview\">Vector similarity search exits preview<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/efcore.md#small-improvements\">Several small improvements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview4\/efcore.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>\ud83d\udce6 Container Images<\/strong><\/h2>\n<ul>\n<li>No new features added in this preview release.<\/li>\n<\/ul>\n<h2>\ud83d\ude80 Get started<\/h2>\n<p>To get started with .NET 10, <a href=\"https:\/\/dotnet.microsoft.com\/download\/dotnet\/10.0\">install the .NET 10 SDK<\/a>.<\/p>\n<p>If you&#8217;re on Windows using Visual Studio, we recommend installing the latest <a href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\">Visual Studio 2022 preview<\/a>, which now includes <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/agent-mode-has-arrived-in-preview-for-visual-studio\/\">GitHub Copilot agent mode and MCP server support<\/a>. You can also use Visual Studio Code and the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-dotnettools.csdevkit\">C# Dev Kit<\/a> extension with .NET 10.<\/p>\n<h2>\ud83d\udce6 Join us for .NET 10 Preview 4 Unboxed Live Stream<\/h2>\n<p>Join us for a live stream unboxing with the team to discuss what&#8217;s new in this preview release, with live demos from the dev team!<\/p>\n<p><iframe width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/Z9AmQXc5UKc\" allowfullscreen><\/iframe><\/p>\n<h2>\ud83d\udce2 .NET 10 Discussions<\/h2>\n<p>The team has been making <a href=\"https:\/\/aka.ms\/dotnet\/10\/preview4\">monthly announcements<\/a> alongside full <a href=\"https:\/\/github.com\/dotnet\/core\/tree\/main\/release-notes\/10.0\">release notes<\/a> on the <a href=\"https:\/\/github.com\/dotnet\/core\/discussions\/categories\/news\">dotnet\/core GitHub Discussions<\/a> and has seen great engagement and feedback from the community.<\/p>\n<h2>\ud83d\udd14 Stay up-to-date with .NET 10<\/h2>\n<p>You can stay up-to-date with all the features of .NET 10 with:<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/dotnet\/core\/whats-new\/dotnet-10\/overview\">What&#8217;s new in .NET 10<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/dotnet\/csharp\/whats-new\/csharp-14\">What&#8217;s new in C# 14<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/dotnet\/maui\/whats-new\/dotnet-10\">What&#8217;s new in .NET MAUI<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/aspnet\/core\/release-notes\/aspnetcore-10.0\">What&#8217;s new in ASP.NET Core<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/ef\/core\/what-is-new\/ef-core-10.0\/whatsnew\">What&#8217;s new in Entity Framework Core<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/dotnet\/desktop\/winforms\/whats-new\/net100\">What&#8217;s new in Windows Forms<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/dotnet\/desktop\/wpf\/whats-new\/net100\">What&#8217;s new in WPF<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/dotnet\/core\/compatibility\/10.0\">Breaking Changes in .NET 10<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/README.md\">.NET 10 Releases<\/a><\/li>\n<\/ul>\n<p>Additionally, be sure to subscribe to the GitHub Discussions <a href=\"https:\/\/github.com\/dotnet\/core\/discussions\/categories\/news.atom\">RSS news feed<\/a> for all release announcements.<\/p>\n<p>We want your feedback, so head over to the <a href=\"https:\/\/aka.ms\/dotnet\/10\/preview4\">.NET 10 Preview 4 GitHub Discussion<\/a> to discuss features and give feedback for this release.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Find out about the new features in .NET 10 Preview 4 across the .NET runtime, SDK, libraries, ASP.NET Core, Blazor, C#, .NET MAUI, and more!<\/p>\n","protected":false},"author":11288,"featured_media":56733,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,7233,7509,7251,756],"tags":[7892,7744],"class_list":["post-56732","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-maui","category-aspnetcore","category-blazor","category-csharp","tag-dotnet-10","tag-featured-preview"],"acf":[],"blog_post_summary":"<p>Find out about the new features in .NET 10 Preview 4 across the .NET runtime, SDK, libraries, ASP.NET Core, Blazor, C#, .NET MAUI, and more!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/56732","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\/11288"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=56732"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/56732\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/56733"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=56732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=56732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=56732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}