デスクトップ アプリの現代化

Windows 11 と Windows 10 に用意された多数の機能を使用して、デスクトップ アプリでモダンなエクスペリエンスを実現できます。 これらのほとんどの機能は、独自のペースでデスクトップ アプリに採用できるモジュラー コンポーネントとして利用できます。別のプラットフォーム用にアプリケーションを書き換える必要がありません。 既存のデスクトップ アプリを拡張するには、どの Windows 機能を採用するかを選択します。

このトピックでは、今すぐデスクトップ アプリで使用できる機能について説明します。 既存のアプリを現代化してこのトピックで説明されている多くの機能を使用する方法を説明したチュートリアルについては、「WPF アプリの現代化」チュートリアルをご覧ください。

Note

デスクトップ アプリを Windows 10 以降に移行するのにサポートが必要な場合 App Assure サービスでは、自身のアプリを Windows 10 以降のバージョンに移植する開発者に直接無償のサポートが提供されます。 このプログラムは、すべての ISV と条件に適合する企業が使用できます。 適格性とプログラム自体の詳細については、/fasttrack/win-10-app-assure-assistance-offered をご覧ください。 すぐに開始するには、リクエストを送信してください。

Windows 11 機能の適用

Windows 11 は、Windows オペレーティング システムを視覚的に進化させたもので、アプリの実行基盤とユーザー エクスペリエンスを向上させる新機能が導入されています。 これらの機能の多くは、アプリに対して既定で有効になりますが、デスクトップ アプリでは、一部の新機能と統合するために更新が必要になる場合があります。 これらの機能には、トップレベル ウィンドウの丸い角、スナップ レイアウト、エクスプローラーの更新されたコンテキスト メニューなどが含まれます。

詳しくは、「Windows 11 でアプリをすぐれたものにするためにできることトップ 11」をご覧ください。

Windows App SDK

Windows App SDK は、Windows アプリ開発プラットフォームの次世代の新しい開発者向けコンポーネントとツールのセットです。 Windows App SDK によって提供される API とツールの統合セットは、Windows 11 と Windows 10 の多くのバージョンのどのデスクトップ アプリからでも、一貫した方法で使用できます。 プロジェクト テンプレートを使用して、Windows App SDK と WinUI 3 ベースの UI を使用する新しいデスクトップ アプリを作成したり、既存のデスクトップ アプリで Windows App SDK を使用したりできます。

詳細については、「Windows App SDK」を参照してください。

Windows UI ライブラリ

Windows UI ライブラリ (WinUI) は、Windows デスクトップと UWP の両方のアプリケーションに対応したネイティブ ユーザー エクスペリエンス フレームワークです。 WinUI は、ダウンレベル バージョンの Windows を対象とする UWP アプリ用の WinRT XAML コントロールの新しいバージョンと更新バージョンを提供するツールキットとして開始されました。 最新バージョンの WinUI 3 は、スコープが拡張され、Windows デスクトップ アプリ用の最新のネイティブ UI プラットフォームになりました。

デスクトップ アプリでは、次の方法で WinUI を使用できます。

  • WinUI 3 を使用して、完全に WinUI 3 ベースのユーザー インターフェイスでデスクトップアプリを作成します (「最初の WinUI 3 プロジェクトを作成する」を参照してください)。 WinUI 3 は、Windows App SDK によって提供される多くの機能の 1 つです。
  • XAML Islands を使用して WPF、Windows フォーム、および C++ デスクトップ (Win32) の既存のアプリを更新したり、WinUI 2 コントロールをホストしたりできます。

詳細については、「Windows UI (WinUI) ライブラリ」を参照してください。

Windows ランタイム API

多くの Windows ランタイム API を WPF、Windows フォーム、または C++ デスクトップ アプリで直接呼び出して、ユーザーの利便性を高めるモダン エクスペリエンスを統合できます。 たとえば、Windows ランタイム API を呼び出して、トースト通知をデスクトップ アプリに追加できます。

詳しくは、デスクトップ アプリでの Windows ランタイム API の使用に関する記事をご覧ください。

MSIX の展開

MSIX は、UWP、WPF、Windows フォーム、Win32 アプリを含む、あらゆる Windows アプリ用のユニバーサル パッケージ化エクスペリエンスを提供するモダンな Windows アプリ パッケージ形式です。 MSIX は、MSI、.appx、App-V、ClickOnce インストール テクノロジの優れた部分を組み合わせたもので、最新で信頼性の高いパッケージ化エクスペリエンスを提供します。

MSIX パッケージにデスクトップ Windows アプリをパッケージ化することで、堅牢なインストール、更新エクスペリエンス、柔軟な機能システムによる管理されたセキュリティ モデル、Microsoft Store のサポート、エンタープライズ管理、および多くのカスタム配布モデルにアクセスできます。

詳細については、「コードからの MSIX パッケージの構築」を参照してください。

実行時に動的に MSIX フレームワーク パッケージを使用する

Windows App SDK と Windows 11 OS の "動的依存関係" 機能を使用すると、アプリで実行時に MSIX フレームワーク パッケージを参照できます。 この機能は、主として、MSIX フレームワーク パッケージによって提供される API を呼び出すために、パッケージ化されていないデスクトップ アプリで使用されます。

詳細については、「デスクトップ アプリから MSIX フレームワーク パッケージを動的に使用する」を参照してください。

