Uno Platform Enlisted for Windows Community Toolkit Labs Makeover
Microsoft has teamed with Uno Platform to revamp its Windows Community Toolkit, a collection of helpers, extensions and custom controls for building UWP and .NET apps for Windows.
The makeover right now mainly involves the dev team reworking the backend infrastructure of the project, but the plan is to streamline and simplify things to eventually support building single-codebase components that can run on UWP, WinUI 3, and WebAssembly with Uno Platform -- basically all the UWP XAML-based platforms.
The infrastructure revamp results in a new name for the kit that will be the center of all development efforts going forward: the Windows Community Toolkit Labs, providing a one-stop-shop for kit "experiments" that encapsulate code with associated documentation, samples and tests.
The room for experimentation allows for development without the associated pressures of introducing high-quality components into the project GitHub repo for further development, which was a problem the dev team faced with the old way that provided a high bar for code quality and stringent, time-consuming vetting processes for newly introduced features.
"Windows Community Toolkit Labs provides us the means to take features from ideas and prototypes all the way to finalized components in a collaborative and low-barrier environment," said Microsoft's Michael Hawker, senior software engineer, in a July 20 blog post. "We can make changes in Labs, try out new ideas, and not worry about having code needing to be completely 'shippable' to make its way to the repository like we do today."
The dev team will be careful about adding new components (experiments) during the revamp, but current samples can be viewed online. That functionality comes with the enlistment of open source Uno Platform tech, which helps developers create pixel-perfect, single-source C# and XAML apps running natively on Windows, iOS, Android, macOS and Linux -- and on the web via WebAssembly. Uno Platform and Microsoft have teamed together on other projects -- mainly around WinUI 3 -- and that collaboration continues with the Labs makeover. In fact, Microsoft's dev team plans to work with the Uno Platform team to integrate the latter's "Uno Platform port of Windows Community Toolkit" fork into the Labs project's new main GitHub repository. That fork is a port that allows for Uno Platform-based apps to use Windows Community Toolkit for WinUI 3 on Windows, iOS, macOS, Android, WebAssembly and Linux.
In the online sample Labs app, current toolkit samples include CanvasLayout, ContentSizer, GridSplitter and more.
"Every experiment in Labs lets you seamlessly run and test your component against UWP and WinUI 3 or run samples in your browser with WebAssembly on Uno Platform," Hawker said.
In its own post, Uno Platform said, "Uno Platform and its support for WebAssembly powers the complete Windows Community Toolkit Labs web experience, for both its UWP and WinUI implementations. All 'experiments' built within labs are therefore available within the Toolkit Labs WebApp for community to try with without any development environment set up needed!! Uno Platform is deeply integrated into the infrastructure of Toolkit Labs allowing it to not only build components, but also run its sample app across all different platforms Uno Platform supports.
"As Toolkit Labs infrastructure moves forward, the goal is for it to power the Windows Community Toolkit in whole enabling many of the WCT components to work easily on Uno Platform and for all developers using UWP and WinUI/Windows App SDK."
While the revamp is underway, work will progress toward the next release, v8.0. Highlights of that, according to the release plan, include:
- Leverage new tooling/improvements for project structure/samples/documentation/testing from Toolkit Labs for Windows.
- Maintain a single branch for all platform targets (e.g. UWP and WinUI 3)
- Ship all targeted platforms in a single NuGet package and namespace under CommunityToolkit.WinUI.*
- Simplifies documentation and samples across platforms
- Enables library and app developers to multi-target platforms and share XAML
- Aids in transitions from UWP to WinUI 3 in the long-term.
- Seeded with code from our existing winui branch.
- Rename or Archive existing CommunityToolkit/WindowsCommunityToolkit repo when migration is completed.
"Our plan is to focus on merging our branches and supporting running components on UWP, WinUI 3, and WebAssembly with Uno Platform," Hawker said. "We also intend to use this effort to improve our samples and documentation as part of our ongoing consolidation of our docs to their new home."
David Ramel is an editor and writer for Converge360.