{"id":55868,"date":"2025-03-18T11:25:00","date_gmt":"2025-03-18T18:25:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/dotnet-10-preview-2\/"},"modified":"2025-03-18T11:25:00","modified_gmt":"2025-03-18T18:25:00","slug":"dotnet-10-preview-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/dotnet-10-preview-2\/","title":{"rendered":".NET 10 Preview 2 is now available!"},"content":{"rendered":"<p>Today, we are excited to announce the second 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 2<\/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\/preview2\/libraries.md#encryption-algorithm-can-now-be-specified-in-pkcs12pfx-export\">Encryption algorithm can now be specified in PKCS#12\/PFX Export<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/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\/preview2\/runtime.md#array-enumeration-de-abstraction\">Array Enumeration De-Abstraction<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/runtime.md#inlining-of-late-devirtualized-methods\">Inlining of Late Devirtualized Methods<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/runtime.md#devirtualization-based-on-inlining-observations\">Devirtualization Based on Inlining Observations<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/runtime.md#support-for-casting-and-negation-in-nativeaots-type-preinitializer\">Support for Casting and Negation in NativeAOT&#8217;s Type Preinitializer<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/runtime.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>\ud83d\udee0\ufe0f SDK<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/sdk.md#more-consistent-command-order\">More consistent command order for <code>dotnet<\/code> CLI<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/sdk.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>C#<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/csharp.md#partial-events-and-constructors\">Partial events and constructors<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/csharp.md\">Full Release Notes<\/a><\/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\/preview2\/fsharp.md#f-language\">F# language<\/a>, <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/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\/preview2\/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<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/visualbasic.md\">Full Release Notes<\/a><\/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\/preview2\/aspnetcore.md#reconnection-ui-component-added-to-the-blazor-web-app-project-template\">Reconnection UI component added to the Blazor Web App project template<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#navigateto-no-longer-scrolls-to-the-top-for-same-page-navigations\"><code>NavigateTo<\/code> no longer scrolls to the top for same page navigations<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#ignore-query-string-and-fragment-when-using-navlinkmatchall\">Ignore query string and fragment when using <code>NavLinkMatch.All<\/code><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#close-quickgrid-column-options\">Close <code>QuickGrid<\/code> column options<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#populate-xml-doc-comments-into-openapi-document\">Populate XML doc comments into OpenAPI document<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#upgrade-to-openapinet-v200-preview7\">Upgrade to OpenAPI.NET v2.0.0-preview7<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#treat-empty-strings-in-form-posts-as-null-for-nullable-value-types\">Treat empty strings in form posts as <code>null<\/code> for nullable value types<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/aspnetcore.md#new-authentication-and-authorization-metrics\">New authentication and authorization metrics<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/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\/preview2\/dotnetmaui.md#shadowtypeconverter\">ShadowTypeConverter<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/dotnetmaui.md#speechoptions-rate\">SpeechOptions Rate<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/dotnetmaui.md#styling-modal-as-popover\">Styling Modal as Popover<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/dotnetmaui.md#switchoffcolor\">Switch.OffColor<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/dotnetmaui.md#hybridwebview-new-invokejavascriptasync-method\">HybridWebView new InvokeJavascriptAsync Method<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/dotnetmaui.md#deprecations\">Deprecations<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/dotnetmaui.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h3><strong>.NET for Android<\/strong><\/h3>\n<p>This release was focused on quality improvements. A detailed list can be found on <a href=\"https:\/\/github.com\/dotnet\/android\/releases\/\">dotnet\/android GitHub releases<\/a>.<\/p>\n<h3><strong>.NET for iOS, Mac Catalyst, macOS, tvOS<\/strong><\/h3>\n<p>This release was focused on quality improvements. 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<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/winforms.md#clipboard-code-sharing-with-wpf\">Clipboard Code Sharing with WPF<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/winforms.md#ported-more-systemwindowsformsdesign-uitypeeditors\">Ported more System.Windows.Forms.Design UITypeEditors<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/winforms.md#quality-enhancements\">Quality Enhancements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/winforms.md\">Full Release Notes<\/a><\/li>\n<\/ul>\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\/preview2\/wpf.md#performance-improvements\">Performance Improvements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/wpf.md#fluent-style-changes\">Fluent Style Changes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/wpf.md#bug-fixes\">Bug Fixes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/wpf.md#engineering-health\">Engineering Health<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/wpf.md\">Full Release Notes<\/a><\/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\/preview2\/efcore.md#support-for-the-net-10-rightjoin-operator\">Support for the .NET 10 RightJoin operator<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/efcore.md#small-improvements\">Small improvements<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/efcore.md\">Full Release Notes<\/a><\/li>\n<\/ul>\n<h2><strong>\ud83d\udce6 Container Images<\/strong><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/containers.md#native-aot-sdk-images\">Native AOT SDK images<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/10.0\/preview\/preview2\/containers.md\">Full Release Notes<\/a><\/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>. 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 2 Unboxed Live Stream<\/h2>\n<p>Join us for an unboxing video 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\/a3YdK2dKf2w\" 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\/preview2\">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\/preview2\">.NET 10 Preview 2 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 2 across the .NET runtime, SDK, libraries, ASP.NET Core, Blazor, C#, .NET MAUI, and more!<\/p>\n","protected":false},"author":11288,"featured_media":55869,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,7233,7509,7251,756],"tags":[7892,7744],"class_list":["post-55868","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 2 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\/55868","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=55868"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/55868\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/55869"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=55868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=55868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=55868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}