What’s New & Version History

This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production; see the section bibliography for the reference material consulted while preparing these pages.

Desktop development on Windows moves on several clocks at once. The .NET runtime ships every November, the Windows App SDK ships at most every six months, Visual Studio ships a feature update every month and the MVVM Toolkit ships when it is ready. A guide written against one snapshot of those clocks goes stale quickly, so this page records which snapshot the rest of this section was written against, what changed on each clock on the way there, and which habits from older tutorials should be replaced.

The page was written against these versions, verified on 23 October 2026:

  • .NET 10 LTS, latest patch 10.0.13 (13 October 2026), supported until 14 November 2028, with C# 14.

  • .NET 11 at release candidate 2 (11.0.0-rc.2, 13 October 2026, go-live licence). General availability is expected at .NET Conf, 10 to 13 November 2026, so everything said about .NET 11 here can still change.

  • .NET 8 and .NET 9 both leave support on 10 November 2026.

  • Visual Studio 2026 18.11.1 (20 October 2026).

  • Windows App SDK 2.5.1 (16 September 2026), the stable channel.

  • CommunityToolkit.Mvvm 8.4.2 (25 March 2026).

  • Windows 11 and Windows 10; Windows 10 reached end of support on 14 October 2025.

Details of the topics summarised here live on the topic pages of this section, such as Themes & Fluent Design, MVVM Toolkit, WinUI 3 & the Windows App SDK and Windows Forms on .NET. The Microsoft Learn "what’s new" pages are the primary source for the release-by-release notes; each subsection ends with its source link.

The Timeline at a Glance

The diagram places the milestones of the five clocks on one axis.

timeline title Windows desktop milestones 2019 : .NET Core 3.0 brings WPF and WinForms to open source .NET 2021 : .NET 6 LTS : Windows App SDK 1.0 on 16 November 2022 : MVVM Toolkit 8.0 adds source generators 2023 : .NET 8 LTS : WPF OpenFolderDialog : WinForms data binding and button commands 2024 : .NET 9 : WPF Fluent theme and ThemeMode : WinForms dark mode preview 2025 : .NET 10 LTS on 11 November : Visual Studio 2026 18.0 : WinForms dark mode stable 2026 : Windows App SDK 2.0 on 29 April with SemVer : MVVM Toolkit 8.4.2 : Visual Studio 18.11.1 : .NET 11 RC2

Read the diagram left to right as a dependency chain: a new .NET release is what makes a new WPF or WinForms feature available, a new Visual Studio version is what lets the designer and the tooling use it, and the Windows App SDK and the MVVM Toolkit are independent NuGet packages that you update on their own schedule.

Release Cadence and Support at a Glance

Component Cadence Support rule

.NET

One release every November. Even-numbered releases are LTS.

.NET 10 is LTS until 14 November 2028. .NET 8 and .NET 9 end on 10 November 2026.

WPF, Windows Forms

Ship inside the .NET release.

Follow the .NET support policy of the release you target.

Windows App SDK

Stable major releases no more than every six months, plus minor and patch servicing. Preview and experimental channels in between.

A release is Current while it is the latest stable one, then Maintenance; 2.0 is listed as Current with end of servicing 29 April 2027, and 1.8 as Maintenance until 24 September 2026.

Visual Studio 2026

Feature updates in the second week of each month, servicing releases in between.

Install the latest servicing build; 18.10.4 (13 October 2026) was a security update.

CommunityToolkit.Mvvm

Irregular, driven by Roslyn and .NET changes.

Open-source package; use the latest 8.4.x.

WPF and Windows Forms: .NET Core 3 to .NET 11

WPF and Windows Forms were never rewritten for .NET; they were ported. The first release that could run them on the cross-platform-capable runtime was .NET Core 3.0 (September 2019, Windows only), followed by .NET Core 3.1 as the first long-term-supported version. .NET 5 (November 2020) dropped the "Core" name, and from .NET 6 onwards every release is a plain, yearly "new version of WPF" and "new version of Windows Forms". The Microsoft Learn index states this directly: each .NET release introduces a new version of WPF.

.NET release WPF Windows Forms

.NET Core 3.0 / 3.1

First open-source, Windows-only ports of both frameworks on the new runtime. Designer support for WinForms arrived later.

