WPF、Silverlightについて聞いたことがありますが、現時点ではWindows RT、Metroのもの、Windows 8などもあります-何を賭けているのかわかりません。
ある時点で、いくらか将来を見越したGUIを実行するのに最適なプラットフォームを見つけるにはどうすればよいですか?
Microsoftの現在の傾向を見ると、UIを特定のフレームワークにきつく締めると、UIの将来性を保証できなくなります。 applicationを将来性のあるものにするためにいくつかの抽象化が必要であり、そのための優れたデザインパターンがあります( を参照してください)モデルビュー-Presenter および Model-View-ViewModel )。
外観を厳密に制御する必要がない場合は、 wxWidgets 、 [〜#〜] qt [〜のような一般的なUIフレームワークを使用できます。 #〜] および [〜#〜] swt [〜#〜] またはUIフレームワークへの過度のバインドを回避するのに役立つフレームワーク、 Caliburn Micro 。
ある時点で、いくらか将来を見越したGUIを実行するのに最適なプラットフォームを見つけるにはどうすればよいですか?
INMO、これは望ましい目標ですが、現実的でも明確でもありません。
実際には「将来」の部分を定量化する必要があるため、明確に定義されていません。 GUIテクノロジーは変更が最も速く、その変更は根本的なものであると歴史が示しているため、これは現実的ではありません。
質問に戻りますが、これが実際のアプリケーションでなぜ重要なのかを理解する必要があります。ご覧のとおり、古いテクノロジでさえ突然突然落とされ、長い間生きているわけではありません。コントロールベンダーは、WindowsフォームアプリケーションのGUIコンポーネントのアップグレードを提供しています。 Windowsフォームを使用して、タッチベースのアプリケーションを今すぐ開発できます。ネイティブのすぐに使える新しいSilverlightではおそらくできないことです!
私が最初に行うことは、予想されるユーザー環境を決定することです。次に、アプリケーションを実行する必要があるデバイスの種類(アプレット、モバイル、Web、デスクトップなど)を特定し、サポートする言語とツールを確認します。
WPFとSilverlightは引き続き機能しますが、改善の余地はありません。 XAMLは、何らかの形でWindows 8の世界で使用されます。 Silverlightパスに沿って考える場合は、 MS-Silverlight のシステム要件マトリックスを確認してください。
GUIに依存しないアプリケーションの開発は、少なくとも多くの商用ビジネスアプリケーションにとって現実的ではありません。余分な複雑さを正当化するのは非常に困難です。ビジネスの人々が時々見つける傾向があるのは、テクノロジーが、一部のアプリケーションが構築されているビジネスモデルよりも長生きするということです。 (私が別の銀行が私たちがプロジェクトを行ったものを買収したので3ヶ月だけ生き残った大きな銀行のために私たちが行ったプロジェクトを覚えています:))。
Webの方向に向かっている場合は、サードパーティのコントロールを備えたHTML 5とJavaScriptを検討することをお勧めします。最近進化している良いものがあります。
幸運を。
すべての答えの答え:状況によって異なります
アプリケーションを開発するときは、いくつかの決定を行う必要があります。
等pp。
この時点で、抽象化について考えることができます。純粋なロジックをさまざまなアセンブリにカプセル化し、UIレイヤーのみを最上位に構築します。このようにして、さまざまなUI戦略を使用できます。
しかし真剣に:Windows 8向けに開発する場合は、.NET 4.5とWindows RTがXP、7、サーバーなどで実行可能な.NET 4.0と多少の違いがあることを確認してください。 。したがって、開発するUIは、あなたとあなたの顧客次第です。
考慮する必要のある側面が多すぎます。顧客のニーズ、システムで必要な権限、アプリに付与したいUXの感触など。
Metroアプリはタッチに最適であり、フルスクリーンのシングルアプリケーションユーザーエクスペリエンスに最適です。 Metroアプリを実行する正当な理由はいくつかあります。
Silverlightは次の用途に最適です。
どちらの場合も、システム管理者がアプリに関連するインストール/セキュリティ保護/更新タスクに対処する必要がないというのが素晴らしい点です。
WPFアプリケーションは他のすべてに最適です。強力な統合または追加の権限が必要であり、アプリがビジネスアプリとして、他のユーザーと並んで毎日使用されることがわかっている場合ノータッチで作業するには、通常のWPFアプリを使用してください。
HTMLを忘れないでください。お客様が技術者以外の人々であり、追加のソフトウェアをインストールできない(またはしたくない)場合、それを更新してサードパーティの支援なしに維持するか、またはお客様がMacOSを使用していて、使用するだけの仮想マシンでWindowsを実行しない場合アプリでは、Metro/Silverlight/WPFを使用しないでください。プレーンHTML/XHTMLを使用する必要があります。ユーザーの95%がHTML 5をサポートしていることがわかっている場合はHTML 5、サポートしていない場合は古いバージョンのいずれかです。フラッシュは、ほとんどのコンピューターにインストールできるほど人気があるため、ソリューションでもあります。
MetroそれらがMetroアプリであるからではなく、自動的にタッチに優れているからではありません。開発者/インタラクションデザインのエキスパートとして、アプリにタッチ/マルチタッチを効率的に実装する方法を知っている必要があります。マルチタッチを意図していて、それを完全に誤って実行するアプリ(マウスやキーボードで同時に使用できないこと、開発者が一部の人がまだこれらの入力デバイスを使用していることを気にしていないため)ほど厄介なものはありません。
そうしない。 GUIレイヤーを別のGUIレイヤーに簡単に置き換えることができるようにコードロジックを記述します-実装ではなくインターフェイスへのコードです。 @Maxがコメントで述べているように、アプリケーションから呼び出す方法がある限り、これは実際にアプリケーション言語である必要はありません。
フレームワークに関する限り、 WXウィジェット は、他の人がさまざまな実装をラップするGUIをどのように実行したかを示す例として役立ちます。これがあなたが使うべきものであることを私は示唆していません。