With the upcoming release of .NET MAUI later this year, we are excited to share our plans for Xamarin Community Toolkit! This includes plans for a .NET MAUI Community Toolkit, backwards compatible version of the Xamarin Community Toolkit, and the sunsetting of the current Xamarin Community Toolkit. However, before we get to all of this, we want to thank all of our amazing contributors to the library.
Since the very first release of the Xamarin Community Toolkit, it has quickly become one of the most popular open-source Xamarin libraries with:
All of this success comes from you, our amazing Xamarin Developer Community! Every feature implemented, every pull request submitted, and every bug reported has been done by a member of the Xamarin Developer Community. It is truly a community effort.
We want to send a special thank you to our two community maintainers, Andrei Misiukevich and Pedro Jesus. Thank you for the countless hours you’ve both contributed to the toolkit ❤️. Now, let’s get into some of the exciting announcements today.
Introducing the .NET MAUI Community Toolkit
Just like Xamarin.Forms is evolving into .NET MAUI, the Xamarin Community toolkit is evolving as well. I am excited to announce the upcoming release of the .NET MAUI Community Toolkit! This is a new Community Toolkit library that is fully optimized for .NET MAUI.
We will be releasing two NuGet Packages:
-
CommunityToolkit.Maui
-
CommunityToolkit.Maui.Markup
Like the Xamarin Community Toolkit, the .NET MAUI Community Toolkit is fully open-source and community supported! We are currently working on porting the features from Xamarin Community Toolkit to the .NET MAUI Community Toolkit, and encourage you to continue helping us out.
Going forward, the .NET MAUI Community Toolkit will be the recommended toolkit for all .NET MAUI apps.
CommunityToolkit.Maui | CommunityToolkit.Maui.Markup | |
---|---|---|
Dependency | .NET MAUI | .NET MAUI |
Native Implementation | .NET MAUI Handlers | .NET MAUI Handlers |
Target | .NET 6.0 (Same as .NET MAUI) | .NET 6.0 (Same as .NET MAUI) |
Platforms | iOS, Android, Windows, macOS (Same as .NET MAUI) | iOS, Android, Windows, macOS (Same as .NET MAUI) |
We are targeting August 2021 to release the first preview of the new CommunityToolkit.Maui
NuGet packages, and we will publish a transition guide to help navigate any breaking changes between Xamarin.CommunityToolkit
and CommunityToolkit.Maui
.
And yes, both Andrei Misiukevich and Pedro Jesus have graciously volunteered to continue on as maintainers for .NET MAUI Commmunity Toolkit. Thank you to you both!
Introducing Xamarin.CommunityToolkit.MauiCompat
To help all of us avoid breaking changes when porting our Xamarin.Forms apps to .NET MAUI, we are releasing two .NET MAUI-Compatible versions of the Xamarin Community Toolkit:
-
Xamarin.CommunityToolkit.MauiCompat
-
Xamarin.CommunityToolkit.Markup.MauiCompat
These MauiCompat
NuGet packages will be nearly identical to the current Xamarin Community Toolkit libraries; we are only changing the Xamarin.Forms dependency to .NET MAUI, keeping the rest of the code base the same.
The MauiCompat
library allows us to continue using the Xamarin Community Toolkit as we use it today. The only thing you need to do is uninstall the Xamarin.CommunityToolkit
NuGet package, install the Xamarin.CommunityToolkit.MauiCompat
NuGet Package, and update the namespaces. No further code changes are required!
We are targeting August 2021 to release the first preview of the new MauiCompat
NuGet packages.
Xamarin.Community.Toolkit | Xamarin.CommunityToolkit.MauiCompat | Xamarin.Community.Toolkit.Markup | Xamarin.CommunityToolkit.Markup.MauiCompat | |
---|---|---|---|---|
Dependency | Xamarin.Forms | .NET MAUI | Xamarin.Forms | .NET MAUI |
Native Implementation | Custom Renderer | Custom Renderer | Custom Renderer | Custom Renderer |
Target | .NET Standard 1.0 (Same as Xamarin.Forms) | .NET 6.0 (Same as .NET MAUI) | .NET Standard 1.0 (Same as Xamarin.Forms) | .NET 6.0 (Same as .NET MAUI) |
Platforms | iOS, Android, GTK#, Tizen, UWP, WPF (Same as Xamarin.Forms) | iOS, Android, Windows, macOS (Same as .NET MAUI) | iOS, Android, GTK#, Tizen, UWP, WPF (Same as Xamarin.Forms) | iOS, Android, Windows, macOS (Same as .NET MAUI) |
Note: To ensure no breaking changes,
Xamarin.CommunityToolkit.MauiCompat
will continue using Custom Renderers and will not utilize .NET MAUI Handlers
Unifying Xamarin Community Toolkit + Windows Community Toolkit
The .NET MAUI Community Toolkit will debut in a new GitHub repository where we are combining efforts with the Windows Community Toolkit team! This allows us to combine engineering, DevOps, and documentation and marketing resources with Windows Community Toolkit. We are also sharing code between both toolkits via new library, CommunityToolkit.Common
.
The new libraries are open-source and can be found in the CommunityToolkit GitHub Organziation. This GitHub Organization was previously named Windows Community Toolkit (windows-toolkit)
. The updated + unified organization allows us to most efficiently share code and CI/CD workflows between toolkits, and opens the possibility for additional toolkits in the future.
You can learn more about the Windows Community Toolkit’s work for WinUI 3 and the new CommunityToolkit.WinUI
identity in their official announcement.
You can also follow our progress here in the Community Toolkit GitHub Organization, and don’t be shy about submitting pull requests!
Stay tuned to the .NET Blog for more updates on the unified CommunityToolkit
!
Sunsetting Xamarin.CommunityToolkit
Following the same schedule as Xamarin.Forms, we will continue to service Xamarin Community Toolkit through November 2022.
We will continue accepting pull requests adding new features until September 2021.
We will continue accepting pull requests fixing bugs and publish service releases through November 2022.
The source code for Xamarin Community Toolkit will remain in its current GitHub Repository in the Xamarin
GitHub Organization: https://github.com/xamarin/XamarinCommunityToolkit
Schedule
When will all of these new libraries be available? Here’s our upcoming schedule!
Date | Milestone |
---|---|
August 2021 | NuGet Pre-Release of Xamarin.CommunityToolkit.MauiCompat |
August 2021 | NuGet Pre-Release of Xamarin.CommunityToolkit.Markup.MauiCompat |
August 2021 | NuGet Pre-Release of CommunityToolkit.Maui |
August 2021 | NuGet Pre-Release of CommunityToolkit.Maui.Markup |
August 2021 | NuGet Pre-Release of CommunityToolkit.Common |
September 2021 | Last Call for Pull Requests adding new features to Xamarin Community Toolkit |
November 2021 | .NET MAUI GA |
November 2021 | Feature Freeze for Xamarin Community Toolkit |
November 2022 | Final Release of Xamarin Community Toolkit |
Summary
Thank you to all of the amazing contributors to Xamarin Community Toolkit! We could not have created such a successful library without your help, and we can’t wait to see the amazing new features you’ll add to the .NET MAUI Community Toolkit!
We can use your help porting features from Xamarin Community Toolkit, so be sure to check out the new open-source .NET Community Toolkit repositories and start submitting pull requests today!
Great news! Will be happy to help port XCT to CommunityToolkit.Maui.
Are there any planned differences between CommunityToolkit.Maui and Xamarin.CommunityToolkit.MauiCompat except what renderer is used? I mean, is solution structure and features will be the same?
We didn’t plan that far yet I think 🙂 For the MauiCompat one the features will be the same as the current Toolkit. For the “.NET MAUI Native” one we’ll have to see. Since we now have overlap with the CommunityToolkit.Windows (aka Windows Community Toolkit) we will have to see which features move to a more common place etc.
Nice one. What about
I love the idea! It’s certainly a possibility!
If you’re interested in creating it, owning it, maintaining it, etc, send me an email: bramin@microsoft.com 🙌