News

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."

Windows Community Toolkit Labs
[Click on image for larger view.] Windows Community Toolkit Labs (source: Microsoft).

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."

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube