Prism MVVM高级建模建议

4
我正在开始对一个用于控制现金收款终端的现有应用程序进行建模。我对Prism/复合应用程序库非常陌生,希望能得到一些关于如何使用Prism库开始建模此应用程序的建议。
基本上,该应用程序管理一个现金终端,接受频繁的现金存款,计算存款中的纸币数量,通过3G/Edge连接与我们的中央服务器通信以复制存款和其他数据,并执行现金结算。所有这些都是以现金盒的管理为中心。该应用程序不需要大量的用户界面,但我们正在从WinForms转向WPF,并且我应该在今后的所有开发中使用这个框架。
1个回答

14

Prism 是一种应用程序组合框架,其最基本的核心是模块化你的应用程序。你需要开始考虑哪些部分需要被模块化。

一个模块是一个独立有用的功能单元,如果它被替换或删除,应用程序也不会变得无用。例如,在我为工作编写的应用程序中,我们处理两种不同类型的联系人案件。我们为每个联系人类型都有一个模块,为该联系人类型贡献特定的功能。即使缺少其中一个模块,该应用程序仍然可用,这样我们可以单独地测试每个组件以及它们的整体运行情况。

希望这能为你提供一种建模应用程序的指南。Prism 看起来很复杂,但理解到它真正提供的是将应用程序切片的能力,从高层次上看,这可能是你更感兴趣的建模内容。


一个好的概述加1分。我想强调的是,模块可能是应用程序运行所必需的,但仍然可以被视为“模块” - 有时,应用程序可能需要一些功能,但可以从模块A或模块B中获取,但至少其中之一必须存在才能使其正常运行。在这种情况下,Prism表现得非常出色。 - Matt Jordan
@Matt Jordan:这就是为什么我加了“或替换”的警告的原因 :) - Anderson Imes
@Matt Jordan:另外……漂亮的曼德博集合 :) - Anderson Imes
你是否考虑过在 Silverlight 4.0 中使用 MEF 作为 Prism 的潜在替代方案,特别是在组合场景中?它支持大多数的功能 OOB,并且具有利用技术而非框架的额外优势。 - Abhinav Gujjar
2
@zync 我已经评估过了。它绝对是可以用来取代 RegionManager 的东西。但是它并不能替代 EventAggregator。这不是什么大问题,但是需要考虑一下。最新版本的 Prism(4.0)有一个使用 MEF 而不是 Unity 的 Bootstrapper... 这绝对是我在新项目中采用的方式。我认为它在 WPF 和 Silverlight 中的用途是相同的。 - Anderson Imes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接