# microsoft-ui-xaml: building Windows apps on WinUI 3, and what the repo does not give you

> WinUI 3 is the current generation of Microsoft's UI layer for Windows apps, shipped inside the Windows App SDK. This is what the repository contains, how to get it into a project, and where the open source story stops short of a normal community project.

**microsoft/microsoft-ui-xaml** — WinUI: a modern UI framework with a rich set of controls and styles to build dynamic and high-performing Windows applications.

- Repository: https://github.com/microsoft/microsoft-ui-xaml
- Stars: 8,484 · Forks: 950
- Language: C++
- License: MIT
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/microsoft-microsoft-ui-xaml

## The problem WinUI 3 exists to solve

Windows desktop development has long carried a split. Win32 and WPF gave you reach and a mature toolchain but controls that look dated next to current Windows. UWP gave you Fluent Design and modern input handling but confined you to a sandboxed application model with a narrower API surface. WinUI 3 is Microsoft's answer to that split: a UI layer with modern controls and styles that you can host in a desktop application rather than inside a UWP package.

The README frames it as "a user interface layer that contains modern controls and styles for building Windows apps", and states that the current generation ships as part of the Windows App SDK. The audience follows from that. If you are writing a Windows-only desktop application in C# or C++ and you want the control set, styles and accessibility behaviour that Windows itself uses, this is the layer Microsoft points you at. The README also notes that Windows experiences and apps are built with WinUI, which is the strongest argument for visual consistency: your app inherits the same control vocabulary as the shell.

It is not a cross-platform toolkit. Nothing in the README suggests otherwise, and the Windows App SDK framing makes the boundary explicit. If your roadmap includes macOS or Linux, this is the wrong starting point.

## How WinUI 3 is structured and how it reaches your app

The repository layout tells you a lot about what kind of project this is. The top level holds Microsoft.UI.Xaml-Product.sln, a controls directory, a dxaml directory, a src directory, a test directory, a packaging directory, and build entry points named Build.cmd, DevCmd.cmd, init.cmd, OneTimeSetup.cmd and init.ps1. There is a MergedWinMD directory and a XamlCompilerPrerequisites.sln. This is the product source for the XAML framework and its compiler, not a library you clone into an application folder.

The consumption path is different from the development path. Applications take WinUI 3 through the Windows App SDK, which the README describes as "a set of libraries, frameworks, components, and tools that you can use in your apps to access powerful Windows platform functionality from all kinds of apps on many versions of Windows". The README also points at Samples/WinUIPackageReference.props and Samples/packages.config, which is the shape of a NuGet-based reference. The repository releases are tagged by the Windows App SDK version they correspond to, for example winui3/release/2.5.1 described as "WinUI 3 in WinAppSDK 2.5.1", with 2.4.1-experimental and 2.4.0 before it. So the version you care about as an application developer is the Windows App SDK version, and the repository tag is how you map back to the source that produced it.

Runtime support is stated plainly: users must be on Windows 10 1809, Build 17763, or newer, including Windows Insider Previews. That is a floor, not a suggestion. The README also links to a page on Windows Runtime APIs not supported in desktop apps, which is a quiet but important signal: moving from UWP to the desktop application model changes which APIs are available to you, and the documentation treats that as a migration topic rather than a footnote.

## Getting WinUI 3 into a project and building a first app

The README does not give a command-line install for the framework itself. It directs you to Microsoft Learn, specifically the Get started with WinUI and Build your first WinUI app pages, and to the WinUI 3 Gallery as an interactive sample. If you want a working reference before writing any code, the gallery is the fastest route: the README links it at aka.ms/winui-gallery and to a Microsoft Store listing.

For a project, the practical starting point is the Windows App SDK package reference. The repository carries Samples/WinUIPackageReference.props and Samples/Directory.Build.props, which is the pattern the samples use to bring WinUI into a build. Those files are the place to look for the exact property names your project should set.

If you want to see the framework from the source side rather than the consumer side, the repository has its own build entry points. The README points at GettingStarted.md for building WinUI from source, and the top level provides these scripts:

```bash
OneTimeSetup.cmd
init.cmd
Build.cmd
```

The README is explicit that this path is a work in progress: it states that building the product binaries is now possible, with work in progress to share test code and enable locally running tests, and directs you to GettingStarted.md for current limitations. Expect the source build to be a research exercise, not a daily workflow.

One more detail worth knowing before you plan a migration: the README links a dedicated page on migrating from UWP to the Windows App SDK. If your codebase is UWP today, that page is the entry point, not the samples.

## The contribution model is the real limitation

Most repositories with an MIT licence and a public issue tracker invite patches. This one does not, at least not yet. The README carries a warning block stating that the team is "not yet ready to accept code contributions", that they are working towards that goal, and that building the product binaries is now possible while test code sharing and local test execution are still in progress. It points readers to a discussion post for the latest status.

That single fact changes how you should think about adopting WinUI 3. You can read the source, you can build it, and you can file feedback. You cannot fix a control bug yourself and upstream the patch. If your team's evaluation criteria include the ability to carry a local fork of a UI framework, this repository does not currently offer that path, and the README says so rather than leaving it ambiguous.

The README also documents that the project collects usage data and sends it to Microsoft, with the qualification that no data collection happens when you use your own private builds. That is a normal disclosure for a Microsoft product repository but worth noting if your organisation reviews telemetry before adopting a dependency.

A second, quieter limitation sits in the versioning. The releases are named after Windows App SDK versions and include experimental tags such as 2.4.1-experimental alongside stable ones like 2.5.1 and 2.4.0. If you track a release branch, you are tracking a branch whose name is tied to another product's release train. That coupling is convenient when the versions line up and confusing when they do not.

