UWP XAML Community Toolkit
UWP XAML Community Toolkit (obecnie znany jako WinUI Community Toolkit) to otwarto‑źródłowy zestaw komponentów, kontrolek i pomocników zaprojektowanych z myślą o aplikacjach tworzonych w UWP (Universal Windows Platform) przy użyciu języka znaczników XAML oraz platformy .NET. Projekt ma na celu przyspieszenie i ułatwienie tworzenia interfejsów użytkownika oraz implementacji typowych wzorców, takich jak MVVM.
Historia
Zestaw powstał w 2015 roku jako UWP Community Toolkit, będący rozwinięciem wcześniejszego Toolkit for Universal Windows Platform. W 2020 roku, w związku z przejściem Microsoftu na platformę WinUI, projekt został przemianowany na WinUI Community Toolkit, a jego kod został przeniesiony na GitHub, skąd jest dystrybuowany jako pakiet NuGet.
Zakres i funkcjonalności
Toolkit składa się z trzech głównych warstw:
- Kontrolki UI – gotowe komponenty, takie jak Expander, DataGrid, RadialGauge czy Tabs, które można wstawiać bezpośrednio do XAML‑u.
- Usługi i pomocnicy – klasy ułatwiające np. iniekcję zależności, obsługę asynchroniczności, czy WeakReferenceMessenger do komunikacji między widokami a modelami.
- Rozszerzenia językowe – konwertery, zachowania (behaviors) oraz właściwości dołączane, które pozwalają na zwiększenie możliwości XAML bez konieczności pisania kodu‑behind.
Architektura
Projekt podzielony jest na kilka pakietów NuGet, co umożliwia deweloperom pobranie jedynie potrzebnych komponentów:
Microsoft.Toolkit.Uwp.UI.Controls– kontrolki UI.Microsoft.Toolkit.Uwp.UI.Labs– eksperymentalne elementy.Microsoft.Toolkit.Diagnostics– narzędzia diagnostyczne.Microsoft.Toolkit.Mvvm– biblioteka wspierająca wzorzec MVVM.
Przykładowe użycie
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="using:Microsoft.Toolkit.Uwp.UI.Controls">
<toolkit:Expander Header="Szczegóły">
<TextBlock Text="Treść rozwijanej sekcji"/>
</toolkit:Expander>
</Page>
Związki z innymi technologiami
Zestaw jest ściśle powiązany z technologiami C#, WinUI 2/3, a także z frameworkiem .NET MAUI, który korzysta z podobnych koncepcji. Dzięki temu, deweloperzy mogą wykorzystywać te same kontrolki w aplikacjach mobilnych i desktopowych.
Wspólnota i rozwój
Projekt jest utrzymywany przez społeczność programistów oraz zespół Microsoft. Każdego roku organizowane są spotkania, w tym coroczne Microsoft Build, gdzie prezentowane są nowe funkcje i roadmapa. Zgłoszenia błędów oraz propozycje funkcjonalności przyjmowane są poprzez sekcję Issues na GitHubie.
Bibliografia
- „UWP Community Toolkit Documentation”, oficjalna dokumentacja (dostępna na Microsoft Docs).
- „WinUI Community Toolkit – GitHub Repository”, repozytorium kodu źródłowego.
- K. Szyperski, Wzorce projektowe w .NET, wyd. Helion, 2022.