Skip to content

What's new article #45978

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 58 additions & 90 deletions docs/whats-new/dotnet-docs-mod1.md
Original file line number Diff line number Diff line change
@@ -1,123 +1,91 @@
---
title: ".NET docs: What's new for January 2025"
description: "What's new in the .NET docs for January 2025."
ms.custom: January-2025
ms.date: 02/01/2025
title: ".NET docs: What's new for April 2025"
description: "What's new in the .NET docs for April 2025."
ms.custom: April-2025
ms.date: 05/01/2025
---

# .NET docs: What's new for January 2025
# .NET docs: What's new for April 2025

Welcome to what's new in the .NET docs for January 2025. This article lists some of the major changes to docs during this period.
Welcome to what's new in the .NET docs for April 2025. This article lists some of the major changes to docs during this period.

## .NET breaking changes

### New articles

- [`dotnet sln add` no longer allows invalid file names](../core/compatibility/sdk/9.0/dotnet-sln.md)
- [ActivitySource.CreateActivity and ActivitySource.StartActivity behavior change](../core/compatibility/core-libraries/10.0/activity-sampling.md)
- [API obsoletions with non-default diagnostic IDs (.NET 10)](../core/compatibility/core-libraries/10.0/obsolete-apis.md)
- [Breaking changes in .NET 10](../core/compatibility/10.0.md)
- [C# 14 overload resolution with span parameters](../core/compatibility/core-libraries/10.0/csharp-overload-resolution.md)
- [Consistent shift behavior in generic math](../core/compatibility/core-libraries/10.0/generic-math.md)
- [Default RID used when targeting .NET Framework](../core/compatibility/sdk/9.0/default-rid.md)
- [Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE](../core/compatibility/globalization/10.0/version-override.md)
- [LDAP DirectoryControl parsing is now more stringent](../core/compatibility/core-libraries/10.0/ldap-directorycontrol-parsing.md)
- [MacCatalyst version normalization](../core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md)
- [Renamed parameter in HtmlElement.InsertAdjacentElement](../core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md)
- [TreeView checkbox image truncation](../core/compatibility/windows-forms/10.0/treeview-text-location.md)
- [X500DistinguishedName validation is stricter](../core/compatibility/cryptography/10.0/x500distinguishedname-validation.md)

## AI in .NET

### New articles

- [Create a minimal AI assistant using .NET](../ai/quickstarts/create-assistant.md)
- [.NET CLI `--interactive` defaults to `true` in user scenarios](../core/compatibility/sdk/10.0/dotnet-cli-interactive.md)
- [Assembly load directory resolves through symbolic links on Windows](../core/compatibility/deployment/9.0/assembly-load-directory.md)
- [Default trace context propagator updated to W3C standard](../core/compatibility/core-libraries/10.0/default-trace-context-propagator.md)
- [Linux native library resolution no longer uses `netcoredeps`](../core/compatibility/interop/8.0/linux-netcoredeps.md)
- [Streaming HTTP responses enabled by default in browser HTTP clients](../core/compatibility/networking/10.0/default-http-streaming.md)

## .NET fundamentals

### New articles

- [.NET SDK container creation overview](../core/containers/overview.md)
- [CA2024: Do not use StreamReader.EndOfStream in async methods](../fundamentals/code-analysis/quality-rules/ca2024.md)
- [Containerize a .NET app with dotnet publish](../core/containers/sdk-publish.md)
- [Distributed tracing in System.Net libraries](../fundamentals/networking/telemetry/tracing.md)
- [Keyed DI support in `IHttpClientFactory`](../core/extensions/httpclient-factory-keyed-di.md)
- [MSTEST0038: Don't use 'Assert.AreSame' or 'Assert.AreNotSame' with value types](../core/testing/mstest-analyzers/mstest0038.md)
- [MSTEST0039: Use newer 'Assert.Throws' methods](../core/testing/mstest-analyzers/mstest0039.md)
- [MSTEST0040: Do not assert inside 'async void' contexts](../core/testing/mstest-analyzers/mstest0040.md)
- [NETSDK1032: RuntimeIdentifier and PlatformTarget must be compatible](../core/tools/sdk-errors/netsdk1032.md)
- [NETSDK1144: Optimizing assemblies for size failed](../core/tools/sdk-errors/netsdk1144.md)
- [Preview APIs](../fundamentals/runtime-libraries/preview-apis.md)
- [QUIC configuration options](../fundamentals/networking/quic/quic-options.md)
- [Serialization extension methods on HttpClient](../standard/serialization/system-text-json/httpclient-extensions.md)
- [SYSLIB0058: Certain SslStream properties are obsolete](../fundamentals/syslib-diagnostics/syslib0058.md)
- [SYSLIB0059: SystemEvents.EventsThreadShutdown callbacks aren't run before the process exits](../fundamentals/syslib-diagnostics/syslib0059.md)
- [SYSLIB0060: Rfc2898DeriveBytes constructors are obsolete](../fundamentals/syslib-diagnostics/syslib0060.md)
- [Compile-time metric source generation](../core/diagnostics/metrics-generator.md)
- [dotnet package remove](../core/tools/dotnet-package-remove.md)
- [dotnet reference list](../core/tools/dotnet-reference-list.md)
- [Migrate from .NET Framework Windows Performance Counters to .NET metrics](../core/diagnostics/migrate-from-windows-performance-counters.md)
- [MSTEST0042: Avoid duplicated 'DataRow' entries](../core/testing/mstest-analyzers/mstest0042.md)
- [MSTEST0043: Use retry attribute on test method](../core/testing/mstest-analyzers/mstest0043.md)
- [SYSLIB0061: System.Linq.Queryable.MaxBy and System.Linq.Queryable.MinBy taking an IComparer\<TSource\> are obsolete.](../fundamentals/syslib-diagnostics/syslib0061.md)

### Updated articles

- [Creating metrics](../core/diagnostics/metrics-instrumentation.md) - [diagnostics] Add InstrumentAdvice details to instrumentation doc
- [dotnet-coverage code coverage utility](../core/additional-tools/dotnet-coverage.md) - Update dotnet-coverage docs. Adding uninstrument command
- [Microsoft.Testing.Platform and VSTest comparison](../core/testing/microsoft-testing-platform-vs-vstest.md) - Add first level info for migration off of VSTest
- [Tutorial: Containerize a .NET app](../core/docker/build-container.md) - Address issues related to .NET containers
- [Miscellaneous Constructs in Regular Expressions](../standard/base-types/miscellaneous-constructs-in-regular-expressions.md) - Change "alignment" to "width"

## C# language

### New articles

- [Custom attributes that generate flags or options in the Intermediate Language (IL) output](../csharp/language-reference/attributes/pseudo-attributes.md)

## Visual Basic language

### Updated articles

- [Generic types in Visual Basic (Visual Basic)](../visual-basic/programming-guide/language-features/data-types/generic-types.md) - Add VB new features

## Azure SDK for .NET

### New articles

- [Authentication best practices with the Azure Identity library for .NET](../azure/sdk/authentication/best-practices.md)

## Microsoft Orleans

### New articles

- [Grain directory implementation](../orleans/implementation/grain-directory.md)

### Updated articles

- [Background Services and Startup Tasks](../orleans/host/configuration-guide/startup-tasks.md) - [Orleans] Update startup tasks guidance
- [Cluster management in Orleans](../orleans/implementation/cluster-management.md) - [Orleans] Update clustering implementation docs
- [Create types in C\#](../csharp/tour-of-csharp/tutorials/tuples-and-types.md)
- [Extension declaration (C# Reference)](../csharp/language-reference/keywords/extension.md)

## .NET Framework

### New articles

- [.NET Framework release notes](../framework/release-notes/release-notes.md)
- [January 2025 cumulative update](../framework/release-notes/2025/01-14-january-cumulative-update.md)
- [April 2025 cumulative update preview](../framework/release-notes/2025/04-22-april-cumulative-update-preview.md)
- [April 2025 security and quality rollup](../framework/release-notes/2025/04-08-april-cumulative-update.md)
- [March 2025 cumulative update preview](../framework/release-notes/2025/03-25-march-cumulative-update-preview.md)

## Community contributors

The following people contributed to the .NET docs during this period. Thank you! Learn how to contribute by following the links under "Get involved" in the [what's new landing page](index.yml).

- [shethaadit](https://github.com/shethaadit) - Adit Sheth ![17 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-17-green)
- [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski ![7 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-7-green)
- [azarboon](https://github.com/azarboon) - Mahdi Azarboon ![3 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-3-green)
- [theluckyprogrammer](https://github.com/theluckyprogrammer) - Tomasz Osmanowski ![3 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-3-green)
- [mpidash](https://github.com/mpidash) - Mario Pistrich ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green)
- [Rageking8](https://github.com/Rageking8) - ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green)
- [frdij](https://github.com/frdij) - Frans van Dijk ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [gregoryagu](https://github.com/gregoryagu) - Greg Gum ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [joproulx](https://github.com/joproulx) - Jonathan ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [K4PS3](https://github.com/K4PS3) - khaled ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [MangelMaxime](https://github.com/MangelMaxime) - Maxime Mangel ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [mguinness](https://github.com/mguinness) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [RandaZraik](https://github.com/RandaZraik) - Randa Zraik ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [rkargMsft](https://github.com/rkargMsft) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski ![5 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-5-green)
- [BenjaminBrienen](https://github.com/BenjaminBrienen) - Benjamin Brienen ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green)
- [kant2002](https://github.com/kant2002) - Andrii Kurdiumov ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green)
- [MBSadeghzadeh](https://github.com/MBSadeghzadeh) - ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green)
- [timdeschryver](https://github.com/timdeschryver) - Tim Deschryver ![2 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-2-green)
- [A-Programmer](https://github.com/A-Programmer) - Kamran Sadin ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [AustinWise](https://github.com/AustinWise) - Austin Wise ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [bforget163](https://github.com/bforget163) - Yongwei Li ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [bigboybamo](https://github.com/bigboybamo) - Olabamiji Oyetubo ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [ByronMayne](https://github.com/ByronMayne) - Byron Mayne ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [cycopepe](https://github.com/cycopepe) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [D05Col](https://github.com/D05Col) - Dylan Collins ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [Defman21](https://github.com/Defman21) - Sergey Kislyakov ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [flibustier7seas](https://github.com/flibustier7seas) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [gfoidl](https://github.com/gfoidl) - Günther Foidl ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [hez2010](https://github.com/hez2010) - Steve ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [IDisposable](https://github.com/IDisposable) - Marc Brooks ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [jnoordsij](https://github.com/jnoordsij) - Jesper Noordsij ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [josesimoes](https://github.com/josesimoes) - José Simões ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [kdemuth](https://github.com/kdemuth) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [Lanayx](https://github.com/Lanayx) - Vladimir Shchur ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [LucasBenninger](https://github.com/LucasBenninger) - Lucas Benninger ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [mehboob14](https://github.com/mehboob14) - Mehboob Arshad ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [mister-giga](https://github.com/mister-giga) - Giga Bokuchava ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [nileshsheth](https://github.com/nileshsheth) - Nilesh Sheth ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [OoLunar](https://github.com/OoLunar) - Lunar Starstrum ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [Rageking8](https://github.com/Rageking8) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [samwherever](https://github.com/samwherever) - Sam Allen ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [SetTrend](https://github.com/SetTrend) - Axel D. ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [ShaoHans](https://github.com/ShaoHans) - ShaoHans ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [wasabii](https://github.com/wasabii) - Jerome Haltom ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [willibrandon](https://github.com/willibrandon) - Brandon Williams ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [zacharylayne](https://github.com/zacharylayne) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [sigmade](https://github.com/sigmade) - Yegor Sychev ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [skycommand](https://github.com/skycommand) - ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [timpaulus-fsw](https://github.com/timpaulus-fsw) - Tim Paulus ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [tjmccoy](https://github.com/tjmccoy) - Tyler McCoy ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [vzamboulingame](https://github.com/vzamboulingame) - Vinodh Zamboulingame ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [WeihanLi](https://github.com/WeihanLi) - Weihan Li ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
- [wipiano](https://github.com/wipiano) - Kohei Hakoishi ![1 pull requests.](https://img.shields.io/badge/Merged%20Pull%20Requests-1-green)
6 changes: 3 additions & 3 deletions docs/whats-new/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ summary: Welcome to what's new in .NET and .NET docs. Use this page to navigate
metadata:
title: .NET what's new?
description: Learn about new .NET features and new and updated content in .NET docs.
ms.date: 04/01/2025
ms.date: 05/01/2025
ms.topic: landing-page
landingContent:
- title: .NET 10 release updates
Expand Down Expand Up @@ -40,12 +40,12 @@ landingContent:
linkLists:
- linkListType: whats-new
links:
- text: April 2025
url: dotnet-docs-mod1.md
- text: March 2025
url: dotnet-docs-mod0.md
- text: February 2025
url: dotnet-docs-mod2.md
- text: January 2025
url: dotnet-docs-mod1.md
- title: Language updates
linkLists:
- linkListType: whats-new
Expand Down
4 changes: 2 additions & 2 deletions docs/whats-new/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ items:
- name: Latest documentation updates
expanded: true
items:
- name: April 2025
href: dotnet-docs-mod1.md
- name: March 2025
href: dotnet-docs-mod0.md
- name: February 2025
href: dotnet-docs-mod2.md
- name: January 2025
href: dotnet-docs-mod1.md
- name: Product updates
items:
- name: .NET 10
Expand Down