【问题标题】:WPF or WinForms for internal tools?WPF 或 WinForms 用于内部工具?
【发布时间】:2010-10-12 06:31:57
【问题描述】:

在我的公司,我们为内部开发了许多工具,范围从简单的实用程序到成熟的编辑器。这些工具的优先级是稳定性、可用性和周转时间(即添加新功能的速度)。

到目前为止,我们一直在使用 WinForms,但绘图板上还有一些新工具,我正在权衡是否应该继续使用 WinForms 或迁移到 WPF。当我们控制环境时,我们不必担心 .NET 版本等(尽管我们暂时必须在 XP 上运行)。

我熟悉 WPF 提供的图形优势(基于矢量、硬件加速、换肤能力),但我想知道 WPF 是否还有其他方面可以为它在 WinForms 上的使用提供令人信服的论据。

谢谢,

【问题讨论】:

    标签: .net wpf winforms


    【解决方案1】:

    如果您的公司正在考虑未来迁移到 WPF 的战略决策,那么从内部工具开始可能是一个不错的选择。如果您没有任何此类计划,那么承担理解 WPF 的主要任务根本不值得。如果您认为也许有人应该考虑是否对 WPF 进行战略性迁移,而这将是一个很好的起点,请确保该人有足够的影响力来倾听。

    【讨论】:

      【解决方案2】:

      选择一个要在 WPF 中完成的小项目,并在了解 WPF 可以做什么以及如何正确使用它的过程中准备好重构它。将项目视为“培训”,因为它需要一段时间才能熟悉 WPF。不过要坚持,因为值得。

      【讨论】:

        【解决方案3】:

        我会根据项目的大小和数量来使用 WPF。您要做的工作越多,利用 WPF 的力量就越有意义。对于 CRUD 应用程序,除了一些吸引眼球的东西之外,您不会从 WPF 中获得太多功能。您将在中期生产力方面取胜,因为 WPF 遵循一种干净的方法,而不是一种已经经过多年发展并且经过高度修补的方法,即使它穿着得非常好,例如 Windows 窗体。用 XML 布局屏幕确实有其好处。

        但是,对于快速的小工具,我会坚持使用 Windows 窗体,直到达到 WPF 熟练程度,除非目的之一是所引用的熟练程度本身。

        【讨论】:

          【解决方案4】:

          不要低估学习曲线。 WPF 可以很好地使用,它可能是一场噩梦。我见过只有 WinForms 的开发人员对 WPF 比对 ASP.NET 更无助(即使对 Web 开发知之甚少)。虽然大多数开发人员能够在不阅读任何书籍的情况下开始使用 WinForms 和 ASP.NET,并且在一定程度上提高了工作效率,但使用 WPF 似乎是不可能的。

          不要忘记第三方组件。是的,在 .NET 3.0 e 之后,市场上甚至还有新玩家。 G。 SoftwareFX 最终设法发布了他们的 WPF 图表解决方案(仅作为示例),但 WPF 的组件市场仍然小得多(商业和开源),而且 WPF 组件通常仍然不如 WinForms 对应物强大。

          我同意架构,例如。 G。数据绑定概念很棒,如果您遵循 MVVM 之类的模式,但是 MSDN 中关于最佳实践 e 的文档很少。 G。关于 MVVM,因此您必须自己将您的团队指向网络上的文章和书籍等。

          而且数据绑定在 WinForms 2.0 中已经非常强大并且实际上非常相似。看起来很少有人知道并充分利用它。 (可能他们只在1.1尝试过,觉得太复杂了……)

          【讨论】:

            【解决方案5】:

            我喜欢 WPF 提供的许多架构更改。更新后的 DataBinding 模型本身值得为 IMO 进行更改。但是,我会权衡维护工具跟上 WPF 速度的团队所涉及的任何潜在开销。

            【讨论】:

              【解决方案6】:

              我同意 Alex 的观点 - 转到 WPF。不过,一个可能的限制是 WPF 仅适用于 XPSP2 及更高版本。

              WPF 优于 WinForms 的一个优势是 WPF 的数据绑定比 WinForms 强大得多。它使得将数据绑定的 UI 组合在一起变得非常容易。

              【讨论】:

                【解决方案7】:

                对于新的应用程序,我会转而使用 WPF,因为它总体上更易于使用,而且正如他们所说,“未来”。

                不过,WinForms 并没有什么问题,所以如果你想坚持下去,应该不会有任何问题。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-03-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-20
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多