注意:考虑此答案何时发布(2012年)。从那时起,事情发生了一些变化,例如Silverlight已被弃用。
本机应用程序
就业:嗯,现在大多数公司(至少大多数来自我居住的阿曼和阿联酋的公司)正在慢慢迁移到云端。但是,本机应用程序开发仍有一些机会。现在最苛刻的框架是(不,不是WPF),它是Windows Forms!
为什么是普通的旧Windows Forms而不是令人敬畏的WPF?其中一个原因是旧版应用。如今,大多数公司只开始小规模的GUI应用程序项目,主要是业务应用程序。为此,WPF将非常昂贵,因为他们已经拥有一支在Windows Forms方面经验丰富的员工队伍,并且有很多遗留代码,但是对于WPF,他们将不得不创建一个新的代码库,这是非常危险的。因此,让你保持就业的最好办法是Windows Forms。
对于新项目:但是,如果说“值得学习”,你的意思是,新的,雄心勃勃的和迷人的。那么 WPF 可能是您的最佳选择。这取决于您的要求,真的。
云
现在,对于云。Java FX和Silverlight目前都是正面交锋。然而,Java FX可能具有优势,因为它支持更多的平台。但话又说回来,Silverlight拥有微软的所有权力和资源,它是Windows Phone开发的理想选择。
比较
为了进行比较,以下是每个工具包获得的内容:
Windows Presentation Foundation:
- 微软的力量和资源
- 非常适合创建新的桌面应用程序
- 养眼
- 真棒应用程序接口
- XAML,将设计与逻辑分离的最佳方式
- 为云创建应用程序(但它们仅适用于带有.NET的Windows)
- Windows Phone 可以运行 WPF 的子集
Windows 窗体:
- 曾经拥有微软的权力和资源,现在WPF拥有
- 维护旧版应用程序的理想选择
- 训练有素的劳动力,如果你是一个企业家
- 相当成熟的 API
- 支持比 WPF 更多的平台(通过单声道)
Java FX:
- 为云创建应用
- 由甲骨文提供支持
- 相当不错的 API
- 跨平台,在大多数PC上运行,智能手机是一个问题。
银光:
- 为云创建应用
- 由微软支持
- 非常棒的API
- 断续器
- 跨平台,在Mac和PC上运行,在Windows Phone上运行。
GTK#:
- 跨平台,在大多数PC上运行,无需智能手机运行。
- 以开源世界为后盾
- 由Mono认可
- 非常适合为侏儒创建应用程序。
秋千:
- 跨平台,在大多数PC上运行,智能手机是一个问题。
- 相当成熟
- 非常适合使用 Java2D 创建 2D 游戏
结论
正如你所说:
虽然我的主要目标是创建应用程序,但显然我想在这样做的同时学习一些有用的东西,而不是通过一些在工作项目中永远不会看到的东西来学习技能。
好吧,你最有可能在工作中看到的框架(如果你不为微软,甲骨文,谷歌等主流公司)是Windows Forms和WPF。至少这是大多数公司在这里使用的。所以这些是我推荐的。JavaFX和Silverlight看起来也有潜力,可能会在不久的将来使用。