私はいくつかの探索的テストタスク(メモ作成、データ生成、欠陥ロギング)に役立つWindowsアプリを作成する予定で、フレームワーク/言語を選択する初期段階で行き詰まっています。私の唯一の経験はWeb開発に関するものであり、WinForms、WPF、Silverlight、Swingなどはすべて、時代遅れであり、あなたが求める人に応じて繁栄しています。
私の主な目的はアプリを作成することですが、仕事中にプロジェクトで見られないようなスキルを身に付けるのではなく、その間に役立つことを学びたいのは明らかです。 JavaまたはC#フレームワークのどれを学習することをお勧めしますか?
注:この回答が投稿された時期を考慮してください(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:
Windowsフォーム:
Java FX:
Silverlight:
GTK#:
スイング:
あなたが言うように:
私の主な目的はアプリを作成することですが、仕事中にプロジェクトで見られないようなスキルを身に付けるのではなく、その間に役立つことを学びたいのは明らかです。
ええと、あなたが仕事で目にする可能性が最も高いフレームワークは(Microsoft、Oracle、Googleなどの主流企業がそうでなければ)WindowsフォームとWPFです。少なくともそれは、ほとんどの企業がここで使用するものです。だから私はそれらをお勧めします。 JavaFXとSilverlightも可能性があるように見え、近い将来に使用される可能性があります。
WPF
。 Windowsの最適なサポート。ところで、それは時代遅れではありません。
アプリケーションの1つとして、HTML + Javascriptとしてアプリケーションを作成し、ブラウザエンジン(IEなど)を埋め込んで、デスクトップアプリケーションで実行する方法があります。ネイティブAPIが必要な場合は、これらをブラウザーのJavaScriptコードで使用できるようにするメカニズムがあります。
Java FX 2. は非常に有望であるように思われ、swingが時代遅れになったように見える場合はライブになっています。以前のバージョンとほとんど共通点がないことに注意してください。たとえば swingとのこの短い比較 を参照してください。そしてオラクルはソースをオープンする計画だと言った。
現在はかなり新しいため、既存のアプリケーションで使用されることはほとんどありません。