About dotnet-ui
dotnet-ui is a .NET UI development skill for developers choosing or building interfaces with Blazor, MAUI, Uno Platform, WPF, WinUI 3, and WinForms. It routes topics to focused guidance on architecture, platform deployment, accessibility, localization, and testing.
Key features
- 01Guidance across six .NET UI frameworks
- 02Framework selection decision tree
- 03Component and XAML architecture patterns
- 04Accessibility and localization practices
- 05Framework-specific testing guidance
Use cases
- 01Choosing a .NET UI framework
- 02Building Blazor or MAUI interfaces
- 03Modernizing WPF or WinForms apps
- 04Adding accessibility and localization
MCP support
The skill includes guidance on Uno Platform MCP tool detection and search-then-fetch workflows.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ novotnyllc/ dotnet-artisan --skill dotnet-uiAfter installing, type/dotnet-uiin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/accessibility.mdblazor-auth.mdblazor-components.mdblazor-patterns.mdblazor-testing.mdlocalization.mdmaui-aot.mdmaui-development.mdmaui-testing.mdplatform-bindings.mdui-chooser.mduno-mcp.mduno-platform.mduno-targets.mduno-testing.mdwinforms-basics.mdwinui-controls-styling.mdwinui.mdwpf-migration.mdwpf-modern.mdDetails
From the project READMEdotnet-ui
Overview
.NET UI development across Blazor, MAUI, Uno Platform, WPF, WinUI 3, and WinForms. This skill covers framework selection, component architecture, XAML patterns, MVVM, platform-specific deployment, accessibility, and localization. Each framework area has a dedicated companion file with deep guidance.
Routing Table
| Topic | Keywords | Description | Companion File |
|---|---|---|---|
| Blazor patterns | hosting model, render mode, routing, streaming, prerender | Hosting models, render modes, routing, streaming, prerendering, AOT-safe patterns | references/blazor-patterns.md |
| Blazor components | lifecycle, state, JS interop, EditForm, QuickGrid | Lifecycle methods, state management, JS interop, EditForm, QuickGrid | references/blazor-components.md |
| Blazor auth | AuthorizeView, Identity UI, OIDC flows | Login/logout flows, AuthorizeView, Identity UI, OIDC, role and policy auth | references/blazor-auth.md |
| Blazor testing | bUnit, rendering, events, JS mocking | bUnit component rendering, events, cascading params, JS interop mocking | references/blazor-testing.md |
| MAUI development | project structure, XAML, MVVM, platform services | Project structure, XAML/MVVM patterns, Shell navigation, platform services | references/maui-development.md |
| MAUI AOT | iOS/Catalyst, Native AOT, trimming | iOS/Catalyst Native AOT pipeline, size/startup gains, library compatibility | references/maui-aot.md |
| MAUI testing | Appium, XHarness, platform validation | Appium 2.x device automation, XHarness, platform validation | references/maui-testing.md |
| Uno Platform | Extensions, MVUX, Toolkit, Hot Reload | Extensions ecosystem, MVUX pattern, Toolkit controls, Hot Reload | references/uno-platform.md |
| Uno targets | WASM, iOS, Android, macOS, Windows, Linux | Per-target guidance for WASM, iOS, Android, macOS, Windows, Linux | references/uno-targets.md |
| Uno MCP | tool detection, search-then-fetch, init | MCP tool detection, search-then-fetch workflow, init rules, fallback | references/uno-mcp.md |
| Uno testing | Playwright WASM, platform patterns | Playwright for WASM, platform-specific test patterns, runtime heads | references/uno-testing.md |
| WPF modern | Host builder, MVVM Toolkit, Fluent theme | Host builder, MVVM Toolkit, Fluent theme, performance, modern C# | references/wpf-modern.md |
| WPF migration | WPF/WinForms to .NET 8+, UWP to WinUI | WPF/WinForms to .NET 8+, UWP to WinUI, Upgrade Assistant | references/wpf-migration.md |
| WinUI | Windows App SDK, XAML, MSIX/unpackaged | Windows App SDK, x:Bind, x:Load, MSIX/unpackaged, UWP migration | references/winui.md |
| WinForms | high-DPI, dark mode, DI, modernization | High-DPI scaling, dark mode, DI patterns, modernization | references/winforms-basics.md |
| Accessibility | SemanticProperties, ARIA, AutomationPeer | SemanticProperties, ARIA attributes, AutomationPeer, per-platform testing | references/accessibility.md |
| Localization | .resx, IStringLocalizer, pluralization, RTL | .resx resources, IStringLocalizer, source generators, pluralization, RTL | references/localization.md |
| WinUI controls/styling | CommandBar, GridView, adaptive triggers, Mica, system brushes, icons | WinUI control selection, adaptive layout, theming, materials, typography | references/winui-controls-styling.md |
| UI chooser | framework selection decision tree | Decision tree across Blazor, MAUI, Uno, WinUI, WPF, WinForms | references/ui-chooser.md |
| Platform bindings | Java.Interop, ObjCRuntime, Android AAR, iOS XCFramework, Slim Binding | Custom native SDK bindings for Android and Apple platforms | references/platform-bindings.md |
Scope
- Blazor (Server, WASM, Hybrid, Auto) hosting models and components
- MAUI mobile/desktop development and Native AOT
- Uno Platform cross-platform development and MCP integration
- WPF on .NET 8+ and migration from .NET Framework
- WinUI 3 / Windows App SDK
- WinForms modernization (high-DPI, dark mode, DI)
- Accessibility across all UI frameworks
- Localization (.resx, IStringLocalizer, pluralization, RTL)
- UI framework selection decision tree
Out of scope
- Server-side auth middleware and API security configuration -- see
dotnet-api - Non-UI testing strategy (unit, integration, E2E architecture) -- see
dotnet-testing - Cross-framework UI test patterns (page objects, selectors) -- see
dotnet-testing - Playwright browser automation (non-framework-specific) -- see
dotnet-testing - Backend API patterns and architecture -- see
dotnet-api - Native AOT compilation (non-MAUI) -- see
dotnet-tooling - Console UI (Terminal.Gui, Spectre.Console) -- see
dotnet-tooling