Windows 開発オプションの概要

この記事では、Windows デスクトップ環境用のアプリの作成を開始するために必要な情報を提供します。

Developer at desk

Windows には、C++.NET、その他の新しいテクノロジ (WSL 上のオープンソース ツールRust) など、アプリを構築するためのさまざまなオプションが用意されています。 選択肢が非常に多いので、どこから手を付ければよいか迷う場合があります。

言語とフレームワーク

Windows 用の多くのアプリは、 UWPWPF、または Windows フォーム 使用して記述されており、これらはいずれも現在でも実行可能なツールです。 どれを使用すべきかの概要については、「Windows アプリの開発 - オプションと機能」を参照してください。

Windows でのみ実行されるアプリの場合は、Windows App SDKWinUI 3 を調査することもできます。 アプリをクロスプラットフォームにする必要がある場合は、.NET MAUIプログレッシブ Web アプリ (PWA)、または Windows 用 React Native を検討してください。 他にも多くの選択肢がありますが (人気のあるオプションの一覧はこちら)、上記はいくつかの良い出発点です。

Windows プラットフォーム

選択できるアプリの種類について詳しくは、次の各タブをご覧ください。

Windows UI ライブラリ (WinUI) 3 は、C# と .NET を使用するマネージド アプリや、C++ と Win32 API を使用するネイティブ アプリなど、Windows デスクトップ アプリに対応した最新のユーザー インターフェイス (UI) フレームワークです。 これはまだ非常に活発な開発の最中のため、すべてのニーズを今日満たすことができないかもしれませんが、リリースごとに成熟しています。

WinUI は、すべてのエクスペリエンス、コントロール、およびスタイルに Fluent Design システムを採用することにより、最新の UI パターンを使用した、一貫性のある直感的でアクセスしやすいエクスペリエンスを提供します。 WinUI 3 は、Windows App SDK の一部として使用できます。 Windows App SDK によって提供される API とツールの統合セットは、対象の幅広い Windows OS バージョン上のどの C++ Win32 アプリや C# .NET アプリからでも一貫した方法で使用できます。

必要な開発者ツールを既にインストールしている場合は、最初の WinUI 3 プロジェクトを作成する準備ができています。

クロスプラットフォーム オプション

WinUI は、さまざまなコーディング言語を使用して優れたネイティブ Windows エクスペリエンスを提供するクロスプラットフォーム テクノロジの基礎としても機能します。 .NET MAUI と Windows 用 React Native は、Windows での WinUI の機能を利用しながら、他のオペレーティング システムでの実行も可能にします。 もう 1 つのクロスプラットフォーム オプションであるプログレッシブ Web アプリ (PWA) は、Windows や他のサポートされているプラットフォームではインストールされたネイティブ アプリと同じように機能しながら、ブラウザーでは通常の Web サイトと同様に機能する Web サイトです。

.NET Multi-platform App UI (MAUI) は、単一の .NET コード ベースから各プラットフォームのネイティブ UI とサービスを活用する、Android、iOS、macOS、Windows アプリケーションを構築するための、オープンソースのクロスプラットフォーム フレームワークです。 .NET MAUI では、プラットフォーム ネイティブなエクスペリエンスが好まれるため、アプリで Windows 上での最新のユーザー エクスペリエンスが得られるように、WinUI3 と Windows App SDK を使用します。 これにより、WinUI 3 から提供されるすべてのものに対するアクセスのほか、他のプラットフォームにリーチする機能をアプリに提供します。

Windows 用の .NET MAUI は、次の場合に適しています。

  • モバイル アプリケーションやデスクトップ アプリケーション間で可能な限り .NET コードを共有する必要がある。
  • Windows を超えてネイティブ プラットフォームのエクスペリエンスが使用される他のデスクトップやモバイルのターゲットにアプリケーションを公開する必要がある。
  • クロスプラットフォーム アプリの構築に C# や XAML を使用する必要がある。
  • Web 開発に Blazor を使用しており、そのすべてまたは一部をモバイル アプリケーションやデスクトップ アプリケーションに含めたいと考えている。

.NET MAUI の詳細については、次のリンクを参照してください。