Same. The legacy MainMenu and MenuItem controls were removed in .NET Core 3.1; MenuStrip and ToolStripMenuItem replace them.

.NET 5

Rename of the runtime; same frameworks, same projects.

Same.

.NET 6 (LTS)

No WPF-specific what’s-new page exists on Microsoft Learn for .NET 6.

ApplicationConfiguration.Initialize() bootstrap and project-level settings, Application.SetDefaultFont, global usings, file-scoped namespaces and nullable on by default in templates, PerMonitorV2 fixes, more runtime designers.

.NET 7

Performance work (fewer allocations and boxing), keyboard accessibility for DataGrid and GridView, community bug fixes.

PerMonitorV2 scaling improvements, UI Automation for more controls, preview of the new data binding and Button.Command, richer file and folder dialogs.

.NET 8 (LTS)

Opt-in hardware acceleration over RDP, OpenFolderDialog.

Data binding and button commands fully enabled, DPI-unaware designer in VS 2022 17.8, SystemIcons.GetStockIcon.

.NET 9

Fluent theme, ThemeMode, Windows accent colours, hyphen-based ligatures, BinaryFormatter removed.

Experimental dark mode and async forms, multi-select FolderBrowserDialog, GDI+ effects in System.Drawing, BinaryFormatter removed.

.NET 10 (LTS)

More Fluent controls, unified clipboard, new MessageBox buttons, Grid short form, performance work.

Dark mode and async forms stable, Form.ScreenCaptureMode, clipboard redesign, new designers and analyzers.

.NET 11 (RC)

Bug fixes only so far.

Modern visual styles, KioskModeManager, system visual settings, deferred reveal and more, still changing.

WPF release by release

.NET 7. The release was mostly performance and community fixes: avoiding boxing and heap allocations, reusing StringBuilder instances, and fixes such as a FocusVisualStyle that could not be overridden globally and a CommandParameter that invalidated CanExecute. Accessibility gained keyboard shortcuts (Alt+Left/Right to resize DataGrid and GridView columns, F3 to sort a column) and correct narration of checkable menu items. The page also states that WPF stays fully supported on .NET Framework but most fixes and all new features go to .NET only.

.NET 8. Two additions: hardware acceleration for apps accessed over Remote Desktop, enabled by setting the Switch.System.Windows.Media.EnableHardwareAccelerationInRdp property to true in runtimeconfig.json, and the OpenFolderDialog class in Microsoft.Win32. Before it, a folder picker needed a third-party library or the WinForms FolderBrowserDialog.

.NET 9. The headline was visual: a Fluent theme for Windows 11, applied either by merging the PresentationFramework.Fluent resource dictionary or through the ThemeMode property, plus support for the Windows accent colour through SystemColors.AccentColor* resources. BinaryFormatter was removed from the runtime, which affected WPF clipboard and drag-and-drop paths that used it. The Fluent theme is described in its own section below.

.NET 10. More controls were restyled for Fluent (DatePicker, GridSplitter, GridView, GroupBox, Hyperlink, Label, NavigationWindow, RichTextBox, TextBox), several HighContrast crashes and right-to-left layout bugs were fixed, and WPF and WinForms now share one clipboard implementation. Two new APIs stand out:

  • MessageBoxButton gained AbortRetryIgnore, RetryCancel and CancelTryContinue, and MessageBoxResult gained Abort, Retry, Ignore, TryAgain and Continue.

  • Grid accepts a string short form, so five column definitions become a single attribute.

<!-- Before .NET 10: one element per definition -->
<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="1*" />
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="300" />
  </Grid.ColumnDefinitions>
</Grid>

<!-- .NET 10: the same three columns as a string -->
<Grid ColumnDefinitions="1*, Auto, 300" RowDefinitions="Auto, *" />

.NET 11 RC. The Microsoft Learn page is still titled "What’s new in WPF for .NET 11 RC 1" and lists bug fixes only: self-contained WPF apps now carry ijwhost.dll so mixed-mode assemblies load, WPF no longer crashes when the Desktop Window Manager fails and corrects Fluent window backdrop problems on Windows 10, and a WeakEventTable.Purge enumeration error was fixed. No new WPF APIs are announced. Treat this as provisional until general availability.

