【问题标题】:is WPF THE choice for windows apps? [closed]WPF 是 Windows 应用程序的选择吗? [关闭]
【发布时间】:2011-12-16 14:20:18
【问题描述】:

我正在通过 PTVS 使用 Visual Studio 2010 在 Ironpython 中进行开发。

我发现 WPF 与 silverlight 等效项相比相当慢……至少对我而言。 我的程序做了很多计算,但用户界面非常简单。 我读过很多WPF vs Silverlight questions 还有this one。 我听说过silverlight 浏览器外模式...我不知道该怎么想。

我有点困惑,我需要我的应用程序快速,我不需要太多关于用户界面的东西。 它只是一个 Windows 应用程序,只能在用户计算机上运行。

那么,在这种情况下,wpf 实际上是最佳选择吗?

谢谢

【问题讨论】:

  • 如果用户界面真的很简单,您可以将其从您的业务逻辑中分离出来(例如使用 MVP 模式)并拥有多个视图(WPF、Silverlight)。然后你的 GUI 工具包就变成了一个配置参数(你的应用变成了“可换肤的”),你可以尝试它们并轻松地比较它们
  • @dario_ramos:理论上。在实践中,我怀疑它是否会发生。
  • @Ray:因为他有一个简单的 GUI(即很小),我认为他有时间实现多个视图
  • 不幸的是,问什么是“最好的”对于 SO 来说太主观了。你能改写你的问题更客观吗?例如。 “WPF 与经典 Windows 窗体相比有什么好处?”

标签: .net wpf visual-studio silverlight ironpython


【解决方案1】:

说实话,与所有其他 cmets 不同。即使是简单的应用程序,我也使用 WPF。事实上,它确实有助于避免其他 ui 框架上的大量必要代码。我喜欢这样一个事实,即使用 WPF 我可以直接考虑我要修改的数据,而无需编写大量事件处理程序来将项目添加到集合中,将它们显示在列表中等。WPF 也不一定要使用 MVVM,只是使用结合了视图模型和模型的类。 在大量使用 WPF 之后,我无法想象再次使用 Windows 窗体。

当然,这只是我个人的看法。 最后,始终使用最适合您手头问题的工具。如果您不了解 WPF,并且只想将它用于小型应用程序,我建议您使用 windows 窗体或其他东西。

【讨论】:

  • +1:一个关键点是生产力也与你所熟悉的东西有关。我仍然编写奇怪的 Win 表单应用程序,但我更喜欢 WPF,因为我已经花了很多时间使用 WPF/Silverlight 和 Expression Blend。 MVVM 绑定使用起来非常简单。
  • 这是我试图说的,但你说得好多了。
【解决方案2】:

在我的主观意见中没有。最好的选择是winforms。我发现它在开发中更快,并且您有更多的在线文档和支持。 WPF 更多地基于用户界面,并且自然地使用 MVVM 范例。对于一个简单的应用程序来说,它实在是太臃肿了。

【讨论】:

    【解决方案3】:

    如果您的用户界面真的很简单,那么我会说 winforms 可能会更简单。 WPF 非常强大,但强大的同时也带来了复杂性和学习曲线。

    虽然界面简单,但速度应该不是问题。

    【讨论】:

      【解决方案4】:

      如果您的 UI 非常简单,并且基于浏览器的应用程序适合 Silverlight,因为 silverlight 使用精简版的 .Net,它的执行速度会更快。然而,我最近正在编写一个具有相当复杂 UI 的应用程序,它使用具有大量数据的非常重的网格/树视图并实现自定义行为,我个人从未注意到该应用程序运行缓慢或认为 WPF 很慢。

      相比之下,它比 Silverlight 慢,但如果你的 UI 相当简单,它实际上会慢多少?

      此外,由于 silverlight 使用精简版的 .Net,您可能需要什么银光不支持的幕后功能?

      我不同意@Daniel Casserly 关于 WPF / MVVM 对于一个简单的应用程序来说过于臃肿的说法,MVVM 很好地将你的 UI 与其背后的逻辑分开,如果需要的话,将允许扩展这个应用程序。我更喜欢 WPF 的数据绑定方式,也更喜欢在 XAML 中设计 UI 而不是 Winforms 方法,尽管这可能只是个人喜好。

      如果你以前从未使用过 WPF,那么学习制作一个基本的 UI 并不难

      【讨论】:

        【解决方案5】:

        当您的设计人员和开发人员都非常了解 WPF 并且可以在开发应用程序的一半时相互编码抽象而不会相互依赖时,WPF 是 Windows 应用程序的“最佳”选择。

        否则,你们俩会很生气,开发会很慢,而且您会想知道为什么不一开始就使用好的旧 WinForms。

        除非您的设计师对 UI 有远见并且对 WPF 有丰富的经验,否则您可能不会利用 WPF 所提供的功能。

        编辑

        刚刚意识到您说用户界面非常简单。现在跳过 WPF,使用 WinForms,并使用 Model View Presenter 样式。这样,如果您以后需要更新到 WPF,这不会是一个巨大的考验。 (无论如何,MVP 非常适合代码可读性和测试)。

        【讨论】:

        • winforms 设计器界面在 Visual Studio 中与 Ironpython 不可用,我想我必须使用 WPF。(我是开发人员和设计人员)
        【解决方案6】:

        只是说,通过混合和所有工具,您可以非常快速地完成用户界面。学习winforms至少不是为了未来,xaml无处不在。 Wpf 占用相对较多的资源并且加载缓慢,但是通过简单的异步编程,它的性能已经足够了。 Sl out of browser 是另一种选择,以获得更多的轻量级。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-18
          • 2016-09-27
          • 1970-01-01
          • 1970-01-01
          • 2010-11-08
          • 2011-09-29
          • 1970-01-01
          • 2015-12-01
          相关资源
          最近更新 更多