8
MVVM没有意义吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 正统的MVVM实现是没有意义的吗?我正在创建一个新的应用程序,并且考虑了Windows Forms和WPF。我选择WPF是因为它可以面向未来并且具有很大的灵活性。使用XAML的代码更少,可以更轻松地对UI进行重大更改。 由于WPF的选择是显而易见的,因此我认为,最好还是使用MVVM作为我的应用程序体系结构,因为它提供了可混合性,分离性和单元可测试性。从理论上讲,它看起来像UI编程的圣杯一样美丽。这短暂的冒险;但是,已经变成了真正的头痛。正如实践中所期望的,我发现我已经将一个问题换成了另一个。我倾向于成为一个痴迷的程序员,因为我想以正确的方式做事,以便获得正确的结果,并有可能成为更好的程序员。MVVM模式使我的生产力测试不及格,并且变成了一个巨大的麻烦! 最明显的例子就是增加了对“模态”对话框的支持。正确的方法是建立一个对话框并将其绑定到视图模型。使其难以工作。为了从MVVM模式中受益,您必须在应用程序的各个层中的多个位置分发代码。您还必须使用诸如模板和lamba表达式之类的深奥编程结构。东西使您凝视屏幕,挠挠头。正如最近发现的那样,这使得维护和调试成为一场噩梦。我有一个about框可以正常工作,直到我第二次调用它时出现异常,然后说它一旦关闭就无法再次显示该对话框。我必须为对话框的关闭功能添加一个事件处理程序,IDialogView实现中的另一个,最后是IDialogViewModel中的另一个。我以为MVVM可以将我们从如此奢侈的黑客中拯救出来! 有好几个人在为这个问题提供竞争解决方案,他们都是黑客,不能提供干净,易于重用的优雅解决方案。大多数MVVM工具箱都会掩盖对话框,当它们确实解决对话框时,它们只是警报框,不需要自定义界面或视图模型。 我打算放弃MVVM视图模式,至少是它的正统实现。你怎么看?如果您有任何麻烦,对您来说值得吗?我只是一个能力不强的程序员,还是MVVM并不是它所宣传的那样?