1. ホーム
  2. c#

[解決済み] WindowsのGUI。WPFまたはWinRT(2015年以降)

2023-02-10 18:34:09

質問

私は、Windows の世界で GUI を構築する際に使用するさまざまな技術の概要を得ようとしています。 Windows の世界で GUI を構築する際に使用するさまざまな技術の概要を把握しようとしています。

文脈のために、私は小さな2Dプラットフォームマルチプレイヤーゲームを構築しています。 (単に学習目的のために...)

私の先生は、WPFが正しい方法だと思うと言っています。 しかし、彼は Windows Forms としか比較していないようです。

私の理解では、ここ2015年では、Windows Formsは完全に死んでいるのでしょうか?

この他の質問では、WinRT+XAMLはMetro GUI構築(Window 8タイルのこと!)用で、WPFはWindow 7/8のデスクトップにのみ使われるもので、Silverlightに近いものらしいのですが...。

Windows 8 ランタイム (WinRT / Windows ストア アプリ / Windows 10 ユニバーサル アプリ) は Silverlight や WPF と比べてどうなのでしょうか?

  • デスクトップは古いアプリが住んでいる場所です (赤色。WFP)。
  • 新しいクラスのアプリケーションである Metro アプリは、さまざまな方法で構築することができます。 VB.NET、C#、または C++ などによって構築できます。これら 3 つの言語オプションでは UI を構築するために XAML を使用します。もう一つの方法は、以下を使用することです。 UIとアプリケーションコードの両方を開発するためにJavaScript/HTML5/CSSを使用することもできます。 アプリケーションコードの両方を開発することです。

私の本当の疑問は Window World で GUI を構築する良い方法は 1 つもないのでしょうか?

もしそうでないなら、Window 7、Window 8 (Desktop and Metro)、Window Phone、(そして Windows 10!)、さらには x-box でどの技術を使用すべきでしょうか?

このように比較されるのは、異なるテクノロジーに対してでしょうか?

時間をかけるべきは何だと思いますか?

どのように解決するのですか?

たくさんありますが、ここで紹介します。

  • Windows フォーム (Winforms) であるか は死んだ ? いいえ、まだ活発にサポートされています。とはいえ、その 恐ろしい テクノロジーです (少なくとも、WPF のマジックを知っていれば)。
  • もしあなたが、見た目が良く、デザインの良い デスクトップ (Metro ではなくクラシック) アプリを構築したい場合、WPF は純粋な .NET の観点からの答えです。あなたは WinRT API (ソケット クラスなど) を使用できますが、Windows 8 より前の OS では実行できません。UI は WPF のままです。
  • WinRT アプリは Windows 8 ストア向けです (Windows 10 ストアでも提供されています)。ここでは WPF を使用できませんし、デスクトップでは WinRT を使用できないので、どこにデプロイするかによって何を使用するかが決まります。使用できる言語/技術についての理解は正しいです。
  • Windows Phone 8 (現在は非推奨) は WinRT の修正ランタイムを使用しています (これは Windows 10 で変更されました)。Win8/WP8 では、"Universal" のアプリを使用して、共有することができます。 最も を共有することができます。
  • Windows 10 は、WinRT をベースとするユニバーサル Windows プラットフォーム (UWP) を使用しています。Windows 10 用に開発されたコードは、Xbox One、Windows 10 Mobile、および HoloLens で使用することも可能です。WPF は依然として標準的なデスクトップ アプリ用です。
  • Xbox は厄介です。XNA はなくなり、Microsoft はこのプラットフォームのためにコミュニティが作成したコンテンツから遠ざかっているようです。とはいえ、Unity3D は Xbox にデプロイできますし、標準的な DirectX (C++) 開発はうまくいくと思います。ユニバーサル Windows プラットフォーム アプリも Xbox One にデプロイできますし、これは Microsoft の今後の戦略であるように思われます。
  • 2021 年現在、WinUI 3 は新しい UI フレームワークで、UWP の UI フレームワークを "デスクトップ" アプリに導入しています。この技術により、Windows 10 および 11 にデプロイすることができます。既存のXAML UWPアプリは、一般的に新しい名前空間に変更することで、簡単にWinUI 3に移植することができます。今日、アプリケーションを始めるなら、私はこのルートを真剣に検討します。これはWindows App SDKの一部です。

何に時間を使うかについては、あなたが何をターゲットにしているかによります :) 。WPF/UWP + XAML を学ぶことは、.NET GUI 開発で最新の状態を維持したいのであれば、多くの利点をもたらしますので、私ならそれを目指します。WPFは最も多くの機能を持っているので、そこから始めることで、UWP(または他のXAMLベースの技術)で欠けているものの回避策を見つける必要があります。

その際は、MVVM(Model-View-View Model)パターンを必ず習得してください。その仕組みは 本当に XAMLベースの技術でうまく機能し、WPFとUWPアプリケーションの間で多くのロジックを共有することができるようになります。また、最終的に iOS/Android などの Xamarin アプリケーションを開発する場合にも、同じロジックを使用することができます。

のために true のゲーム開発では 実際の ゲーム フレームワーク (Unity3D や XNA など) が必要です。WPF で開発することは可能で、Winforms よりも良い選択ですが、どちらもゲーム向けではありません。