【问题标题】:Winforms to WPF PatternsWinforms 到 WPF 模式
【发布时间】:2013-11-27 11:49:03
【问题描述】:

由于各种原因(主要是时间),我们必须使用 Winforms 创建一个新应用程序。我有一种感觉,层次结构中较高的人可能希望在一年左右将其更改为 WPF 应用程序(或其他东西),以便能够呈现更美观的 UI。但是现在我们被 Winforms 困住了。我们将使用实体框架进行 O/R 映射。

我的问题是,是否有人可以推荐一种在 Winforms 应用程序中使用的模式,以便从 Winforms 到 WPF 的工作尽可能简单。我们还希望能够将 Winforms 应用程序中的“查看”部分更改为另一个 Winforms 设计。我一直在寻找 winforms 应用程序的 MVP。我对 WPF 没有太多经验,所以如果可能的话,我不会,我已经看到 MVVM 似乎在 WPF 中很受欢迎。

我不想重写任何业务代码。理想情况下,我基本上只想将“视图”部分从 winforms 更改为 WPF。或者至少让这个过程尽可能顺利。

任何建议或建议将不胜感激。

【问题讨论】:

  • Any suggestions or recommendation - 是的,如果你没有时间做一个应用程序,那就用 WPF 来做吧。忘记winforms,它完全没用,会让你在糟糕的代码上浪费大量时间,而这些代码根本就不应该存在。 WPF 允许更快的开发时间,因为它有一个严肃的数据绑定引擎,而不是一个可笑的笑话。
  • 编写任何 winforms 代码完全是浪费时间,因为无法将 winforms 代码移植到其他任何东西上。而 MVVM 与 UI 的解耦程度要高得多,并且大部分代码可以在任何基于 XAML 的技术(WPF / WinRT XAML / Silverlight / Windows Phone)中重用,而几乎不需要更改。

标签: c# wpf winforms entity-framework


【解决方案1】:

正如问题中已经提到的,与 Winforms 相比,WPF 的显着特征之一是几乎无处不在的MVVM design pattern。尽管不可能像在 WPF 中那样在 Winforms 中完全实现 MVVM,但坚持其核心思想可能仍然有助于使整体对象结构和交互逻辑与 WPF 更加一致。

当正确执行 MVVM 时,所有业务代码都会被解耦到一个单独的层中,因此您无需重写任何代码 - 只需创建视图模型和视图并将它们与现有业务对象一起通过管道传输即可。

我的建议是在 WPF 中实现一个小型原型应用程序,以了解 MVVM 在实践中的工作原理,然后决定是否以及如何将这些概念转化为 Winforms 世界。尽管在编码和分析方面都需要付出一些努力,但我怀疑即使在基本级别上,Winforms 应用程序也可以与 WPF 保持一致,而无需了解 WPF 和 MVVM 的含义。

MVVM (Model-View-ViewModel) Pattern For Windows Form Applications, using C#

【讨论】:

  • 感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2017-08-06
  • 2010-10-13
  • 2011-01-14
  • 1970-01-01
相关资源
最近更新 更多