带有 Prism 4 的新 LOB Silverlight 4(mvvm、mef、unity)

Posted

技术标签:

【中文标题】带有 Prism 4 的新 LOB Silverlight 4(mvvm、mef、unity)【英文标题】:New LOB Silverlight 4 with Prism 4 (mvvm, mef, unity) 【发布时间】:2011-05-03 17:17:27 【问题描述】:

我正在使用 Silverlight v4 和 WCF Ria 服务启动一个新的 LOB 应用程序。这个想法是使用 Prism v4,它包括 MVVM、MEF 和 Unity。

我可以将所有这些“技术”一起使用:可以想象哪种架构场景?

编写一个框架来构建这种可重用的应用程序是否有意义?也许已经作为示例应用程序存在?

(在 Prism v4 中有很多示例项目,但没有一个包含所有“技术”)

提前致谢。

【问题讨论】:

【参考方案1】:

好吧,请记住MEF won't be officially part of Prism until version 4.0 已发布(它现在在 CTP 中),但它们绝对可以一起使用。另一方面,MVVM 严格来说并不是 Prism 的一部分:可以使用 Prism 和 MVVM,但也可以使用 Prism 而不使用 MVVM,反之亦然。

当您构建 Prism 应用程序时,为可重用的东西创建单独的模块总是一个好主意。例如,如果您的应用程序通常解析 XML,您可以创建一个 Prism 模块来处理它,然后重新使用它。

此外,明智地利用 Prism 基础设施项目并将实用程序放置在其中,这些实用程序不够大,不值得拥有自己的模块,但可重复使用以用于其他项目,这始终是一个好主意。

要找到一个可以充分利用 Prism 的项目并不容易,主要是因为 Prism 并不是要被单个项目充分利用。 Prism 就像一个方法菜单,您可以从该菜单中挑选那些有助于您更好、更高效地构建项目的方法。

特别注意 Prism 中的EventAggregator,它将为您提供应用范围内的事件广播功能。

Prism 其他需要仔细研究的重要部分是 UI Composition:RegionManager、RegionContext 和 Regions。

当您计划使用 MVVM 时,请确保充分了解 Data Binding 在 Silverlight 中的工作原理,查看 converters 并深入了解 Commands 以及如何使用和绑定它们并确保您查看 Prism 的 DelegateCommand。

为了保持您的 UI 可重用和“可组合”,请确保使用 custom controls 和 behaviors 封装 UI 逻辑,而不是在您的视图中编写代码隐藏。

我希望这个介绍能有所帮助。您的问题相当笼统,因此很难确定您是否已经了解所有这些事情。如果您需要除此之外的具体信息,请澄清。

【讨论】:

从引用的版本 (V4) 开始,Prism 现在确实包含 MEF。 @enough-already,你是对的,我已经更新了我的答案以反映这一点。

以上是关于带有 Prism 4 的新 LOB Silverlight 4(mvvm、mef、unity)的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms/Prism 8 - 带有 NavigationPage 导航的 TabbedPage 无法正常工作

Prism:通过事件关闭对话

Lob 使用 play 框架和 Ebean 和 H2 返回 null

Xamarin Master Detail prism 导航栏后退按钮

禁用上下文 LOB 创建作为 createClob() 方法引发错误

使用 Prism 的 Wpf 中模块之间的 ApplicationCommands 问题