## WinUI 3 against WPF and against WinUI 2

The honest alternative for a Windows desktop app is WPF, and the difference is not cosmetic. WPF is a mature .NET UI framework with its own rendering stack, a long-established control ecosystem and a large body of third-party libraries. WinUI 3 is a newer layer that ships with the Windows App SDK and is designed around Fluent Design and current Windows input and accessibility patterns. If your application is stable, your team knows WPF, and visual modernity is not a requirement, moving to WinUI 3 is a rewrite with an uncertain payoff. If you are starting fresh and the app should look like a current Windows app, WinUI 3 is the layer Microsoft documents first.

The second alternative is inside this same repository. WinUI for UWP, referred to as WinUI 2, is described in the README as "a library of controls that provides Microsoft UI controls and features for UWP apps". Its source lives on a separate branch, winui2/main, and it has its own gallery on the Microsoft Store. The distinction matters: WinUI 2 is a control library for UWP apps, while WinUI 3 is the generation that ships with the Windows App SDK and targets the desktop application model. Choosing between them is really choosing your application model, not your control set. If you are already committed to UWP, WinUI 2 is the fit. If you are building or migrating a desktop app, the README steers you to WinUI 3.

The repository also ships a substantial Samples directory, including WinUICsDesktopSampleApp, WinUICppDesktopSampleApp, several XAML Islands samples such as WinUICppIslandsSampleApp and WinUITextInputXamlIslandApp, and specialised ones like TableViewApp, ItemsViewIntegrationApp and FolderTreeApp. Those names are a useful map of what the team considers supported scenarios, and the XAML Islands entries in particular signal that incremental adoption inside an existing Win32 application is a first-class path rather than an afterthought.

## Licence, maintenance and what upgrading costs you

The repository is MIT licensed. That is permissive: it allows commercial use, modification and redistribution provided the copyright notice and licence text are preserved. It says nothing about the Windows App SDK runtime, the Microsoft Store, or any other component you take a dependency on, and the README does not attempt to describe those terms. Treat the MIT grant as covering this repository's code only and read the terms attached to whatever you actually ship.

The repository is not archived, and the most recent push recorded for it is 2026-09-21. Releases are frequent enough to be worth watching: winui3/release/2.5.1 on 2026-09-19, winui3/release/2.4.1-experimental on 2026-08-25, and winui3/release/2.4.0 on 2026-08-13. That cadence, combined with the Windows App SDK version naming, means an upgrade is rarely just a WinUI change. Moving from one release branch to the next usually means moving the Windows App SDK version your app references, which can pull in behaviour outside the XAML layer.

The upgrade cost that the README does not document is rollback. There is no stated procedure for reverting a WinUI 3 or Windows App SDK upgrade, and because the versions are coupled, a revert is not simply a package version change. Plan upgrades the way you would plan any dependency with a runtime component: pin the version, test the whole application, and keep the previous Windows App SDK version available so you can go back. The repository's release notes link at aka.ms/winui-releasenotes is where the actual change detail lives; the README itself only points there.

## Conclusion

Adopt WinUI 3 if you are building a new Windows desktop app in C# or C++ and want Fluent Design controls without assembling them yourself, and check that your minimum OS is Windows 10 1809 build 17763 or newer. Do not adopt it expecting a normal open source contribution loop, because the README states the team is not yet ready to accept code contributions, and do not pick it for a cross-platform product. Before committing, verify two things in the repository itself: whether GettingStarted.md covers the build path for your toolchain, and whether the release branch you plan to track matches the Windows App SDK version you are already shipping against.

## FAQ

### What is WinUI, or Windows UI XAML?

WinUI is a user interface layer containing modern controls and styles for building Windows apps, and the current generation is WinUI 3, which ships as part of the Windows App SDK. The README describes it as embodying Fluent Design and being usable from .NET with C# or C++.

### What is the microsoft-ui-xaml DLL?

The repository builds the WinUI product binaries, with Microsoft.UI.Xaml-Product.sln and a MergedWinMD directory at the top level. Applications normally consume the framework through the Windows App SDK rather than by copying a DLL, and the README points developers at Microsoft Learn for getting started.

### How do I install microsoft-ui-xaml for a project?

The README does not give a standalone install command. It directs readers to the Get started with WinUI and Build your first WinUI app pages on Microsoft Learn, and the repository samples use a package reference pattern for bringing WinUI into a build.

### How do I install microsoft-ui-xaml 2.8?

The README does not describe a version 2.8 or an install procedure for it. It points readers to Microsoft Learn for getting started with WinUI 3 and to the winui2/main branch for WinUI for UWP.

### What is XAML used for in WinUI?

XAML is the markup the framework compiles into your UI. The repository contains a XamlCompilerPrerequisites.sln and a Samples/DisableXamlGeneratedMain sample, which exists because the generated entry point can be turned off when you supply your own startup path.

## Sources

- [Issues](https://github.com/microsoft/microsoft-ui-xaml/issues)
- [License: MIT](https://github.com/microsoft/microsoft-ui-xaml/blob/main/LICENSE)
- [microsoft/microsoft-ui-xaml on GitHub](https://github.com/microsoft/microsoft-ui-xaml)
- [README](https://github.com/microsoft/microsoft-ui-xaml/blob/main/README.md)
- [Releases](https://github.com/microsoft/microsoft-ui-xaml/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/microsoft-microsoft-ui-xaml
