XAML或JavaFx?

这是使用XAMLJavaFx构建应用程序的快速,主观, 无权且非常不科学的比较。 比较是基于我与每个人合作的个人经验。 在XAML方面,这意味着WPFWin8存储应用程序 。 在JavaFx方面,这意味着Windows 7应用程序。

JavaFX

JavaFx被Oracle(以及当时的Sun)吹捧为构建UI的新方法。 它专注于支持现代UI所需的灵活性和图形精美性。 JavaFx可以在浏览器内外运行,也可以在各种操作系统上运行。

我在JavaFx方面的经验是构建仅针对Windows 7的外观美观且非常现代的桌面应用程序。我们选择在ScalaFx(Scala中的声明性JavaFx DSL)中编写视图代码。 效果很好:该应用程序看起来不错,运行良好,并且代码库很干净。 但是有几件事困扰着我:

  • UI代码并不像我希望的那样声明。 总的来说,我们发现内置控件不适合我们的需求,因此大多数UI是从.pngs构建的,这些控件附加了鼠标事件。 这些事件会将.png更改为悬停,单击等。 尽管这很好用,但是这意味着视图中的逻辑比我想要的更多。
  • 由于上述原因,在某种程度上很难创建XAML数据模板之类的东西,然后将数据绑定到其中。 再次,这导致视图中更命令式的逻辑。

我真正喜欢的东西是:

  • 在我看来,与Java同行相比,我们可以在视图中使用Scala的事实确实减少了视图代码中的噪音。 例如,使用函数是一等公民的语言,附加鼠标事件处理程序要容易得多。
  • 从测试中以无头模式运行视图代码是相当容易的。 尽管视图代码的TDD工作流程稍微慢了点,但这仍可以使它看起来不错。

XAML

XAML用于一系列Microsoft的UI技术中,包括WPF和Win8商店应用程序(以前称为Metro)和Silverlight。 XAML UI框架还专注于支持现代UI的需求,并且还可以在浏览器内外运行。

我对XAML的经验来自WPF和Win8商店应用程序,在这些应用程序中,我们遵循MVVM方法,没有任何特定框架,但受Caliburn.Micro启发,采用了一些自定义的约定,以简化XAML中的某些重复-特别是在绑定方面。

这也工作得很好,产生了不错的应用程序,但是同样有些事情困扰着我:

  • 首先,我讨厌用XML编写代码。 因此,我根本不喜欢XAML语言。 您可能会在此时说XAML是由工具生成的,而不是由人类编写的。 你可能是对的。 尽管如此,我的经验是您确实需要手工编写大多数XAML。 我发现这样做比使用Blend或Visual Studio编辑XAML更快,更易于维护。
  • 我不喜欢背后的代码。 在我从事的项目中,我们一直将它们保持在很小的范围内,但是它们仍然在诱人的状态下在脆弱的时刻隐藏无法测试的代码。

我真正喜欢的东西是:

  • 与JavaFx一样,无头运行视图进行测试非常简单。 同样,这将启用可接受的TDD工作流程。 再次,尽管有点慢。
  • 数据绑定效果很好。 尤其是有一些惯例可以减少样板代码。
  • 数据模板尤其可以使视图保持声明性。

结论?

嗯,我认为这里没有足够的数据来得出很多结论。 我将得出的结论是,对于构建Windows应用程序,我的经验是JavaFx和XAML都可以完成工作,但是使用XAML的速度更快,因为数据绑定更容易,数据模板有很多帮助,而且似乎更少手动滚动控件。

但是要当心:我比较的项目并不相同,因此比较苹果和Oragnes的过程是有一定水平的。 也这个很主观。 YMMV。

更新– 2012-12-21

根据反馈,我认为上述结论过于模糊。 需要澄清的是:根据我的经验,两种技术都可以使用,但是XAML可以更快(因此更便宜,并且可以更快地投放市场)使用。

参考: XAML或JavaFx? 从我们的JCG合作伙伴 Christian Horsdal在Horsdal博客上获得。

翻译自: https://www.javacodegeeks.com/2012/12/xaml-or-javafx.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值