Windows Forms release by release

.NET 6. Templates changed to the new application bootstrap: Main calls ApplicationConfiguration.Initialize(), and the settings it applies are project properties.

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>net10.0-windows</TargetFramework>
  <UseWindowsForms>true</UseWindowsForms>
  <Nullable>enable</Nullable>
  <ImplicitUsings>enable</ImplicitUsings>

  <ApplicationVisualStyles>true</ApplicationVisualStyles>
  <ApplicationUseCompatibleTextRendering>false</ApplicationUseCompatibleTextRendering>
  <ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode>
  <ApplicationDefaultFont>Segoe UI, 9pt</ApplicationDefaultFont>
</PropertyGroup>

The default value of ApplicationHighDpiMode is SystemAware; the example above sets PerMonitorV2 on purpose, as Bookshelf Desktop does. The default font of Segoe UI, 9pt had been introduced by .NET Core 3.0, and .NET 6 made it configurable to ease migration of layouts built around the .NET Framework font of Microsoft Sans Serif, 8.25pt.

.NET 7 and .NET 8. A WPF-style binding engine arrived as a preview in .NET 7 (switched on with EnablePreviewFeatures) and was fully enabled in .NET 8, together with Button.Command and CommandParameter. The page for .NET 8 states plainly that XAML is not coming to Windows Forms. This is why a WinForms version of Bookshelf Desktop can bind a Button to the same RelayCommand as the WPF version while still using a BindingSource for the list. .NET 8 also made the PerMonitorV2 scaling of minimum and maximum form sizes the default.

.NET 9. Experimental dark mode (Application.SetColorMode with SystemColorMode.Classic, System or Dark, behind compiler error WFO5001) and experimental async forms (Form.ShowAsync, Form.ShowDialogAsync, TaskDialog.ShowDialogAsync, behind WFO5002; Control.InvokeAsync was not experimental). BinaryFormatter was removed and analyzers were added to flag accidental binary serialization.

.NET 10. The two experimental feature sets above lost their compiler errors and became supported, so the following code compiles without a NoWarn:

namespace Bookshelf.WinForms;

internal static class Program
{
    [STAThread]
    private static void Main()
    {
        ApplicationConfiguration.Initialize();

        // .NET 9: experimental, needed <NoWarn>WFO5001</NoWarn>. .NET 10: stable.
        Application.SetColorMode(SystemColorMode.System);

        Application.Run(new MainForm());
    }
}
NET 10 also added Form.FormScreenCaptureMode (Allow, HideContent, HideWindow; the last needs Windows 10

version 2004 or later), a redesigned clipboard shared with WPF that obsoletes some BinaryFormatter-dependent methods in favour of TryGetData<T>, and the analyzers WFDEV004 to WFDEV006.

.NET 11 RC. The page lists a larger set of changes than WPF, all explicitly not final: VisualStylesMode and Application.SetDefaultVisualStylesMode for a modernised renderer, KioskModeManager, the Application.SystemVisualSettings snapshot and SystemVisualSettingsChanged event, FormRevealMode.Deferred, the ISupportSuspendPainting scope, and Appearance.ToggleSwitch for CheckBox. It also removes the preview-only TreeView.NodeLeading property. The page warns that rendering behaviour continues to change until GA and advises layout-based design instead of pixel-perfect design.

WPF Fluent Theme History

The Fluent theme is the one part of WPF whose history spans several releases, and the one most often described wrongly.

Release What happened

.NET 8 and earlier

WPF ships only the Aero2 theme. Fluent-looking WPF apps used third-party libraries.

.NET 9

The PresentationFramework.Fluent assembly and the Fluent.xaml dictionary appear, with light and dark modes. ThemeMode accepts Light, Dark, System and None, where None, the default, keeps Aero2. Setting it from code is experimental and raises WPF0001. Accent colour resources are available with or without the Fluent theme.

.NET 10

Fluent coverage extended to more controls; Expander animation, HighContrast crashes, missing RecognizesAccessKey and right-to-left bugs fixed. The page still says Fluent support is in progress.

.NET 11 RC

Fixes for Fluent window backdrop and background issues on Windows 10 and for DWM failures. No new theme APIs announced.

The XAML form needs no suppression, while the code form does:

<Application x:Class="Bookshelf.Desktop.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml"
             ThemeMode="System" />
// Requires <NoWarn>$(NoWarn);WPF0001</NoWarn> in the project file.
Application.Current.ThemeMode = ThemeMode.Dark;

The WinUI 3 counterpart has always been Fluent, and Windows Forms follows a different path (the SystemColorMode switch above). The comparison across the three stacks is in Themes & Fluent Design.

CommunityToolkit.Mvvm: 7 to 8.4

The MVVM Toolkit started as Microsoft.Toolkit.Mvvm and was renamed CommunityToolkit.Mvvm. Its major version 8.0 is the dividing line for this section: from 8.0 the package includes Roslyn source generators, so a field annotated with [ObservableProperty] or a method annotated with [RelayCommand] produces the boilerplate at compile time. Microsoft Learn states "Starting with version 8.0" for this.

Version Date Change relevant to this section

7.x

2021

ObservableObject, RelayCommand, AsyncRelayCommand, WeakReferenceMessenger, all written by hand. No generators.

8.0

2022

Source generators: [ObservableProperty], [RelayCommand], [INotifyPropertyChanged].

8.2.0

27 April 2023

Fixers project, OnPropertyNameChanging and OnPropertyNameChanged overloads, [field:] and [property:] targets for [RelayCommand].

8.2.1 and 8.2.2

6 July and 25 October 2023

Analyzer for async void relay-command methods; analyzer for a field-targeted [ObservableProperty] on auto-properties.

8.3.0

27 August 2024

.NET 8 targets, AOT support for WinRT scenarios, trimming feature switches.

8.4.0

12 December 2024

[ObservableProperty] on partial properties, better nullable annotations, WinRT analyzers; the .NET 6 target removed.

8.4.1

24 March 2026

Analyzers and generator moved to Roslyn 5.0, so partial properties no longer need the preview language version; .NET 10 test support.

8.4.2

25 March 2026

Fix to the order of a version check in a build target.

The practical consequence for readers is the shape of the property declaration. The three generations compile to the same behaviour:

using CommunityToolkit.Mvvm.ComponentModel;

namespace Bookshelf.Desktop.ViewModels;

// 7.x style: manual notification
public partial class BookDetailsHandWritten : ObservableObject
{
    private string? title;

    public string? Title
    {
        get => title;
        set => SetProperty(ref title, value);
    }
}

// 8.0 to 8.3 style: annotated field
public partial class BookDetailsFieldStyle : ObservableObject
{
    [ObservableProperty]
    private string? title;
}

// 8.4 style: annotated partial property (current)
public partial class BookDetailsCurrent : ObservableObject
{
    [ObservableProperty]
    public partial string? Title { get; set; }
}

The partial-property form needs a compiler that understands C# 13 partial properties and, from 8.4.1, the Roslyn 5.0 generator; C# 14 is the baseline of this section, so it is the form used throughout. Projects pinned to an older SDK can keep the field form, which still compiles. Details are in MVVM Toolkit.

Windows App SDK: 1.0 to 2.5

The Windows App SDK is the runtime library behind WinUI 3. Its version history has two eras: a 1.x series whose version numbers did not follow semantic versioning, and the 2.x series that does.

Version Released Status on 23 October 2026 Notes

1.0

16 November 2021

Out of support (ended 16 November 2022)

First stable release; latest patch 1.0.4.

1.1 to 1.7

24 May 2022 to 18 March 2025

Out of support

One minor release every few months; 1.7 ended on 18 March 2026.

1.8

9 September 2025

Listed as Maintenance, end of servicing 24 September 2026 (already passed)

Last 1.x release; latest patch 1.8.260921001.

2.0

29 April 2026

Current

First release on Semantic Versioning. 2.0.1 was the stable build.

2.1 to 2.4

2.1.3 on 21 May to 2.4.0 on 13 August 2026

Superseded within the 2.x line

Minor releases under SemVer; mostly additive.

2.5.1

16 September 2026

Current, latest stable

Diagnostic service module extension for Windows Error Reporting; limited-access content-index APIs.

