我们希望开始开发中级桌面软件。 我们决定使用WPF。 我们不想使用MVVM模式。 因为我们不熟悉MVVM,也有时间限制。 在没有MVVM模式的情况下开发WPF应用程序是否属实(使用3层架构但没有MVVM) 虽然它比胜利形式有更好的表现吗?
答案 0 :(得分:15)
使用wpf时,您不需要依赖MVVM。真正正确使用wpf的关键是:
MVVM非常适合这两件事但不是必需的。具体来说,MVVM需要3层严格的关注点分离,这可以通过MVP轻松完成。
就性能而言,这实际上取决于运行应用程序的平台和编码风格。如果你在没有合适显卡的计算机上运行它,那么winForms可能会表现更好,因为wpf可能会恢复到软件渲染速度非常慢。如果你需要做3d图形,那么wpf确实是你唯一的选择。
答案 1 :(得分:2)
使用WPF / Silverlight时,您肯定不必依赖MVVM。
至于性能差异 - 它可能取决于您的编码风格,但如果做得恰当,差异应该不明显。
答案 2 :(得分:2)
您可以通过WinForm和WPF开发任何应用程序,而无需任何设计模式或应用程序模式。
答案 3 :(得分:0)
MVVM不是必需的,但它解决了表示逻辑的一些常见问题。例如,考虑IsBusy ViewModel属性。它是从任何具有持续时间的操作设置的,可以在Command.CanExecute中使用,以指示绑定控件在某些内容运行时自行禁用。逻辑和UI操作的一个属性。您可以考虑更多这样的示例来指导您使用MVVM。它具有重要意义,而不是它自身的模式。
答案 4 :(得分:-3)
不需要使用MVVM。 可以使用视觉设计器将n'拖放控件拖到设计图面上。 双击按钮并在代码隐藏中获取事件处理程序。我们不要忘记 设置属性&通过PropertyGrid的事件处理程序。 完全一样在Winforms中完成。
没有DataContext数据绑定不起作用。 如果你想使用数据绑定,我见过的第一个例子设置了 Window的DataContext = this;在构造函数中。在这种情况下,窗口充当自己的“ViewModel”。
您还可以将MVVM与View-First一起使用。无需DI或IoC。
public class MyViewModel
{
}
public class MyWindow
{
public MyWindow()
{
DataContext = new MyViewModel();
}
}
当然下一步是使用Unity实现DI / IoC。