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

时间:2012-03-17 17:56:39

标签: c# java windows user-interface

我打算编写一个Windows应用程序来帮助自己完成一些探索性测试任务(笔记记录,数据生成,缺陷记录),并且我在选择框架/语言的早期阶段陷入困境。我唯一的经验是网页开发,从我所看到的,WinForms,WPF,Silverlight,Swing等都是同时过时和蓬勃发展,取决于你的问题。

虽然我的主要目标是创建应用程序,但显然我想学习一些有用的东西,而不是通过在工作项目中永远不会看到的东西来学习技能。人们建议学习哪些Java或C#框架?

4 个答案:

答案 0 :(得分:22)

注意:考虑何时发布此答案(2012)。从那时起,情况发生了一些变化,例如Silverlight已被弃用。


原生应用

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

为什么普通的旧Windows窗体而不是令人敬畏的WPF?一个原因,遗留应用。如今大多数公司只开始小规模的GUI应用程序项目,主要是业务应用程序。为此,WPF将非常昂贵,因为他们已经拥有Windows Forms中经验丰富的工作人员和许多遗留代码,但是对于WPF,他们将不得不创建一个新的代码库,而且风险很大。所以让你受雇的最好的事情是Windows Forms。

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

现在,对于云。 Java FX和Silverlight目前都是正面交锋。但是,Java FX可能具有优势,因为它支持更多平台。但话说回来,Silverlight拥有微软背后的所有功能和资源,它是Windows Phone开发的理想选择。

比较

为了进行比较,以下是每个工具包的内容:

Windows Presentation Foundation

  • 微软的力量和资源
  • 创建新桌面应用程序的理想选择
  • 眼睛糖果
  • 很棒的API
  • XAML,将设计与逻辑分开的最佳方式
  • 为云创建应用程序(但它们仅适用于带有.NET的Windows)
  • Windows Phone可以运行WPF的子集

Windows窗体

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

Java FX

  • 为云创建应用
  • 由Oracle提供支持
  • 相当不错的API
  • 跨平台,在大多数PC上运行,智能手机是个问题。

<强> Silverlight的

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

<强> GTK#

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

<强>摇摆

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

结论

正如你所说:

  

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

嗯,你最有可能看到的框架(如果不适用于微软,甲骨文,谷歌等主流公司)是Windows Forms和WPF。至少这是大多数公司在这里使用的。所以这些是我推荐的。 JavaFX和Silverlight看起来也有潜力,可能会在不久的将来使用。

答案 1 :(得分:8)

WPF。对Windows的最佳支持。顺便说一句,它并没有过时。

答案 2 :(得分:1)

Java FX 2.0看起来非常有前途,现在如果挥杆看起来已经过时了。请注意,它与以前的版本几乎没有共同之处。请参阅示例this short comparison with swing。而oracle表示他们打算开源。

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

答案 3 :(得分:1)

您可以选择将应用程序创建为HTML + Javascript并通过嵌入浏览器引擎(IE或其他内容)在桌面应用程序中运行它。如果您需要本机API,则有一些机制可以将这些API用于浏览器的Javascript代码。