-
Notifications
You must be signed in to change notification settings - Fork 0
MS_WindowsAppSDK
- 戻る(デスクトップ・アプリ)
- Windows App SDK(WinUI 3)
- UWP
- Windows Forms / WPF
- ≒ WinUI 3
- Windows 10 以降の SDK から切り離された、
新しい、ネイティブ UI プラットフォーム コンポーネント
長らく、存在すら知りませんでした。
-
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 に寄せた、というのが実態である。
ネイティブ ユーザー エクスペリエンス (UX) フレームワーク
- Windows の最新機能を提供する。
-
Windows デスクトップと UWP の
両方のアプリに対応する。
-
基本的には、UWPで利用できるライブラリ。
-
WinUI 1 が、存在したのか?どのようなものか?不明だが、初出のモノは、
ライフサイクルの関係上、Windows SDK から NuGet へ、
切り離しを図ったモノだったらしい。 -
XAML Islands によって新規または既存の
デスクトップ・アプリにも組み込むことができる。- XAML Islands とは、
- 当該機能をデスクトップ・アプリで
利用可能にする機能で、 -
ElementHost(Windows Forms → WPF)や
WindowsFormsHost(WPF → Windows Forms)
のように、 - ホスト・コントロール経由で UWPのコントロールをホストする。
- 当該機能をデスクトップ・アプリで
- ココでのデスクトップ・アプリとは、
Windows Forms, WPF等を指す。
- XAML Islands とは、
移行メモ(補足): 「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 を混ぜる」という用途は
依然として素直に実現できない。
-
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.XamlMicrosoft.UI.Xaml配布 Store(MSIX) MSIX / アンパッケージ配布も可 ランタイム UWP プロファイル 本流の .NET( net8.0-windows10.x)現在の評価としては、
- 利点: Windows 11 の最新デザイン(Mica / Fluent)が使える。
本流の .NET に載っている。- 課題: WPFと比べて成熟度が低い
(デザイナが無い、サードパーティ コントロールが少ない、
一部 API が未実装)。業務アプリを今すぐ全面的に WinUI 3 で作るのは、
参考リンクにある「5 分でブチ切れた話」が示すとおり、
まだ相応の覚悟が要る。
枯れた WPF を選ぶ判断も依然として合理的である。
-
MicrosoftのWinUI 3はUWPを捨ててWin32に集中 - ソフトアンテナブログ
https://softantenna.com/wp/windows/winui3-focus-win32/ -
Project Reunion改め、Windows App SDK - はつねの日記
https://hatsune.hatenablog.jp/entry/2021/09/21/225459 -
WinUI3 を触ってみた結果>5分でブチ切れた話し - torum
https://torum.hatenablog.com/entry/2021/06/30/220456 -
WinUI 3 の
- 「Project Reunion」の正式名称は「Windows App SDK」に ~v0.8が一般公開
https://forest.watch.impress.co.jp/docs/news/1334345.html
- Project Reunionを使用して、MicrosoftはWin32とUWP APIの統合を試みる
https://www.infoq.com/jp/news/2020/10/microsoft-project-reunion/
-
Windows App SDK
https://learn.microsoft.com/windows/apps/windows-app-sdk/ -
Windows UI ライブラリ (WinUI)
https://learn.microsoft.com/windows/apps/winui/
Tags: 移行, .NET開発, UIサブシステム, Windows Forms
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。