哪些Windows GUI框架目前值得学习?

我打算写一个Windows应用程序来帮助自己进行一些探索性的testing任务(笔记logging,数据生成,缺陷日志logging),并且在select框架/语言的早期阶段就陷入困境。 我唯一的经验是在网页开发方面,从我所看到的方面来看,WinForms,WPF,Silverlight,Swing等都是同时过时和繁荣的,取决于你问的对象。

虽然我的主要目标是创build应用程序,但显然我希望在这样做的同时学习一些有用的东西,而不是用一些在工作中不可见的东西来获取技能。 人们推荐学习哪种Java或C#框架?

原生应用程序

就业 :现在大多数公司(至少大部分来自阿曼和阿联酋的公司)都在慢慢迁移到云端。 但是,本地应用程序开发仍然有一些机会。 现在最苛刻的框架是,(不..不是WPF ),它是Windows窗体 !

为什么简单的旧的Windows窗体,而不是真棒WPF? 一个原因, 传统应用程序 。 现在大多数公司只开始小规模的GUI应用程序项目,主要是商业应用程序。 为此,WPF将会非常昂贵,因为他们已经在Windows Forms中经历了大量的遗留代码,但是对于WPF,他们将不得不创建一个新的代码库,这非常危险。 所以最好的保持你雇用的是Windows窗体。

对于新项目 :但是,如果说“值得学习”,那就意味着新的,雄心勃勃的和魅力四射的。 那么WPF可能是您的最佳选择。 这取决于你的要求是什么,真的。

云端

现在,云。 Java FX和Silverlight目前正在相互碰撞。 但是,Java FX可能有优势,因为它支持更多的平台。 但是,Silverlight再次拥有微软的所有力量和资源,是Windows Phone开发的理想选择。

对照

为了比较,下面是每个工具包得到的结果:

Windows Presentation Foundation

  • 微软的力量和资源
  • 适用于创建新的桌面应用程序
  • 秀色可餐
  • 令人敬畏的API
  • XAML是将设计与逻辑分离的最佳方式
  • 为云创建应用程序(但它们只能在Windows上使用.NET)
  • Windows Phone可以运行WPF的一个子集

Windows窗体

  • 曾经拥有微软的力量和资源,现在WPF有这个
  • 理想的维护遗留应用程序
  • 一个训练有素的劳动力,如果你是一个企业家
  • 非常成熟的API
  • 支持比WPF更多的平台(通过Mono)

Java FX

  • 为云创建应用程序
  • 由Oracle支持
  • 漂亮的API
  • 跨平台,在大多数电脑上运行,智能手机是一个问题。

Silverlight

  • 为云创建应用程序
  • 由微软支持
  • 非常棒的API
  • XAML
  • 跨平台,运行在Mac和PC上,运行在Windows Phone上。

GTK#

  • 跨平台,在大多数电脑上运行,不运行智能手机。
  • 支持开源世界
  • Mono赞同
  • 非常适合为Gnome创建应用程序。

摇摆

  • 跨平台,在大多数电脑上运行,智能手机是一个问题。
  • 相当成熟
  • 使用Java2D创建2D游戏的理想选择

结论

正如你所说:

虽然我的主要目标是创建应用程序,但显然我希望在这样做的同时学习一些有用的东西,而不是用一些在工作中不可见的东西来获取技能。

那么,你最有可能在工作中看到的框架(如果你不是像微软,甲骨文,谷歌等主流公司)是Windows窗体和WPF。 至少这是大多数公司在这里使用的。 所以那些是我推荐的。 JavaFX和Silverlight也看起来像他们有潜力,并可能在不久的将来使用。

WPF 。 对Windows的最佳支持。 顺便说一下,它不是过时的。

一个选项可能是创建你的应用程序为HTML + Javascript,并通过嵌入浏览器引擎(IE或其他)在桌面应用程序中运行它。 如果你需要本地API,有一些机制可以使浏览器的Javascript代码可用。

Java FX 2.0似乎非常有希望,现在如果挥杆看起来已经过时了, 请注意,它与以前的版本几乎没有什么共同之处。 比如看这个与挥杆的比较 。 甲骨文表示,他们打算开源。

现在这是相当新的,所以不太可能在现有的应用程序中使用。