web-dev-qa-db-ja.com

現在どのWindows GUIフレームワークを学ぶ価値がありますか?

私はいくつかの探索的テストタスク(メモ作成、データ生成、欠陥ロギング)に役立つWindowsアプリを作成する予定で、フレームワーク/言語を選択する初期段階で行き詰まっています。私の唯一の経験はWeb開発に関するものであり、WinForms、WPF、Silverlight、Swingなどはすべて、時代遅れであり、あなたが求める人に応じて繁栄しています。

私の主な目的はアプリを作成することですが、仕事中にプロジェクトで見られないようなスキルを身に付けるのではなく、その間に役立つことを学びたいのは明らかです。 JavaまたはC#フレームワークのどれを学習することをお勧めしますか?

16
Dave

注:この回答が投稿された時期を考慮してください(2012)。それ以来、状況が少し変更されました。たとえば Silverlight は廃止されました。


ネイティブアプリケーション

雇用について:さて、今日、ほとんどの企業(少なくとも私が住んでいるオマーンとUAEのほとんどの企業)はゆっくりとクラウドに移行しています。ただし、ネイティブアプリ開発にはまだいくつかの機会があります。最近の最も要求の厳しいフレームワークは、(いいえ..ない [〜#〜] wpf [〜#〜] )、それは Windowsフォーム

なぜ素晴らしいWPFではなく、単純な古いWindowsフォームなのでしょうか。 1つの理由は、レガシーアプリです。現在、ほとんどの企業は小規模なGUIアプリケーションプロジェクト、主にビジネスアプリケーションのみを開始しています。そのため、WPFはWindowsフォームでの経験豊富な労働力と多くのレガシコードを持っているため、非常にコストがかかりますが、WPFの場合、新しいコードベースを作成する必要があり、かなり危険です。したがって、あなたを雇用し続けるのに最適なのはWindowsフォームです。

新しいプロジェクトの場合:ただし、「学ぶ価値がある」とは、新しい、野心的で魅力的なという意味です。その場合は、WPFが最適です。それは実際にあなたの要件が何であるかに依存します。

クラウド

さて、クラウドのために。 Java FXとSilverlightは現在、どちらも直接対応しています。ただし、Java FXは、より多くのプラットフォームをサポートしているため、エッジを備えている場合があります。ただし、Silverlight Microsoftのすべてのパワーとリソースを支えており、Windows Phone開発に最適です。

比較

比較のために、各ツールキットで得られるものを以下に示します。

Windows Presentation Foundation

  • マイクロソフトのパワーとリソース
  • 新しいデスクトップアプリケーションの作成に最適
  • 目の保養
  • 素晴らしいAPI
  • XAML、デザインをロジックから分離する最良の方法
  • クラウド向けアプリを作成する(ただし、.NETを使用するWindowsでのみ機能します)
  • Windows PhoneはWPFのサブセットを実行できます

Windowsフォーム

  • Microsoftのパワーとリソースを所有していたが、現在WPFはそれを持っている
  • レガシーアプリケーションの維持に最適
  • 起業家であれば、十分な訓練を受けた労働力
  • かなり成熟したAPI
  • WPFよりも多くのプラットフォームをサポート(Mono経由)

Java FX

  • クラウド向けのアプリを作成する
  • オラクルによる支援
  • かなりいいAPI
  • クロスプラットフォーム、ほとんどのPCで実行、スマートフォンが問題です。

Silverlight

  • クラウド向けのアプリを作成する
  • マイクロソフトによる支援
  • かなり素晴らしいAPI
  • XAML
  • クロスプラットフォーム、MacおよびPCで実行、Windows Phoneで実行。

GTK#

  • クロスプラットフォーム、ほとんどのPCで実行、スマートフォンなしで実行。
  • オープンソースの世界に支えられて
  • Monoによる承認
  • Apps for Gnomeの作成に最適です。

スイング

  • クロスプラットフォーム、ほとんどのPCで実行、スマートフォンが問題です。
  • かなり成熟した
  • Java2Dを使用した2Dゲームの作成に最適

結論

あなたが言うように:

私の主な目的はアプリを作成することですが、仕事中にプロジェクトで見られないようなスキルを身に付けるのではなく、その間に役立つことを学びたいのは明らかです。

ええと、あなたが仕事で目にする可能性が最も高いフレームワークは(Microsoft、Oracle、Googleなどの主流企業がそうでなければ)WindowsフォームとWPFです。少なくともそれは、ほとんどの企業がここで使用するものです。だから私はそれらをお勧めします。 JavaFXとSilverlightも可能性があるように見え、近い将来に使用される可能性があります。

22

WPF。 Windowsの最適なサポート。ところで、それは時代遅れではありません。

8
alex.b

アプリケーションの1つとして、HTML + Javascriptとしてアプリケーションを作成し、ブラウザエンジン(IEなど)を埋め込んで、デスクトップアプリケーションで実行する方法があります。ネイティブAPIが必要な場合は、これらをブラウザーのJavaScriptコードで使用できるようにするメカニズムがあります。

1
Kyberias

Java FX 2. は非常に有望であるように思われ、swingが時代遅れになったように見える場合はライブになっています。以前のバージョンとほとんど共通点がないことに注意してください。たとえば swingとのこの短い比較 を参照してください。そしてオラクルはソースをオープンする計画だと言った。

現在はかなり新しいため、既存のアプリケーションで使用されることはほとんどありません。

1
assylias