What SemVer changes in practice, according to the 2.0 notes:

  • The NuGet package version equals the SDK version, so Microsoft.WindowsAppSDK 2.5.1 is Windows App SDK 2.5.1.

  • Breaking changes are reserved for major versions. The package family name aligns with the major version, so the next side-by-side major release is 3.0.0.

  • Many fixes ship behind RuntimeCompatibilityChange flags, so an app can temporarily opt out of a behaviour change through RuntimeCompatibilityOptions.DisabledChanges.

  • Some 2.x behaviour changes are still visible: the FileSavePicker no longer creates an empty file when the user chooses a name that does not exist, and the TitleBar default drag region now includes the empty gaps.

The three channels differ in what you may ship:

Channel Purpose Latest on 23 October 2026

Stable

Production, supported APIs only.

2.5.1, 16 September 2026

Preview

Early look at the next stable release; may break before it stabilises.

2.0 Preview 2 (2.0.0-preview2), 31 March 2026

Experimental

Prototypes that may change, be removed or never ship.

2.5.4-experimental, 29 September 2026

Ship only the stable channel. Note that App Content Search entered the stable channel in 2.5.1 as a limited-access feature, so it needs a token before the first call. Deployment models (framework-dependent, self-contained, packaged, unpackaged) are covered in WinUI 3 & the Windows App SDK.

Visual Studio 2022 to 2026

Visual Studio 2026 is a new major version (18.x) that installs alongside Visual Studio 2022 (17.x). Version 18.0 was generally available on 11 November 2025, the same day as .NET 10. It follows a monthly feature-update rhythm, with servicing builds between the feature updates.

Version Date Notable content

18.0

11 November 2025

General availability with .NET 10 support.

18.7.0

9 June 2026

PR review in the IDE, Hot Exit for unsaved work, Fonts and Colors moved to Unified Settings.

18.8.0

14 July 2026

Agent mode (preview) on the Copilot SDK.

18.9.0

11 August 2026

Git submodules and worktrees, model thinking-effort control.

18.10.0

8 September 2026

Bring-your-own-key for AI models.

18.10.3 and 18.10.4

29 September and 13 October 2026

Servicing; 18.10.4 is a security update for .NET, NuGet and ASP.NET Core CVEs.

18.11.0

13 October 2026

Compare a commit or file with the working tree; bulk-resolve merge conflicts.

18.11.1

20 October 2026

Current latest servicing build.

For desktop developers the relevant workloads keep their names (".NET desktop development" and "WinUI application development"); the XAML Hot Reload, Live Visual Tree and Live Property Explorer tools continue to work as in Visual Studio 2022. The AI and Git features above are IDE features and do not change how WPF, WinUI or WinForms projects are built. The setup of the workloads is in Development Environment & Tooling.

Current Baseline

The versions below are the ones every page of this section is written against, as of 23 October 2026.

Item Version Notes

.NET 10

10.0.13 (13 October 2026), LTS

Supported until 14 November 2028; C# 14 is the default language version.

.NET 11

RC2 (11.0.0-rc.2, 13 October 2026, go-live)

General availability expected at .NET Conf, 10 to 13 November 2026. The WPF and WinForms what’s-new pages are still titled "RC 1".

.NET 8 and .NET 9

8.0.32 and 9.0.21, in maintenance

Both end support on 10 November 2026.

Visual Studio 2026

18.11.1 (20 October 2026)

Earlier 18.x builds are superseded by servicing releases.

Windows App SDK

2.5.1 (16 September 2026), stable channel

The experimental channel is at 2.5.4-experimental.

CommunityToolkit.Mvvm

8.4.2 (25 March 2026)

8.4.1 shipped on 24 March 2026.

winapp CLI

0.7.1, public preview

Latest GitHub release dated 1 October 2026.

Microsoft Store Policies

Version 7.20 (published 15 September 2026)

Effective 22 October 2026.

WinGet

winget-cli 1.29.380 (21 September 2026); winget-create 1.12.13.0

Preview channel at winget-cli 1.30.140-preview.

WinAppDriver

v1.2.1 (5 November 2020), latest stable

The newest release overall is the pre-release v1.2.99 (1 July 2021); the project is unmaintained.

Microsoft.Xaml.Behaviors.Wpf

1.1.161

Used where behaviours are shown.

