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