.NET

.NET (以前の .NET Core) では、Windows App SDK で作成された WinUI 3 アプリを含む Windows デスクトップ アプリ (「最初の WinUI 3 プロジェクトを作成する」を参照してください) をサポートしています。 また、.NET では、Windows Presentation Foundation (WPF)Windows フォーム (WinForms) アプリもサポートしています。 .NET で新規および既存の Windows デスクトップ アプリを実行し、.NET で提供されるすべての特典を利用することができます。

詳しくは、「.NET 6 の新機能」をご覧ください。

WinRT XAML コントロールのホスト (XAML Islands)

Windows 10 バージョン 1903 以降では、ウィンドウ ハンドル (HWND) に関連付けられた WPF、Windows フォーム、または C++ デスクトップ アプリ内の任意の UI 要素に直接 UWP XAML コントロールを追加できます。 つまり、Windows InkFluent Design System をサポートするコントロールなど最新の UWP 機能を、デスクトップ アプリのウィンドウやその他のディスプレイ サーフェスに完全に統合できます。 この開発者シナリオは "XAML Islands" とも呼ばれます。

詳細については、デスクトップ アプリでの WinRT XAML コントロールをご覧ください

デスクトップ アプリでのビジュアル レイヤーの使用

UWP 以外のデスクトップ アプリで Windows ランタイム API を使用して WPF、Windows フォーム、C++ デスクトップ アプリの外観や機能を高めたり、UWP でのみ利用可能な最新の Windows UI 機能を活用したりできるようになりました。 これは、XAML Islands を使用してホストできる組み込みの WinRT XAML コントロールだけにとどまらないカスタム エクスペリエンスを作成する必要がある場合に便利です。

詳しくは、「Modernize your desktop app using the Visual layer (ビジュアル レイヤーを使用したデスクトップ アプリの現代化)」をご覧ください。

パッケージ ID を持つアプリで利用できる追加機能

一部の最新の Windows エクスペリエンスは、実行時にパッケージ ID を持つデスクトップ アプリでのみ利用可能です。 これらの機能には、特定の Windows ランタイム API、パッケージ拡張機能、UWP コンポーネントなどがあります。 詳しくは、「パッケージ ID が必要な機能」を参照してください。

デスクトップ アプリ用に最適化された WinRT XAML コントロール

デスクトップ デバイス ファミリを排他的にターゲットとする UWP アプリを構築する場合でも、WPF、Windows フォーム、または C++ デスクトップ アプリで WinRT XAML コントロールを使用する場合でも、次の新しい、更新された WinRT XAML コントロールは Fluent Design System を使用してデスクトップ最適化されたエクスペリエンスを提供するように設計されています。 これらのコントロールは、Windows 10、バージョン 1809 (October 2018 Update、またはバージョン 10.0.17763) で導入されました。

Control 説明
MenuBar CommandBar で許容されるよりも多くの組織またはグループ化が必要になる可能性があるアプリ用のコマンド セットをすばやく簡単に公開できます。
DropDownButton その他のオプションを含むアタッチされたポップアップのある視覚インジケータとして山かっこを示します。
SplitButton 個別に呼び出せる 2 つのパーツを持つボタンを指定します。 1 つのパーツは標準のボタンのように動作し、即座にアクションを呼び出します。 もう一方のパーツは、ユーザーが選択できる追加オプションを含むポップアップを呼び出します。
ToggleSplitButton 個別に呼び出せる 2 つのパーツを持つボタンを指定します。 1 つのパーツは、オンまたはオフにできるトグル ボタンのように動作します。 もう一方のパーツは、ユーザーが選択できる追加オプションを含むポップアップを呼び出します。
CommandBarFlyout UI キャンバス上の項目のコンテキストで一般的なユーザー タスクを示すことができます。
ComboBox コンボ ボックスを、ユーザーがコントロール内に一覧表示されていない値を入力できるように、編集可能にできるようになりました。
TreeView データ バインディング、項目テンプレート、ドラッグ アンド ドロップを有効にするようにツリー ビューを構成できるようになりました。
DataGridView 行と列に柔軟にデータ コレクションを表示できます。 このコントロールは、Windows コミュニティ ツールキットで入手できます。

モダン デスクトップ アプリ向けのその他のテクノロジ

Microsoft Graph

Microsoft Graph は、数百万に及ぶユーザーのデータとやり取りする組織やコンシューマーがアプリの構築に使用できる API のコレクションです。 Microsoft Graph では、次のデータにアクセスするための REST API とクライアント ライブラリが公開されます。

  • Azure Active Directory
  • Microsoft 365 Office アプリ:SharePoint、OneDrive、Outlook/Exchange、Microsoft Teams、OneNote、Planner、Excel
  • Enterprise Mobility および Security サービス:Identity Manager、Intune、Advanced Threat Analytics、Advanced Threat Protection
  • Windows サービス: アクティビティとデバイス

詳細については、Microsoft Graph のドキュメントをご覧ください。

アダプティブ カード

アダプティブ カードは、オープンなクロスプラットフォーム フレームワークで、これにより、さまざまなデバイスやプラットフォーム間で一貫性のある共通の方法によりカードベースの UI コンテンツを交換できます。

詳しくは、アダプティブ カードのドキュメントをご覧ください。