您知道任何使用 MVVM 的真实、有用的 WPF/Silverlight 应用程序吗?
Posted
技术标签:
【中文标题】您知道任何使用 MVVM 的真实、有用的 WPF/Silverlight 应用程序吗?【英文标题】:Do you know any real-world, useful WPF/Silverlight applications using MVVM? 【发布时间】:2010-10-17 18:37:21 【问题描述】:我正在寻找(1) 使用 MVVM 模式 和 (2) 适合 WPF/Silverlight/MVVM 初学者的完整应用程序代码。到目前为止,我只发现:
Crack.NET - 运行时调试和脚本工具(有用但相当复杂) CipherText - WPF 密码管理器(完美但用 VB.NET 编写)还有哪些?
最好是使用 MVVM 但具有完整感觉的较小的辅助应用程序或工具,可能具有 WPF/Silverlight 图形/动画优点等,它们不仅显示正在使用的 MVVM 概念,而且显示在真实的上下文中-world,完成申请
我的贡献
感谢所有提示,我收集了 15 个以上 MVVM 代码示例的列表并发布在此处:
Overview of WPF/Silverlight code examples that help you learn MVVM.
【问题讨论】:
我认为这个问题的答案的缺乏确实说明了 MVVM 的一些东西......过度炒作,但在可证明的成功方面却很少?附言如果您查看 Blend(MVVM 的鼻祖),您会发现与大多数支持者吹捧的 MVVM 几乎没有什么相似之处... 【参考方案1】:我也将自己列为 MVVM 的初学者,现在已经开发了大约一个月的大型应用程序。我已经克服了大部分主要障碍,但还是被一些事情搞糊涂了。
小心肯特的建议。它们可以帮助您入门,但 Silverlight 和 WPF 中的细微差别偶尔会让您感到困惑(触发器就是其中之一)。
我不知道任何完整的站点,但我从 Composite Application Guidance 和 PRISM 库开始。这些对于“初学者”和只是 MVVM 来说有点过于繁琐,但其中一些概念非常有用(例如事件聚合器)。
我建议您阅读 Josh Twist、Josh Smith、Shaun Wildermuth 和 Nikhil Kothari 的博客。这些家伙知识渊博。他们也非常乐于回答问题。
您的开发背景是什么?一些围绕方法调用、响应和委托的概念与“传统的顺序”编码技术真正不同。
【讨论】:
感谢名字提示,我的背景主要是无状态网络编程,从未做过例如C++ 或 winforms,所以整个有状态/委托/事件模型 + .NET 3.5 + XAML/Binding/Commands/Routing/triggers/etc + MVP/MVVM 模式都是新概念,尽管他们决心通过它们,真正的应用程序有所帮助跨度> 我也来自 ASP.NET 后台,发现异步编程模型最难掌握。一开始,必须提出和订阅事件似乎需要大量额外的代码,但一两个月后它就变得非常有意义,并且有助于很好地隔离组件。更新现在很简单。【参考方案2】:鉴于这个问题,您可能会对当前为 M-V-VM 创建“Pet Shop”类型参考实现所做的工作感兴趣。您可以加入对话或关注进度here。
【讨论】:
【参考方案3】:在过去的几个月里,我一直在一个项目中使用 MVVM,这真是太棒了。我从事 UI 工作已经超过 12 年了,这是我遇到的最好的事情。
【讨论】:
我同意。 MVVM 确实是一种智能模式,并且让代码更新变得如此简单。 我正在处理的大部分长达一小时的 MVVM 示例我可以在大约 5 分钟内不使用 MVVM 并使用简单的代码完成,例如这个 prism 示例,20 多个类只是为了获取主/详细信息工作,福利什么时候开始生效? tanguay.info/web/index.php?pg=codeExamples&id=105 你可能看不到为 MVVM 做一个小时长的例子的好处。当然,您可以更快地完成一个快速演示——但这不是这个模式的意义所在。在 UI 与业务逻辑分离的大型项目中使用时,好处就显现出来了。【参考方案4】:我已经使用 MVVM 大约 2 年了,我可以说这是一个巨大的成功。我已经在 Silverlight 中使用 MVVM 发布了一个大型医学成像解决方案。我还将广泛使用 Prism 和 MVVM 发布一个复杂的 WPF 应用程序。事实上,在这个更新的应用程序中,如果没有 MVVM,我不知道如何优雅地解决一些问题。
+1 在 MVVM 上。有用。它是可测试的。它是可扩展的。它促进了开发人员-设计人员的工作流程。它也不必是杂乱无章和沉重的管道。
此外,我为 1 月份的 CodeMash 会议使用 MVVM 创建了一个中型 Silverlight 应用程序。您可以查看并获取source code here。
【讨论】:
【参考方案5】:试试this one。另外,Family.Show 可能有用。
【讨论】:
Family.Show 是在 WPF 还是 Avalon 的时候开始的,我们没有使用 MVVM 模式。【参考方案6】:WPF Disciples group 决定创建一个真实的 MVVM + Mediator 参考应用程序,类似于 Web 应用程序的 Pet Shop 参考应用程序。你可以关注codeplex的开发here
【讨论】:
以上是关于您知道任何使用 MVVM 的真实、有用的 WPF/Silverlight 应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章