【发布时间】:2011-03-03 17:17:16
【问题描述】:
这是我脑海中盘旋了一段时间的问题。前几天晚上我和一个人聊天,他告诉我他不会使用导航框架,因为他不知道它是如何与 MVVM 一起工作的。尽管我试图解释模式应该加点盐,但他不会听。
我的意思是,模式在解决某些问题时很棒。有时,模式只有一部分解决了特定问题,而其他部分则导致不同的问题。任何开发人员的目标都是结合使用模式知识和远见来构建可靠的应用程序。
我觉得 MVVM 正在成为统治它们的一种模式。由于.Net 不直接支持它,因此需要一些花哨的业务才能使其工作。我觉得人们错过了该模式的要点,即松散耦合、可测试的代码,而是跳过了障碍,错过了尝试完全遵循 MVVM 的丰富经验。
MVVM 很棒,但我希望它带有对新手的警告或免责声明,因为我担心人们会因为害怕被 mvvm 棒打而回避 Silverlight 开发。
编辑: 我可以添加为编辑吗?我使用并同意 MVVM 作为我知道在我的项目中何时可行和不可行的模式。我的问题在于它所具有的包容性,好像它必须被用作开发的一部分。它被用作一个完整的特征,而不是一个模式,它是。
编辑 2:感谢到目前为止所有的 cmets,从这里浮出水面的一个问题是我直到现在还没有考虑过的问题。是否为 GUI/RIA 开发引入了更丰富更高级的框架,显示了这一代 RAD 开发的弱点。也就是说,是否缺乏与这些框架一起教授的代码设计和模式知识?我曾经要求一本关于 C# 的书(在 Pro C# 和 .Net 框架流行之前),并被告知为什么我想知道 C# 减去 winforms/asp。
当然有很多关于这些主题的书籍/知识库,但是除了超级明星和非常优秀的程序员之外,人们还在使用它们吗?
【问题讨论】:
-
根据我的经验,回避 Silverlight 开发的真正原因是 Silverlight 测试框架的糟糕状态。无法为给定的 Silverlight 应用干净、快速、高效地运行一套单元测试是一个巨大的障碍。
-
这似乎更像是对封闭思想和狭隘思维的咆哮,而不是实际的 SO 问题。我不一定不同意你的观点,但博客可能是更好的场所。
-
@Dana,我同意你的观点,但我觉得这已经超出了个人意见。在它开始渗透到可能不了解更多的新用户之前,可以忽略思想封闭。
-
@Matt +1,测试总是很重要,虽然与特异性无关,但它永远不是一个重点!
-
-1 我认为您的问题的标题具有煽动性。我很难在自己的应用程序中协调 MVVM 和 System.Windows.Navigation,但这并不是 Silverlight 开发注定要失败的。我认为您的核心问题与“我应该在 Silverlight 项目中使用 MVVM 吗?”重复。 stackoverflow.com/questions/375301/…
标签: silverlight design-patterns mvvm