Skip to content

v8.0.230907

Compare
Choose a tag to compare
@michael-hawker michael-hawker released this 07 Sep 18:24

See More Information in Release Blog Here

New Package Structure & Breaking Changes 🚨

If you've been following our previous blogs, you know we've made changes to how namespaces and packages work with 8.0.

We've restructured many packages for a few reasons, but the main benefit is it allows developers targeting or migrating between multiple platforms to easily migrate code written on 8.0 without having to change their source. It also enables library developers to multi-target components with XAML easily.

One namespace to rule them all 💍

Regardless of which new features and packages you use (see below), the namespaces for code within the packages are now unified with a root of CommunityToolkit.WinUI.*. This ensures that if you target multiple platforms or migrate between them, no code referencing the Toolkit needs to change (just the package)!

Package Naming 📦

Previously, starting with 7.x, UWP packages started with Microsoft.Toolkit.Uwp.UI.* and had similar namespaces, and WindowsAppSDK package started wih CommunityToolkit.WinUI.UI.* and had a similar namespace. See this blog for more information on our package identity journey. These packages will be deprecated and point to their 8.0 equivalents (continue reading).

There are now two sets of packages for each component:

  • CommunityToolkit.Uwp.* for UWP + WinUI 2 or Uno.UI
  • CommunityToolkit.WinUI.* for Windows App SDK + WinUI 3 or Uno.WinUI

Regardless of the package chosen, as mentioned above, all namespaces have converged on CommunityToolkit.WinUI.* (note the dropping of the additional .UI. in namespace and package names).

If you're using Uno Platform, the same package can be used across your various platform heads now! Just be sure to select the package that corresponds to the target of your Windows platform head, either .Uwp. or .WinUI. for the Windows App SDK corresponding to Uno.UI and Uno.WinUI, respectively.

Removed Features 🦴

The Toolkit is huge! It's had a lot of features added over the course of the last 7 years. Unfortunately, this means we couldn't migrate everything in this initial transition. Also, some features may not be available on all platforms due to platform limitations or unimplemented APIs.

Our initial focus has been on UWP and Windows App SDK compatibility, followed by Web Assembly (WASM). If you find an issue on a particular platform, please let us know, but we may defer you to the underlying platform's repository if an API is missing.

If there's a feature from the Toolkit that wasn't migrated (and not listed below), open a discussion to garner support for future migration or to get information on contributing to migrate it for everyone.

The following is a partial list of known things which are not included in this release:

Migration Notes 🚚

Be sure to read the rest of the breaking change notes above! 😉

Most UI controls have their own package now under CommunityToolkit.<Uwp|WinUI>.Controls.*; we're working to have a meta package again, but do not have one at this time.

For individual grouped control packages of 7.x, you can find the following changes:

  • From Controls.Core:
    • DropShadowPanel has been replaced with Attached Shadows in the Extensions and Media packages.
    • InAppNotification is now the StackedNotificationsBehavior for WinUI's InfoBar in the Behaviors package.
    • Menu is part of WinUI now, see MenuBar.
    • RadialProgressBar is part of WinUI's ProgressRing now, IsIndeterminate="False".
  • From Controls.Layout:
    • Expander is part of WinUI now.
    • GridSplitter is part of the Sizers package, it's also been entirely re-written, but with defaults should look/behave the same, if not better!
    • "Headered" controls are part of the HeaderedControls package, HeaderedItemsControl now uses ItemsPresenter's Header and Footer new, Orientation has been removed, customize the ItemsPanel instead.
  • For parts of the Uwp/WinUI and Uwp/WinUI.UI packages, look for our Collections, Converters, Extensions, Helpers, and Triggers packages.

Other controls either have their own package or have not been migrated yet. Search and then open a discussion if you need assistance.

Packages/Feature Overview 📦

Search for either CommunityToolkit.Uwp or CommunityToolkit.WinUI (Windows App SDK), depending on your target platform, and one of the packages listed below should appear. Today's release is version 8.0.230907.

'✨' denotes new or updated packages/features from version 7.1.

'🎨' denotes updated XAML styling from version 7.1.

'💻' denotes packages which only target UWP/WindowsAppSDK. However, its absence does not imply that every feature will work across all platforms (see note in introduction).

🔥🐉 Note: Mixing and matching these new 8.0 packages with existing Windows Community Toolkit 7.x packages, especially UI controls, can lead to issues with the namespace changes and dependencies on common code (like the Visual Tree extensions). If there's something that we haven't yet ported but you need, open a discussion to let us know or claim it and contribute!

What's Changed since pre-releases

Full Changelog: v8.0.230828-rc...v8.0.230907