web-dev-qa-db-ja.com

GUIを開始する場合、どのプラットフォームを使用するかをどのように決定すればよいですか?

WPF、Silverlightについて聞いたことがありますが、現時点ではWindows RT、Metroのもの、Windows 8などもあります-何を賭けているのかわかりません。

ある時点で、いくらか将来を見越したGUIを実行するのに最適なプラットフォームを見つけるにはどうすればよいですか?

6
svrist

Microsoftの現在の傾向を見ると、UIを特定のフレームワークにきつく締めると、UIの将来性を保証できなくなります。 applicationを将来性のあるものにするためにいくつかの抽象化が必要であり、そのための優れたデザインパターンがあります( を参照してください)モデルビュー-Presenter および Model-View-ViewModel )。

外観を厳密に制御する必要がない場合は、 wxWidgets[〜#〜] qt [〜のような一般的なUIフレームワークを使用できます。 #〜] および [〜#〜] swt [〜#〜] またはUIフレームワークへの過度のバインドを回避するのに役立つフレームワーク、 Caliburn Micro

4
wigy

ある時点で、いくらか将来を見越したGUIを実行するのに最適なプラットフォームを見つけるにはどうすればよいですか?

INMO、これは望ましい目標ですが、現実的でも明確でもありません。

実際には「将来」の部分を定量化する必要があるため、明確に定義されていません。 GUIテクノロジーは変更が最も速く、その変更は根本的なものであると歴史が示しているため、これは現実的ではありません。

質問に戻りますが、これが実際のアプリケーションでなぜ重要なのかを理解する必要があります。ご覧のとおり、古いテクノロジでさえ突然突然落とされ、長い間生きているわけではありません。コントロールベンダーは、WindowsフォームアプリケーションのGUIコンポーネントのアップグレードを提供しています。 Windowsフォームを使用して、タッチベースのアプリケーションを今すぐ開発できます。ネイティブのすぐに使える新しいSilverlightではおそらくできないことです!

私が最初に行うことは、予想されるユーザー環境を決定することです。次に、アプリケーションを実行する必要があるデバイスの種類(アプレット、モバイル、Web、デスクトップなど)を特定し、サポートする言語とツールを確認します。

WPFとSilverlightは引き続き機能しますが、改善の余地はありません。 XAMLは、何らかの形でWindows 8の世界で使用されます。 Silverlightパスに沿って考える場合は、 MS-Silverlight のシステム要件マトリックスを確認してください。

GUIに依存しないアプリケーションの開発は、少なくとも多くの商用ビジネスアプリケーションにとって現実的ではありません。余分な複雑さを正当化するのは非常に困難です。ビジネスの人々が時々見つける傾向があるのは、テクノロジーが、一部のアプリケーションが構築されているビジネスモデルよりも長生きするということです。 (私が別の銀行が私たちがプロジェクトを行ったものを買収したので3ヶ月だけ生き残った大きな銀行のために私たちが行ったプロジェクトを覚えています:))。

Webの方向に向かっている場合は、サードパーティのコントロールを備えたHTML 5とJavaScriptを検討することをお勧めします。最近進化している良いものがあります。

幸運を。

2
NoChance

すべての答えの答え:状況によって異なります

アプリケーションを開発するときは、いくつかの決定を行う必要があります。

  • それはWebアプリケーションである必要がありますか? (aspxなど)
  • デスクトップアプリである必要がありますか?
  • ユーザーはどのシステムを使用しますか?

等pp。

この時点で、抽象化について考えることができます。純粋なロジックをさまざまなアセンブリにカプセル化し、UIレイヤーのみを最上位に構築します。このようにして、さまざまなUI戦略を使用できます。

しかし真剣に:Windows 8向けに開発する場合は、.NET 4.5とWindows RTがXP、7、サーバーなどで実行可能な.NET 4.0と多少の違いがあることを確認してください。 。したがって、開発するUIは、あなたとあなたの顧客次第です。

1
Smokefoot

考慮する必要のある側面が多すぎます。顧客のニーズ、システムで必要な権限、アプリに付与したいUXの感触など。

  1. Metroアプリはタッチに最適であり、フルスクリーンのシングルアプリケーションユーザーエクスペリエンスに最適です。 Metroアプリを実行する正当な理由はいくつかあります。

    • 2Dゲームのような BabySmash
    • 基本的なシングルタブのWebブラウザーは、主に1つまたはいくつかのWebサイトにアクセスするために使用されます(電子メールを読んでFacebookに移動します)または単一のWebサイト(キオスクモード)
    • キオスクアプリ
    • 非常に専門的な従業員向けの非常に技術的で専門的なアプリ。たとえば、マルチタッチMetroアプリは、システムモニタリングに最適で、グラフを拡大したり、サムネイルをタップして、より詳細な視覚化に切り替えたりできます。注この場合、マシンは監視のみを目的としているため、アプリケーションは常にオンのままです。
  2. Silverlightは次の用途に最適です。

    • HTML 5を使用できないアプリ(レガシーブラウザーとの互換性のため)またはHTML 5で使用できない機能を使用する必要があるアプリ
    • 社内で使用するアプリ。多くの権限や会社のインフラストラクチャとの強力な統合は必要ありません(Active Directoryへのアクセス、ユーザーの操作なしでの印刷、共有フォルダーへの書き込みなど)。

    どちらの場合も、システム管理者がアプリに関連するインストール/セキュリティ保護/更新タスクに対処する必要がないというのが素晴らしい点です

  3. WPFアプリケーションは他のすべてに最適です。強力な統合または追加の権限が必要であり、アプリがビジネスアプリとして、他のユーザーと並んで毎日使用されることがわかっている場合ノータッチで作業するには、通常のWPFアプリを使用してください。

HTMLを忘れないでください。お客様が技術者以外の人々であり、追加のソフトウェアをインストールできない(またはしたくない)場合、それを更新してサードパーティの支援なしに維持するか、またはお客様がMacOSを使用していて、使用するだけの仮想マシンでWindowsを実行しない場合アプリでは、Metro/Silverlight/WPFを使用しないでください。プレーンHTML/XHTMLを使用する必要があります。ユーザーの95%がHTML 5をサポートしていることがわかっている場合はHTML 5、サポートしていない場合は古いバージョンのいずれかです。フラッシュは、ほとんどのコンピューターにインストールできるほど人気が​​あるため、ソリューションでもあります。


MetroそれらがMetroアプリであるからではなく、自動的にタッチに優れているからではありません。開発者/インタラクションデザインのエキスパートとして、アプリにタッチ/マルチタッチを効率的に実装する方法を知っている必要があります。マルチタッチを意図していて、それを完全に誤って実行するアプリ(マウスやキーボードで同時に使用できないこと、開発者が一部の人がまだこれらの入力デバイスを使用していることを気にしていないため)ほど厄介なものはありません。

1

そうしない。 GUIレイヤーを別のGUIレイヤーに簡単に置き換えることができるようにコードロジックを記述します-実装ではなくインターフェイスへのコードです。 @Maxがコメントで述べているように、アプリケーションから呼び出す方法がある限り、これは実際にアプリケーション言語である必要はありません。

フレームワークに関する限り、 WXウィジェット は、他の人がさまざまな実装をラップするGUIをどのように実行したかを示す例として役立ちます。これがあなたが使うべきものであることを私は示唆していません。