July 27th, 2021

Welcome to the Community Toolkit!

Michael Hawker
Senior Software Engineer

🧰 The Community Toolkit

The Windows Community Toolkit has come a long way since our start in 2016 as the “UWP Community Toolkit”. We joined the .NET Foundation soon after, and we’ve broadened our scope to encompass a larger set of .NET developers with our communities with projects like the MVVM Toolkit and High Performance packages by Sergio Pedri.

A while back we started talking to the Xamarin Community Toolkit team, and we decided it’d be best to align our efforts and resources together as we move forward on new technologies like WinUI 3 and .NET MAUI. As they recently announced, they’ve joined our GitHub organization for their next project creating the MAUI Community Toolkit.

Our GitHub organization has thus been renamed as CommunityToolkit (from windows-toolkit) to encompass our broader scope of projects under its purview within the .NET Foundation. This will hopefully be the last rename of our organization for a while (it’s only the 2nd time we’ve done it!). This new name also reflects the new package identity root we’ve been planning to move towards, CommunityToolkit.*, on NuGet as well; as we called out in a previous post for WinUI 3.

Look how we’ve grown from a single project into the home of the:

  • Windows Community Toolkit
  • Graph Community Toolkit
  • MVVM Toolkit
  • MAUI Community Toolkit

🔮 The Future – Introducing the .NET Community Toolkit!

We want to be the home for .NET based Community Toolkits which are partnering the community with engineers, Microsoft MVPs, and the teams working on those technologies.

Sometime in the next few months, we plan to split out our .NET specific libraries from the Windows Community Toolkit into their own dedicated repository. This includes our CommunityToolkit.Common helpers, the MVVM Toolkit, the High Performance, and the Diagnostics packages to form the “.NET Community Toolkit”. Sergio Pedri will be its maintainer. 🎉🎉🎉

By centralizing this code in its own home, we can better share it with the other .NET based toolkits we have within our organization. It also makes it easier for any .NET developer and developers from each of our more framework-specific toolkits to contribute back components that are platform and framework agnostic.

🚀 We look forward to continuing our journey with the community and seeing everything that can happen when we build things together with open source. If you haven’t jumped aboard yet, don’t hesitate! It can be as simple as reading the docs, opening an issue, or reviewing a PR to try a cool new feature! Our wiki has information about contributing any of these types of feedback to a project.

Happy coding! <🦙/>


Technical Notes

📝 Other Upcoming Changes

During our last Windows Community Toolkit release, we built a wiki to start documenting processes about the organization and project itself, how to contribute, and technical details on how build processes and projects work. We plan to centralize this wiki across our organization as a set of best practices for toolkits to follow and to make contributing to each toolkit a similar experience.

We are also currently working on consolidating our toolkit documentation into a new home, still on docs.microsoft.com. There we will have docs for all our toolkits centralized and more easily discoverable, regardless of which technology you may be using from them.

🚗 Git Migration Notes

If you have a copy of a repository cloned from our previous windows-toolkit org, you’ll need to update your remote origin url with the change. For instance, for the WindowsCommunityToolkit repo the command would be:

git remote set-url origin https://github.com/CommunityToolkit/WindowsCommunityToolkit.git

If you’re using our NuGet Preview Packages, you’ll need to update them in the Visual Studio Package Sources settings under NuGet Package Manager and change WindowsCommunityToolkit to CommunityToolkit. For instance, for our latest main feed the new url would be:

https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-MainLatest/nuget/v3/index.json

We also plan for this to be a centralized feed for all our repos main branches in the future.

 

Author

Michael Hawker
Senior Software Engineer

Michael A. Hawker, a.k.a. XAML Llama, is a Senior Software Engineer for the Apps, Partners, and Store (APS) team at Microsoft. APS focuses on driving the ISV ecosystem through technical engagement with partners and industry as well as providing essential first party experiences. Michael is the maintainer of the Windows Community Toolkit and prior “App Ninja”. He is also the creator of XAML Studio, a Microsoft Garage project.

4 comments

Discussion is closed. Login to edit/delete existing comments.

  • Mladen Mihajlovic

    Didn’t Microsoft originally create Prism? Why not promote/use that instead of creating a new MVVM library?

  • PandaSharp

    🎉🎉🎉

  • Paulo Pinto

    Good news, regarding the adoption of HighPerformance package.

    It is nice to see, .NET finally taking it seriouly what could have been Microsoft’s “Delphi” from version 1.0, performance and productivity in one package, without having to dive into OS kernel like programming tricks.