この FAQ では、プロジェクトに適したフレームワークの選択に関するガイダンスなど、Windows アプリケーション開発に関する一般的な質問に対する回答を提供します。 取り上げるトピックは次のとおりです。
- はじめにとWindowsアプリ開発環境。
- WinUI 3、Windows Presentation Foundation (WPF)、Windows Forms (WinForms) を使用したネイティブ Windows 専用アプリ開発。
- Windows ソフトウェア開発キット (SDK) とWindows App SDK。
- クロスプラットフォーム開発戦略の一部として Windows をターゲットにします。
- .NET MAUI、Blazor、および ASP.NET Core を使用したハイブリッドおよび Web アプリ開発。
- Microsoft の投資を理解しながらアプローチを選択する方法。
Windows app開発の状況
Windows 開発テクノロジの簡単な概要はどこで確認できますか?Windows 開発者向けの現在のオプションを詳しく確認するには、最新の Windows Dev Chat エピソード、 WinUI、.NET MAUI、React Native、Blazor、Progressive Web Apps (PWA) について説明する理想的な開発プラットフォームを確認してください。
Windows 開発者向けに アプリ開発オプションの
の概要を参照することもできます。
cloud services時代の最新のデジタル変革にクライアント アプリ開発は依然として重要
cloud servicesの時代、クライアント アプリの開発は、最新のデジタル変革の重要な要素であり続けます。 開発者にとって、クライアント アプリケーションの構築は、リーチだけでなく、ユーザー デバイスで応答性の高い意味のある対話を実現するために不可欠です。
クライアント アプリが重要な理由は次のとおりです。
- Device Reach: 15 億を超える Windows デバイスと 50 億を超える Android デバイスと iOS デバイスをグローバルに使用して、クライアント アプリを使用すると、選択したデバイス上のユーザーにアプリケーションを直接取り込むことができます。
- Gateway to Intelligent Services: クライアント アプリは、多くの場合、ユーザーがサービスと最初にやり取りします。 インテリジェントな機能を紹介し、製品を他のユーザーと区別できる、豊富でインタラクティブなインターフェイスを提供します。
- Scalability with Cloud Integration: 適切に統合されたクライアント アプリをバックエンド cloud servicesと簡単に同期できるため、ユーザー ベースの拡大に合わせてリアルタイムのデータ accessとシームレスなスケーラビリティを実現できます。
- 生産性とユーザー ロイヤルティの向上: 慎重に設計されたアプリは、生産性を向上させ、ユーザーが時間の経過と共に製品やサービスに関与し続けることができます。
ネイティブ Windows 専用アプリ開発
Windows App SDKは何ですか?
Windows App SDKは、美しく、モダンで下位互換性のある (Windows 10 1809 まで) デスクトップ アプリを作成できる Windows アプリケーション開発プラットフォームです。 WinUI は、Windows App SDKに付属する UI フレームワークです。
Windows App SDKと Windows SDK の違いは何ですか?
どちらも、Windows アプリをビルドするためのソフトウェア開発キット (SDK) です。
Windows App SDK は、Windows バージョン (Windows 10 1809 まで) にインストールできる最新のデスクトップ アプリを構築できる新しい開発プラットフォームです。 Windows App SDKを使用してビルドする場合は、最新の Windows 開発プラットフォーム機能を使用できます。 Windows App SDKには WinUI が含まれています。
Windows SDK は、UWP アプリや Win32/デスクトップアプリをビルドするための開発プラットフォームです。 設計の中心になっている Windows API は、特定のバージョンの OS と連動しています。
Windows App SDKは Windows SDK を置き換えません。 代わりに、Windows App SDKは Windows SDK を補完します。 Windows SDK を使用して既にアクセス可能な Windows OS API の豊富なカタログに関して、OS から分離された便利な抽象化を提供します。 Windows App SDKで構築されたアプリでは、機能のニーズに応じて Windows SDK API が引き続き使用される場合があります。 時間の経過と同時に、より多くの Windows SDK 機能がWindows App SDKに移行します。
Windows 専用アプリを開発するための新しいチームを構築しています。WinUI、WPF、WinForms などのネイティブ Windows フレームワークを使用して開発する必要がある理由
Windows 専用アプリのネイティブ Windows フレームワークを選択する理由を次に示します。
- パフォーマンス: ネイティブ Windows フレームワークは、最新の Windows ハードウェアを活用するように最適化されており、高速で応答性の高いユーザー エクスペリエンスを提供します。
- 統合: Windows には、Windows でのみ利用できる高度なエクスペリエンスを実現するさまざまな API が付属しています。 ネイティブ フレームワークは、これらの機能と API との緊密な統合を提供します。
- ネイティブ ユーザー エクスペリエンス: ネイティブ フレームワークは、Windows デバイス間で一貫したエクスペリエンスを提供し、アプリがあらゆる場所で優れた外観と動作を保証します。
- オフライン サポート: ネイティブ フレームワークはオフライン シナリオをサポートし、インターネットに接続しなくてもアプリを機能させます。
- Monetization: ネイティブ フレームワークは、Microsoft によって積極的に保守およびサポートされており、最新の更新プログラムと機能にaccessされます。
Microsoft の最新の Windows アプリ開発への投資を活用するためには、どのフレームワークを使用すべきでしょうか?
新しい Windows 専用アプリをビルドする場合は、WinUI を使用することをお勧めします。 WinUI は、Windows app開発用の最新のネイティブ UI フレームワークであり、さまざまな Windows デバイスで動作するように設計されています。 視覚的に魅力的で対話型の Windows アプリを作成するための、モダンで柔軟な UI フレームワークを提供します。 WinUI はWindows App SDKの一部であり、最新バージョンの Windows で最適に動作します。
既存のWindows appでWindows App SDK/WinUI を使用できますか?
WinUI (UI フレームワーク) には、Windows App SDK (Windows プラットフォーム開発フレームワーク) が付属しています。
一般に、アプリが UI フレームワークを完全に移行する準備が整っていない限り、WinUI は使用できません。 XAML islands と呼ばれる機能は、他の UI フレームワーク (WPF、Win32) で WinUI コンテンツをホストするために開発中です。
Windows App SDKの要素は、多くの場合、既存のアプリの構築方法に応じて、デスクトップ アプリで使用できます。 UWP アプリは、Windows App SDKではサポートされていません。
つまり、WPF/MFC/WinForms アプリでは、WinUI とは無関係Windows App SDK API を使用できます。 たとえば、アプリのライフサイクル、ウィンドウ化、トースト通知などです。
詳細については、「既存のprojectのWindows App SDKを使用する」を参照してください。
WinUI アプリをビルドするためにVisual Studioを使用する必要がありますか?
UWP の WinUI と WinUI の違いは何ですか?WinUI 開発には、Visual Studio 2022 バージョン 17.10 以降の使用を強くお勧めします。 最新のVisual Studio バージョンでは、Hot Reloadなどの豊富な開発機能が提供され、セットアップを簡略化する WinUI アプリケーション開発 ワークロードが含まれています。
他の IDE やワークフローも機能しますが、現在、winUI 用に公式にサポートされている唯一の IDE は Visual Studio です。 XAML または WinUI プロジェクトをコンパイルするには 、MSBuild が必要であることに注意してください。
WinUI (以前は WinUI 3 と呼ばられていた) は、Windows app開発のための最新のネイティブ UI フレームワークです。 視覚的に魅力的で対話型の Windows アプリを作成するための、モダンで柔軟な UI フレームワークを提供します。 WinUI はWindows App SDKの一部であり、最新バージョンの Windows で最適に動作します。
UWP 用 WinUI (以前は WinUI 2 と呼ばられていた) は、UWP 上に構築された一連の UI コントロールとスタイルです。 UWP アプリのモダンな外観を提供し、Windows 10向けに設計されています。
Windows App SDK と WinUI を使用してアプリをビルドする場合、"WinUI アプリ" をビルドしますか?
UWP コンポーネントの WinUI を WinUI コンポーネントに徐々に置き換えることで、UWP コントロール用の WinUI を使用して UWP アプリを WinUI に段階的に更新できますか?はい — "WinUI アプリ" が推奨される用語です。 WinUI アプリは、UWP の WinUI はアプリの一種ではなく、UWP アプリで使用されるコンポーネントのセットであるため、"WinUI アプリ" と呼ばれます。
UWP アプリを WinUI に移行するのはどのくらい難しいですか?No. Windows App SDKは UWP アプリでは使用できません。また、UWP 用 WinUI を WinUI と混在させる必要はありません。 UWP から Windows App SDK への移行を参照してください。
ストアに既存の UWP アプリがある場合、同じ識別子を使用して新しいパッケージ化された WinUI アプリを発行できますか?UI コンポーネントの移行は一般的に単純です (C# と C++/WinRT の場合)。 それ以外の場合、移行コストは主に次に依存します。
- Project ファイルと MSBuild のカスタマイズ:移行作業は、高度な MSBuild の使用によって異なります。
- .NET API migration: .NET を使用する UWP アプリは、.NET 6 以降に移行する必要があります。 多くの場合、.NET 6 の採用は簡単です。
- UI コンポーネント ライブラリ: ライブラリには、WinUI を対象とするバージョンが必要です。
- UWP アプリが置き換えられる C++/CX で記述されている場合は、ソース コードの移植が必要です。 「C++/CX から C++/WinRT への移行」をご覧ください。
詳細については、「UWP から Windows App SDK への移行をご参照ください。」
はい。アップグレードされたアプリは、アプリケーション ID を更新せずに発行できます。 以前のバージョンのユーザーは、新しいバージョンに更新されます。 これはデスクトップ アプリにのみ適用されます。 Xbox、HoloLens、Surface Hub アプリは WinUI に移行できません。
WinUI アプリをどのようにパッケージ化して配布すればよいですか?
「展開の概要」をご覧ください。
Windows App SDKの移行ガイダンスはどこで見つけられますか?
WinUI を使用する場合は、XAML マークアップを使用する必要がありますか?UWP から Windows App SDK への移行 をご覧ください。
No. UI コントロールは、コードで作成できます。 ただし、宣言型 XAML マークアップで UI を表すには、開発者エクスペリエンスの向上など、多くの利点があります。
- UWP から WinUI への移行: 多くの XAML および UI コンポーネントを再利用できますが、一部の構文調整が必要です。
- WPFから WinUI への移行: 多くの概念が引き継がれ、コントロール セットと API が異なります。
Visual StudioにはWinUIのデザインサーフェース/UIデザイナーがありますか?
まだありません。 これは、WinUI 開発者エクスペリエンスの既知のギャップです。 XAML Hot Reload などのツールは、多くのシナリオで役立ちます。 Windows App SDK 1.7 のWinUIにおけるVisual Studio UIデザイナーの開発は開始されたが、リリースのタイムラインはまだ設定されていない。
Windows App SDK には WinUI が含まれていますか?
Yes. WinUI は、Windows App SDKの一部として出荷されます。
Windows App SDK に UWP 用の WinUI が含まれていますか?
UWP と WinUI の WinUI は同じテクノロジに基づいて構築されていますか?No. UWP 用 WinUI は、UWP プラットフォームの一部です。
そうとも言えません。 WinUI はもともと WinUI for UWP コードベースから始まりましたが、それらは異なるテクノロジです。 どちらも.NETと C++ で動作する XAML ベースの UI フレームワークですが、UWP と WinUI の WinUI は互いに互換性がありません。
Windows App SDKを使用せずに WinUI を使用できますか?
パッケージ化されていないアプリで WinUI を使用できますか?No. WinUI は、Windows App SDKの一部として出荷されます。
XAML Islands と WinUI の違いは何ですか?Yes. WinUI を含む、Windows App SDK内のすべてのテクノロジは、パッケージ化されていないアプリで動作します。
XAML Islands を使用すると、WinForms や WPF などの他のフレームワークから、既存の Win32 UI と共に最新の XAML ベースのコントロールをホストできます。
現在、XAML Islands では、UWP コントロールの ほとんどの システム XAML と WinUI がサポートされています。 詳細については、 デスクトップ アプリ (XAML Islands) での WinRT XAML コントロールのホスト に関するページを参照してください。 WinUI コントロールのホストのサポートは、Windows App SDK 1.4 以降で利用できます。
WinUI アプリを作成した場合、Windows 11とWindows 10の両方で最新の外観になりますか?
Yes. アプリの UI は、パッケージ化されたシナリオとパッケージ化されていないシナリオの両方で、サポートされているすべてのバージョンの Windows 11 および Windows 10 (バージョン 1809 まで) で最新の Fluent UI 設計原則を継承します。
Windows App SDK でビルドされたアプリでマイカまたはアクリルの背景を使用できますか?
WinUI サンプルはどこにありますか?Yes. Windows 11用デスクトップ アプリのApply Mica またはアクリル素材を参照してください。
「サンプルとリソース」を参照してください。 いくつかの注目すべきリポジトリ:
- WindowsAppSDK-Samples: 特定のWindows App SDK API セットを使用する方法を示します。
- Windows トピック固有のサンプル: WinUI アプリの作成 チュートリアルで使用される WinUI ノート サンプルが含まれています。
- WinUI 3 ギャラリー: WinUI とWindows App SDKを紹介します。 Microsoft Store でも入手できます。
既にWPFに多額の投資を行っている場合は、既存のアプリで引き続き使用できます。 WPFは、Windows デスクトップ アプリを構築するために広く使用されている成熟した安定したフレームワークです。
.NET Upgrade Assistant を使用して、.NET Framework WPF アプリを最新の.NET プラットフォームに移行することを検討してください。 コードベースを分析し、更新に関するガイダンスを提供します。
新しいWPFアプリを作った場合、他の新しいWindowsアプリと比べて古く見えませんか?
私のチームは WinForms アプリの構築に慣れているので、ニーズに合っています。WinUI または別のフレームワークへの移行を検討する必要がありますか?.NET 9 以降でWPF アプリケーションを開発する場合、アプリがWindows 11の洗練された最新の外観と一致することを確認できます。 WPF用の新しい Fluent テーマでは、明暗モードとシステム アクセント カラーのサポートが統合された、現代的なWindows 11美学が導入されています。 これにより、アプリの外観が最新化され、洗練されたまとまりのあるユーザー エクスペリエンスが提供されます。
WinForms がニーズを満たし、チームがそれに慣れている場合は、既存のアプリに WinForms を引き続き使用できます。 WinForms は、Windows デスクトップ開発に広く使用されている成熟した安定したフレームワークです。
WinForms チームは引き続きプラットフォームに投資します。 現在の投資分野には次のようなものがあります。
- 一般的なコントロールの非同期サポート
- ダーク モード
- レイアウトの柔軟性
- クリップボードへのアクセスなどのデスクトップ セキュリティ機能
クロスプラットフォーム ネイティブ開発
Windows を対象とするクロスプラットフォームのネイティブ アプリを構築する理由は何ですか?複数の OS プラットフォーム間でユーザーを対象としている場合は、.NET MAUI または React Native を使用してクロスプラットフォーム アプリを構築すると、次のような利点があります。
- 達する: クロスプラットフォーム アプリは、さまざまなデバイスやオペレーティング システムで、より多くのユーザーにリーチします。
- コードの再利用: プラットフォーム間でコードを再利用すると、開発時間とコストが削減されます。 Windows、Android、iOS、macOS 用に個別のアプリをビルドすると、非常にコストがかかる場合があります。
- 一貫したユーザー エクスペリエンス: クロスプラットフォーム フレームワークは、プラットフォーム間で一貫した外観を提供するのに役立ちます。
- 統合: クロスプラットフォーム アプリは、引き続きプラットフォーム固有のサービスと統合して、包括的なエクスペリエンスを提供できます。
.NET MAUI アプリが Windows で適切に動作することを確信できますか?
windows 用の
.NET MAUI アプリをビルドすると、出力は WinUI アプリになります。 開発中、.NET MAUI はプラットフォーム間で 1 つの.NETエクスペリエンスを提供しますが、内部でプラットフォーム固有のコードを生成します。 これにより、.NET MAUI アプリが各プラットフォームで適切に動作し、ネイティブユーザー エクスペリエンスを提供できるようになります。
MAUI を.NETして、すべてのプラットフォームでネイティブ デバイス API を提供するにはどうすればよいですか?
.NET MAUI は、Windows、iOS、Android、macOS 全体で統一された.NETエクスペリエンスを提供します。 60 以上のプラットフォーム固有の API を 1 つのクロスプラットフォーム API セットに抽象化し、storage、ネットワーク、デバイス センサーなどの領域をカバーします。 依存関係の挿入を使用して、プラットフォーム固有の追加 API にアクセスして、プラットフォームごとに特殊な実装を提供することもできます。
WinUI から始めて、最終的にクロスプラットフォーム シナリオをターゲットにする場合は、後で.NET MAUI を統合できますか?
私たちのチームは、強力なWebフロントエンド開発スキルを持っています。React Native for Desktop の使用を検討する必要がありますか?現時点ではできません。 .NET MAUI は Windows で実行するときに WinUI を使用しますが、複数のプラットフォームをターゲットにすることを期待しているチームは、.NET MAUI または React Native for Desktop から始める必要があります。
React Native for Desktop でサポートされているその他の Windows デバイスはありますか?強力な Web 開発エクスペリエンスを持つチームは、デスクトップ向けの React Native を検討する必要がある場合があります。 Windows および macOS 用の React Native が含まれます。 "Learn once, write anywhere" アプローチを使用すると、既存の JavaScript、TypeScript、React スキルを使用して、ネイティブの Windows アプリと macOS アプリを構築できます。
React Native for Desktop では、UI がネイティブ プリミティブに直接レンダリングされ、ネイティブのパフォーマンスとプラットフォームの機能が提供されます。
React Native for Desktopのドキュメントを参照して、始めるための手順を確認してください。
Windows と Xbox で動作するアプリをビルドする場合は、何を使用する必要がありますか?React Native アプリは、PC、タブレット、2-in-1、Xbox、mixed reality デバイスなど、Windows 10 以降でサポートされているすべてのデバイスに展開できます。
アプリで Xbox、HoloLens、または IoT をサポートする必要がある場合は、UWP をお勧めします。 Windows App SDKはこれらのプラットフォームをサポートしていません。 ゲーム開発には、Microsoft Game Development Kit を使用します。
Windows および Surface Hub で動作するアプリをビルドする場合、何を使うべきですか?
Windows と Surface Hub の両方を対象としている場合は、UWP をお勧めします。
ハイブリッドおよび Web 開発
ハイブリッド アプリとは何ですか。また、その構築を検討する必要がある理由は何ですか?どのようにしてWindowsでネイティブのようなプログレッシブWebアプリ(PWA)を構築できますか?ハイブリッド アプリは、最高の Web アプリとネイティブ アプリ開発を組み合わせたアプリです。 コアは HTML、CSS、JavaScript などの Web テクノロジを使用して構築され、特定のネイティブ プラットフォーム機能とハードウェアにaccessを提供するネイティブ コンテナーにラップされています。 アプリ ストアを通じて配布することもできます。
主な利点は、ハイブリッド アプリを使用すると、複数のネイティブ プラットフォームと Web 上で実行できる 1 つのアプリを構築できるため、開発時間とコストを削減できることです。 ハイブリッド アプリ開発プラットフォームの例を次に示します。
- デスクトップ アプリ用 Electron
- モバイル アプリ用の Ionic
- クロスプラットフォーム アプリ用の .NET MAUI Blazor ハイブリッド
「
Windows での Web 開発 およびプログレッシブ Web Apps 。
.NET MAUI Blazor ハイブリッド アプリとは?
.NET MAUI を使用すると、Blazor アプリは Windows、iOS、Android、macOS でネイティブに実行できます。 これにより、Blazor コンポーネントと .NET MAUI コンポーネントを 1 つのネイティブ クライアント アプリに組み合わせたハイブリッド クライアント アプリを作成し、ネイティブ プラットフォームの完全なaccess機能を使用できます。
詳細については、ASP.NET Core Blazor Hybrid を参照してください。
Blazor で.NET MAUI ハイブリッド アプリの Web コンポーネントを作成する必要がありますか?
他のネイティブ アプリの種類は Blazor ハイブリッド コンポーネントをホストできますか?No. .NET 9 以降、.NET MAUI には、ネイティブ アプリ内で他の JavaScript ベースの UI をホストできる HybridWebView コントロールが含まれています。
これにより、Angular、React、Vue、またはその他の HTML/JavaScript アプリを .NET MAUI アプリ内でホストできます。 ハイブリッド コントロールは C# と JavaScript の間の相互運用機能を提供するため、C# コードは JavaScript 関数を呼び出すことができます。その逆も同様です。
アプリ全体をハイブリッド アプリにする必要があるか、ネイティブ コンポーネントとハイブリッド コンポーネントを混在させ、一致させるか。Yes. WPFアプリと WinForms アプリでは Blazor ハイブリッド コンポーネントをホストすることもできます。これにより、既存のアプリに最新の Web UI を追加できます。 これは、.NET Framework 上に構築されたWPFまたは WinForms アプリではサポートされていません。
ネイティブ コンポーネントとハイブリッド コンポーネントは、アプリ内で混在させることができます。 たとえば、アプリのコアは.NET MAUI コンポーネントを使用して構築できますが、ハイブリッド コンポーネントは追加の機能を提供します。 これにより、ネイティブ コンポーネントのパフォーマンスと機能と、ハイブリッド コンポーネントの柔軟性とコスト効率を組み合わせることが可能になります。
Windows の最新のブラウザーで見栄えの良い.NETベースのweb appsを構築するための選択肢は何ですか?
Web appsは、クライアント アプリ プラットフォームの幅広い範囲を提供します。 美しい.NET web appsを作成するためのオプションは次のとおりです。
- Razor Pages を使用した ASP.NET Core アプリ
- ASP.NET CORE MVC アプリ
- ASP.NET Core Blazor アプリは、ホスティング モデルのオプションがあります。
- Blazor WebAssembly(ブレイザー ウェブアセンブリ)
- Blazor Server
Blazor ホスティング モデルをコンポーネント レベルで構成できるようになりました。これにより、Blazor Server アプリ内で Blazor WebAssembly コンポーネントをホストするなどのシナリオが可能になります。
詳細については、ASP.NET Core ドキュメントを参照してください。
アプローチを選択し、Microsoft の投資を理解する
Windows を対象とするアプリを構築するためのフレームワーク オプションは非常に多く存在します。どのように決めればよいでしょうか?
Windows は、多くのテクノロジをサポートするオープン プラットフォームです。 プラットフォームの選択に役立ついくつかの条件を次に示します。
- Windows ファーストまたはクロスプラットフォームを構築していますか?
- 既に習得している言語やスキルは何ですか――.NET、JavaScript、または他の何か?
- Windows 固有の API にaccessが必要ですか?
- アプリの要件に最も適したフレームワークの機能はどれですか?
- その他の比較要因については、 次の表 を参照してください。
多くのビジネス アプリでは、多くの場合、チームは既存のスキルと、チームが最も使い慣れているものに基づいて選択します。
どのようにしてウェブアプリの最適な開発方法を選べばよいですか?
現在、WinUI を使用してアプリを構築するのは誰ですか?Web アプリの開発アプローチを選択するときは、次の点を考慮してください。
- blazor は、.NETを使用してフロントエンド web appsを構築する場合に推奨されます。 .NETを使用してフロントエンドとバックエンドの両方を構築できるため、時間とコストを節約でき、エンタープライズ アプリに特に適しています。
- JavaScript web apps、既存の JavaScript スキルを活用したい場合や、確立された JS ライブラリやフレームワークと統合する必要がある場合は、依然として意味があります。
- Web フォーム、MVC、Razor Pages などの古いフレームワークを使用する既存のアプリは引き続きサポートされ、引き続き開発および保守できます。
現在、Adobe や Apple など、多くのお客様が WinUI を使用して構築しています。
- Adobe Fresco、無料の描画と絵画アプリ。
- Apple の Apple Music、Apple TV、Apple Devices アプリは、WinUI とWindows App SDKで構築されました。
Microsoft は、Windows 11 File Explorerやフォト アプリなど、多くの WinUI アプリも構築しています。
現在、誰が.NET MAUIアプリを構築していますか?
Microsoft を含む多くのお客様は、.NET MAUI を使用してクロスプラットフォーム アプリを構築しています。 たとえば、Microsoft Azure モバイル アプリは、.NET MAUI を使用して構築されます。
詳しくは、.NETカスタマー ショーケースをご覧ください。
現在WPFアプリをビルドしていますか?
現在 Blazor アプリを構築しているのは誰ですか?Microsoft Visual Studio UI のほとんどは、WPFを使用して構築されています。 Visual Studio IDE 自体は、複雑で高性能なWPF アプリの主要な例です。
GE DigitalのFlightPulse航空会社システムは、パイロットが見るすべてのバックエンド構成に Blazor を使用し、センサー データと分析をパイロットに直接取り込み、安全性と効率を向上させます。
.NETサイトBlazor の顧客事例を参照してください。
パッケージ化、展開、更新
外部の場所でパッケージ化、パッケージ化解除、パッケージ化されるアプリの違いは何ですか?WinUI アプリはエンド ユーザー向けに自動的に更新されますか?パッケージ化されたアプリ、パッケージ化されていないアプリ、外部ロケーション付きのパッケージ化されたアプリの定義については、「展開の概要」を参照してください。 このトピックでは、各方法の長所と短所も説明されています。
WinUI アプリは、ストア、.appinstaller ファイル、または既存の MSI または setup.exe パッケージを通じて配信できます。 Store と AppInstaller では、自動更新が有効になっているエンドユーザー向けの自動更新がサポートされていますが、MSI/setup.exe アプリは独自の更新メカニズムを提供する必要があります。
MSBuild を使用せずにWindows App SDKを使用できますか?
一般に、いいえ。 WinUI とWindows App SDKには MSBuild が必要であるため、Visual Studio はそれらを使用して開発するための前提条件です。 技術的には、他のツールチェーンで WinUI を使用しないWindows App SDKアプリをビルドすることは可能ですが、これはサポートされていません。
パフォーマンスと最適化
Windows appをエンドユーザーに優しく感じさせるために何ができますか?
Windows アプリケーション開発のベスト プラクティスとWindows appパフォーマンスと基礎の概要を参照してください。
Compatibility
ユーザーは WinUI アプリを使用するために Windows を更新する必要がありますか?WinUI アプリで Arm64 をターゲットにすることはできますか?Windows 10バージョン 1809 以降のユーザーは、OS を更新せずに WinUI アプリをインストールできます。
Yes.
非推奨と移行
UWP/WinUI for UWP は非推奨ですか?UWP アプリ用の UWP/WinUI を WinUI に移行するタイミングNo. UWP 用の UWP と WinUI は引き続きサポートされており、バグ、信頼性、セキュリティの修正プログラムを引き続き受け取ります。 ただし、ほとんどの新機能は WinUI に追加されます。
.NET 9 の UWP サポートを利用できます。 このオプションは、最新の.NET バージョンを使用する UWP アプリの最新化パスを提供します。
.NET 9 UWP サポートの目標は次のとおりです。
- WinUI に移行する開発者向けに、より適切な移行パスを提供します。
- 開発者が最新の.NETおよび C# 機能を利用できるように、.NET Native への依存関係を削除します。
詳細については、ブログ記事「
.NET 9 とネイティブ AOT を参照してください。
いつ UWP + WinUI for UWP アプリを WinUI に移行しないべきですか?UWP 開発者は、UWP とその機能セットに満足している場合、移行の圧力を感じるべきではありません。多くのアプリでは、UWP を使用し続けるのが適切な選択肢である可能性があります。
最新の Windows プラットフォームと.NET投資の恩恵を受けたいアプリは、Windows App SDKに移行することを検討する必要があります。 UWP から Windows App SDK への移行を参照してください。
Xbox、Surface Hub、または HoloLens 用にビルドしている場合は、引き続き UWP を使用します。
WPFは非推奨になりましたか?
WinForms は非推奨ですか?No. WPFがサポートされ、推奨され、機能更新プログラムの受信が継続されます。 GitHubの
WPFロードマップを参照してください。
No. WinForms はサポートされており、引き続き機能更新プログラムを受け取ります。 GitHubの
Windows Formsロードマップを参照してください。
Windows Runtime (WinRT) は非推奨ですか?
No. WinRT は、複数の言語間の相互運用を可能にするアプリケーション バイナリ インターフェイス (ABI) です。 WinRT は COM の進化であり、Windows App SDKは WinRT API を通じてほとんどの機能を提供します。
リリース ノート
Windows App SDKのリリース ノートはどこで入手できますか?
最新のリリース ノートは、 新機能 ページで確認できます。
関連コンテンツ
- Windows 開発者向け用語集
- アプリ開発オプションの概要
Windows developer