Outdated Idioms and Their Current Replacements

Tutorials written between 2012 and 2022 teach patterns that still compile but are no longer the recommended shape. The table lists the most common, with the release that made the replacement possible.

Outdated idiom Current code Since

Hand-written INotifyPropertyChanged with a SetProperty boilerplate property

[ObservableProperty] public partial string? Title { get; set; }

MVVM Toolkit 8.0 (fields), 8.4 (partial properties)

ICommand implemented with a home-made DelegateCommand

[RelayCommand] on a method, including async Task methods

MVVM Toolkit 8.0

Messenger.Default from MVVM Light, or a static event aggregator

WeakReferenceMessenger / IMessenger injected into the view model

MVVM Toolkit 7 and 8

Application.EnableVisualStyles() and SetCompatibleTextRenderingDefault in Main

ApplicationConfiguration.Initialize() with project properties

.NET 6

Third-party dark-mode hacks in WinForms

Application.SetColorMode(SystemColorMode.System)

Stable in .NET 10

Form.ShowDialog() blocking the UI thread for async work

await form.ShowDialogAsync()

Stable in .NET 10

Dispatcher.Invoke or Control.Invoke with a delegate, then waiting

await Control.InvokeAsync(action) in WinForms; await Dispatcher.InvokeAsync(action) in WPF

.NET 9 (WinForms)

Folder picker through FolderBrowserDialog in WPF or a Win32 wrapper

new OpenFolderDialog()

.NET 8

BinaryFormatter for clipboard, drag-and-drop or settings

JSON with System.Text.Json; TryGetData<T> for the clipboard

Removed in .NET 9

<Grid.ColumnDefinitions> blocks for simple layouts

ColumnDefinitions="1*, Auto, 300"

WPF in .NET 10

Custom styles to imitate Windows 11 in WPF

ThemeMode="System"

.NET 9

packages.config, old-style .csproj with explicit file lists

SDK-style project, PackageReference, ImplicitUsings, Nullable

.NET Core 3 / .NET 5 and later

Microsoft.Toolkit.Mvvm package name

CommunityToolkit.Mvvm

Rename in the 7.x to 8.0 transition

WinUI 3 on Windows App SDK 1.x with the 1.x.yyMMdd style versions

Windows App SDK 2.x (SemVer)

2.0, April 2026

.sln only

.slnx solution format where tools support it

Newer Visual Studio 2022 and 2026 builds

Pitfalls

  • Dates and statuses move. .NET 11 is a release candidate; its two "what’s new" pages carry an "RC 1" title while the runtime is already at RC2. Re-read them after general availability.

  • No WPF page for .NET 6. The Microsoft Learn index of WPF changes begins at .NET 7, so the notes here about WPF in .NET Core 3.0, .NET 5 and .NET 6 are intentionally short.

  • Experimental does not mean absent. In .NET 9 the WinForms dark-mode and async APIs compiled only after suppressing WFO5001 or WFO5002, and WPF ThemeMode set from code still raises WPF0001. Check the diagnostics before assuming an API is stable.

  • Preview and experimental Windows App SDK packages are not for production. The channels page marks both as unsupported.

  • Support ends are dated. .NET 8 and .NET 9 leave support on 10 November 2026, and Windows App SDK 1.8 reaches the end of servicing on 24 September 2026, so by this page’s date it is already past it; plan the move to .NET 10 and Windows App SDK 2.x.

  • Years of older MVVM Toolkit releases are approximate. The release page shows only a day and a month; the years in the table above are inferred from the sequence of releases.

Summary

Use .NET 10 LTS with C# 14, Visual Studio 2026 18.11.1, Windows App SDK 2.5.1 from the stable channel and CommunityToolkit.Mvvm 8.4.2. Treat .NET 11 as a preview until November 2026. In WPF use ThemeMode, OpenFolderDialog and the Grid short form; in Windows Forms use ApplicationConfiguration.Initialize(), SetColorMode and the async form APIs; in view models use partial-property [ObservableProperty] and [RelayCommand]. Retire BinaryFormatter, Messenger.Default and hand-written command classes. Because Windows App SDK 2.x follows SemVer, upgrades inside the 2.x line should not break your code, whereas the jump to 3.0 will be the next breaking one.