Skip to content

MS_WindowsAppSDK

nishi_74322014 edited this page Aug 12, 2026 · 1 revision

Windows App SDK

概要

  • ≒ WinUI 3
  • Windows 10 以降の SDK から切り離された、
    新しい、ネイティブ UI プラットフォーム コンポーネント

詳細

長らく、存在すら知りませんでした。

Project Reunion

  • UWPと Win32(Windows Forms, WPF)の
    再統合を目指すプロジェクト。

  • 経緯を調べると、WinUI 2 → WinUI 3 の変更を行ったプロジェクトと言える。

補足(「再統合」が意味するもの): Windows のアプリ開発は
Win32 系と WinRT/UWP 系に分断されていた。

Win32 系 UWP 系
UI Windows Forms / WPF UWP XAML
API Win32 API / .NET Framework WinRT API
配布 任意(EXE / MSI / ClickOnce Microsoft Store(MSIX)
制約 ほぼ無い サンドボックス

**「新しい OS 機能は WinRT 側にしか来ないが、
業務アプリは Win32 側にある」**という状態が長く続き、
これが開発者の不満の中心にあった。

Project Reunion は、この**「新しい API を Win32 アプリからも使えるようにする」**
ことを主眼としており、
UWPを捨てて Win32 に寄せた、というのが実態である。

Windows UI ライブラリ (WinUI)

ネイティブ ユーザー エクスペリエンス (UX) フレームワーク

WinUI 2

移行メモ(補足): 「WinUI 1 が存在したのか不明」とあるが、
WinUI 1.0 は存在する。2018年に
Microsoft.UI.Xaml として NuGet 配布が始まったものがそれで、
記述にあるとおり「Windows SDK から切り離して NuGet 化した」ものである。
ほどなく WinUI 2.0 に更新されたため、1.x を目にする機会はほぼ無い。

補足(XAML Islands の制約): XAML Islands は
WPFの機能で述べた エアスペース問題
そのまま抱えている(ホストされた領域に WPF 要素を重ねられない)。
また、現在 XAML Islands は Windows App SDK 1.x では
サポート対象外
(WinUI 3 の Islands として再設計中)であり、
「既存 WPF アプリに部分的に新 UI を混ぜる」という用途は
依然として素直に実現できない。

WinUI 3

  • Windows App SDK に取り込まれた Project Reunion の成果。

  • UWP API を Win32(Windows Forms, WPF
    アプリで使用できるようにするもの。

  • WinUI 2 では UWP前提だったが、
    UWPがメンテナンス・フェーズに入ったことで、
    この様に(UWP経由ではなく、直接の利用が可能なように)
    変更されたと推測。

補足(推測は当たっている・現在の状況): この推測は正しく、
WinUI 3 は UWP から切り離され、Win32 プロセス上で動作する

WinUI 2 WinUI 3
ホスト UWP アプリ Win32 アプリ
名前空間 Windows.UI.Xaml Microsoft.UI.Xaml
配布 Store(MSIX) MSIX / アンパッケージ配布も可
ランタイム UWP プロファイル 本流の .NETnet8.0-windows10.x

現在の評価としては、

  • 利点: Windows 11 の最新デザイン(Mica / Fluent)が使える。
    本流の .NET に載っている。
  • 課題: WPFと比べて成熟度が低い
    (デザイナが無い、サードパーティ コントロールが少ない、
    一部 API が未実装)。

業務アプリを今すぐ全面的に WinUI 3 で作るのは、
参考リンクにある「5 分でブチ切れた話」が示すとおり、
まだ相応の覚悟が要る。
枯れた WPF を選ぶ判断も依然として合理的である。

参考

窓の杜

InfoQ

Microsoft Learn


Tags: 移行, .NET開発, UIサブシステム, Windows Forms

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally