|
1 | 1 | ---
|
2 |
| -title: ".NET docs: What's new for January 2025" |
3 |
| -description: "What's new in the .NET docs for January 2025." |
4 |
| -ms.custom: January-2025 |
5 |
| -ms.date: 02/01/2025 |
| 2 | +title: ".NET docs: What's new for April 2025" |
| 3 | +description: "What's new in the .NET docs for April 2025." |
| 4 | +ms.custom: April-2025 |
| 5 | +ms.date: 05/01/2025 |
6 | 6 | ---
|
7 | 7 |
|
8 |
| -# .NET docs: What's new for January 2025 |
| 8 | +# .NET docs: What's new for April 2025 |
9 | 9 |
|
10 |
| -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. |
| 10 | +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. |
11 | 11 |
|
12 | 12 | ## .NET breaking changes
|
13 | 13 |
|
14 | 14 | ### New articles
|
15 | 15 |
|
16 |
| -- [`dotnet sln add` no longer allows invalid file names](../core/compatibility/sdk/9.0/dotnet-sln.md) |
17 |
| -- [ActivitySource.CreateActivity and ActivitySource.StartActivity behavior change](../core/compatibility/core-libraries/10.0/activity-sampling.md) |
18 |
| -- [API obsoletions with non-default diagnostic IDs (.NET 10)](../core/compatibility/core-libraries/10.0/obsolete-apis.md) |
19 |
| -- [Breaking changes in .NET 10](../core/compatibility/10.0.md) |
20 |
| -- [C# 14 overload resolution with span parameters](../core/compatibility/core-libraries/10.0/csharp-overload-resolution.md) |
21 |
| -- [Consistent shift behavior in generic math](../core/compatibility/core-libraries/10.0/generic-math.md) |
22 |
| -- [Default RID used when targeting .NET Framework](../core/compatibility/sdk/9.0/default-rid.md) |
23 |
| -- [Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE](../core/compatibility/globalization/10.0/version-override.md) |
24 |
| -- [LDAP DirectoryControl parsing is now more stringent](../core/compatibility/core-libraries/10.0/ldap-directorycontrol-parsing.md) |
25 |
| -- [MacCatalyst version normalization](../core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md) |
26 |
| -- [Renamed parameter in HtmlElement.InsertAdjacentElement](../core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md) |
27 |
| -- [TreeView checkbox image truncation](../core/compatibility/windows-forms/10.0/treeview-text-location.md) |
28 |
| -- [X500DistinguishedName validation is stricter](../core/compatibility/cryptography/10.0/x500distinguishedname-validation.md) |
29 |
| - |
30 |
| -## AI in .NET |
31 |
| - |
32 |
| -### New articles |
33 |
| - |
34 |
| -- [Create a minimal AI assistant using .NET](../ai/quickstarts/create-assistant.md) |
| 16 | +- [.NET CLI `--interactive` defaults to `true` in user scenarios](../core/compatibility/sdk/10.0/dotnet-cli-interactive.md) |
| 17 | +- [Assembly load directory resolves through symbolic links on Windows](../core/compatibility/deployment/9.0/assembly-load-directory.md) |
| 18 | +- [Default trace context propagator updated to W3C standard](../core/compatibility/core-libraries/10.0/default-trace-context-propagator.md) |
| 19 | +- [Linux native library resolution no longer uses `netcoredeps`](../core/compatibility/interop/8.0/linux-netcoredeps.md) |
| 20 | +- [Streaming HTTP responses enabled by default in browser HTTP clients](../core/compatibility/networking/10.0/default-http-streaming.md) |
35 | 21 |
|
36 | 22 | ## .NET fundamentals
|
37 | 23 |
|
38 | 24 | ### New articles
|
39 | 25 |
|
40 |
| -- [.NET SDK container creation overview](../core/containers/overview.md) |
41 |
| -- [CA2024: Do not use StreamReader.EndOfStream in async methods](../fundamentals/code-analysis/quality-rules/ca2024.md) |
42 |
| -- [Containerize a .NET app with dotnet publish](../core/containers/sdk-publish.md) |
43 |
| -- [Distributed tracing in System.Net libraries](../fundamentals/networking/telemetry/tracing.md) |
44 |
| -- [Keyed DI support in `IHttpClientFactory`](../core/extensions/httpclient-factory-keyed-di.md) |
45 |
| -- [MSTEST0038: Don't use 'Assert.AreSame' or 'Assert.AreNotSame' with value types](../core/testing/mstest-analyzers/mstest0038.md) |
46 |
| -- [MSTEST0039: Use newer 'Assert.Throws' methods](../core/testing/mstest-analyzers/mstest0039.md) |
47 |
| -- [MSTEST0040: Do not assert inside 'async void' contexts](../core/testing/mstest-analyzers/mstest0040.md) |
48 |
| -- [NETSDK1032: RuntimeIdentifier and PlatformTarget must be compatible](../core/tools/sdk-errors/netsdk1032.md) |
49 |
| -- [NETSDK1144: Optimizing assemblies for size failed](../core/tools/sdk-errors/netsdk1144.md) |
50 |
| -- [Preview APIs](../fundamentals/runtime-libraries/preview-apis.md) |
51 |
| -- [QUIC configuration options](../fundamentals/networking/quic/quic-options.md) |
52 |
| -- [Serialization extension methods on HttpClient](../standard/serialization/system-text-json/httpclient-extensions.md) |
53 |
| -- [SYSLIB0058: Certain SslStream properties are obsolete](../fundamentals/syslib-diagnostics/syslib0058.md) |
54 |
| -- [SYSLIB0059: SystemEvents.EventsThreadShutdown callbacks aren't run before the process exits](../fundamentals/syslib-diagnostics/syslib0059.md) |
55 |
| -- [SYSLIB0060: Rfc2898DeriveBytes constructors are obsolete](../fundamentals/syslib-diagnostics/syslib0060.md) |
| 26 | +- [Compile-time metric source generation](../core/diagnostics/metrics-generator.md) |
| 27 | +- [dotnet package remove](../core/tools/dotnet-package-remove.md) |
| 28 | +- [dotnet reference list](../core/tools/dotnet-reference-list.md) |
| 29 | +- [Migrate from .NET Framework Windows Performance Counters to .NET metrics](../core/diagnostics/migrate-from-windows-performance-counters.md) |
| 30 | +- [MSTEST0042: Avoid duplicated 'DataRow' entries](../core/testing/mstest-analyzers/mstest0042.md) |
| 31 | +- [MSTEST0043: Use retry attribute on test method](../core/testing/mstest-analyzers/mstest0043.md) |
| 32 | +- [SYSLIB0061: System.Linq.Queryable.MaxBy and System.Linq.Queryable.MinBy taking an IComparer\<TSource\> are obsolete.](../fundamentals/syslib-diagnostics/syslib0061.md) |
56 | 33 |
|
57 | 34 | ### Updated articles
|
58 | 35 |
|
59 |
| -- [Creating metrics](../core/diagnostics/metrics-instrumentation.md) - [diagnostics] Add InstrumentAdvice details to instrumentation doc |
60 |
| -- [dotnet-coverage code coverage utility](../core/additional-tools/dotnet-coverage.md) - Update dotnet-coverage docs. Adding uninstrument command |
61 |
| -- [Microsoft.Testing.Platform and VSTest comparison](../core/testing/microsoft-testing-platform-vs-vstest.md) - Add first level info for migration off of VSTest |
62 |
| -- [Tutorial: Containerize a .NET app](../core/docker/build-container.md) - Address issues related to .NET containers |
| 36 | +- [Miscellaneous Constructs in Regular Expressions](../standard/base-types/miscellaneous-constructs-in-regular-expressions.md) - Change "alignment" to "width" |
63 | 37 |
|
64 | 38 | ## C# language
|
65 | 39 |
|
66 | 40 | ### New articles
|
67 | 41 |
|
68 |
| -- [Custom attributes that generate flags or options in the Intermediate Language (IL) output](../csharp/language-reference/attributes/pseudo-attributes.md) |
69 |
| - |
70 |
| -## Visual Basic language |
71 |
| - |
72 |
| -### Updated articles |
73 |
| - |
74 |
| -- [Generic types in Visual Basic (Visual Basic)](../visual-basic/programming-guide/language-features/data-types/generic-types.md) - Add VB new features |
75 |
| - |
76 |
| -## Azure SDK for .NET |
77 |
| - |
78 |
| -### New articles |
79 |
| - |
80 |
| -- [Authentication best practices with the Azure Identity library for .NET](../azure/sdk/authentication/best-practices.md) |
81 |
| - |
82 |
| -## Microsoft Orleans |
83 |
| - |
84 |
| -### New articles |
85 |
| - |
86 |
| -- [Grain directory implementation](../orleans/implementation/grain-directory.md) |
87 |
| - |
88 |
| -### Updated articles |
89 |
| - |
90 |
| -- [Background Services and Startup Tasks](../orleans/host/configuration-guide/startup-tasks.md) - [Orleans] Update startup tasks guidance |
91 |
| -- [Cluster management in Orleans](../orleans/implementation/cluster-management.md) - [Orleans] Update clustering implementation docs |
| 42 | +- [Create types in C\#](../csharp/tour-of-csharp/tutorials/tuples-and-types.md) |
| 43 | +- [Extension declaration (C# Reference)](../csharp/language-reference/keywords/extension.md) |
92 | 44 |
|
93 | 45 | ## .NET Framework
|
94 | 46 |
|
95 | 47 | ### New articles
|
96 | 48 |
|
97 |
| -- [.NET Framework release notes](../framework/release-notes/release-notes.md) |
98 |
| -- [January 2025 cumulative update](../framework/release-notes/2025/01-14-january-cumulative-update.md) |
| 49 | +- [April 2025 cumulative update preview](../framework/release-notes/2025/04-22-april-cumulative-update-preview.md) |
| 50 | +- [April 2025 security and quality rollup](../framework/release-notes/2025/04-08-april-cumulative-update.md) |
| 51 | +- [March 2025 cumulative update preview](../framework/release-notes/2025/03-25-march-cumulative-update-preview.md) |
99 | 52 |
|
100 | 53 | ## Community contributors
|
101 | 54 |
|
102 | 55 | 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).
|
103 | 56 |
|
104 |
| -- [shethaadit](https://github.com/shethaadit) - Adit Sheth  |
105 |
| -- [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski  |
106 |
| -- [azarboon](https://github.com/azarboon) - Mahdi Azarboon  |
107 |
| -- [theluckyprogrammer](https://github.com/theluckyprogrammer) - Tomasz Osmanowski  |
108 |
| -- [mpidash](https://github.com/mpidash) - Mario Pistrich  |
109 |
| -- [Rageking8](https://github.com/Rageking8) -  |
110 |
| -- [frdij](https://github.com/frdij) - Frans van Dijk  |
111 |
| -- [gregoryagu](https://github.com/gregoryagu) - Greg Gum  |
112 |
| -- [joproulx](https://github.com/joproulx) - Jonathan  |
113 |
| -- [K4PS3](https://github.com/K4PS3) - khaled  |
114 |
| -- [MangelMaxime](https://github.com/MangelMaxime) - Maxime Mangel  |
115 |
| -- [mguinness](https://github.com/mguinness) -  |
116 |
| -- [RandaZraik](https://github.com/RandaZraik) - Randa Zraik  |
117 |
| -- [rkargMsft](https://github.com/rkargMsft) -  |
| 57 | +- [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski  |
| 58 | +- [BenjaminBrienen](https://github.com/BenjaminBrienen) - Benjamin Brienen  |
| 59 | +- [kant2002](https://github.com/kant2002) - Andrii Kurdiumov  |
| 60 | +- [MBSadeghzadeh](https://github.com/MBSadeghzadeh) -  |
| 61 | +- [timdeschryver](https://github.com/timdeschryver) - Tim Deschryver  |
| 62 | +- [A-Programmer](https://github.com/A-Programmer) - Kamran Sadin  |
| 63 | +- [AustinWise](https://github.com/AustinWise) - Austin Wise  |
| 64 | +- [bforget163](https://github.com/bforget163) - Yongwei Li  |
| 65 | +- [bigboybamo](https://github.com/bigboybamo) - Olabamiji Oyetubo  |
| 66 | +- [ByronMayne](https://github.com/ByronMayne) - Byron Mayne  |
| 67 | +- [cycopepe](https://github.com/cycopepe) -  |
| 68 | +- [D05Col](https://github.com/D05Col) - Dylan Collins  |
| 69 | +- [Defman21](https://github.com/Defman21) - Sergey Kislyakov  |
| 70 | +- [flibustier7seas](https://github.com/flibustier7seas) -  |
| 71 | +- [gfoidl](https://github.com/gfoidl) - Günther Foidl  |
| 72 | +- [hez2010](https://github.com/hez2010) - Steve  |
| 73 | +- [IDisposable](https://github.com/IDisposable) - Marc Brooks  |
| 74 | +- [jnoordsij](https://github.com/jnoordsij) - Jesper Noordsij  |
| 75 | +- [josesimoes](https://github.com/josesimoes) - José Simões  |
| 76 | +- [kdemuth](https://github.com/kdemuth) -  |
| 77 | +- [Lanayx](https://github.com/Lanayx) - Vladimir Shchur  |
| 78 | +- [LucasBenninger](https://github.com/LucasBenninger) - Lucas Benninger  |
| 79 | +- [mehboob14](https://github.com/mehboob14) - Mehboob Arshad  |
| 80 | +- [mister-giga](https://github.com/mister-giga) - Giga Bokuchava  |
| 81 | +- [nileshsheth](https://github.com/nileshsheth) - Nilesh Sheth  |
| 82 | +- [OoLunar](https://github.com/OoLunar) - Lunar Starstrum  |
| 83 | +- [Rageking8](https://github.com/Rageking8) -  |
118 | 84 | - [samwherever](https://github.com/samwherever) - Sam Allen 
|
119 |
| -- [SetTrend](https://github.com/SetTrend) - Axel D.  |
120 |
| -- [ShaoHans](https://github.com/ShaoHans) - ShaoHans  |
121 |
| -- [wasabii](https://github.com/wasabii) - Jerome Haltom  |
122 |
| -- [willibrandon](https://github.com/willibrandon) - Brandon Williams  |
123 |
| -- [zacharylayne](https://github.com/zacharylayne) -  |
| 85 | +- [sigmade](https://github.com/sigmade) - Yegor Sychev  |
| 86 | +- [skycommand](https://github.com/skycommand) -  |
| 87 | +- [timpaulus-fsw](https://github.com/timpaulus-fsw) - Tim Paulus  |
| 88 | +- [tjmccoy](https://github.com/tjmccoy) - Tyler McCoy  |
| 89 | +- [vzamboulingame](https://github.com/vzamboulingame) - Vinodh Zamboulingame  |
| 90 | +- [WeihanLi](https://github.com/WeihanLi) - Weihan Li  |
| 91 | +- [wipiano](https://github.com/wipiano) - Kohei Hakoishi  |
0 commit comments