[解決済み] WindowsのGUI。WPFまたはWinRT(2015年以降)
質問
私は、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 よりも良い選択ですが、どちらもゲーム向けではありません。
関連
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] Windows 8のMetroアプリは、同じマシン上のバックエンドデスクトップアプリとどのように通信することができますか?
-
[解決済み] WindowsフォームからWPFへの移行
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] Windows 8 ランタイム(WinRT / Windowsストアアプリ / Windows 10 ユニバーサルアプリ)とSilverlightやWPFの比較はどうですか?[クローズド]