棱镜 - 使用它是个坏主意吗?

5

我一直在从Windows Forms迁移到WPF,并尝试利用Prism来满足应用程序的插件定向需求。

我的问题是似乎没有官方支持。我也听说过在某些情况下它非常容易泄漏。因为我正在开发企业应用程序,所以这是不可接受的。

如果情况如此,并且开始使用Prism是一个不好的想法,是否有任何替代方法来制作复合应用程序?我唯一能想到的就是单独使用MEF。


您可以考虑研究一下Caliburn.Micro。它比Prism更轻便,但是在插件功能的组合部分表现得非常出色。 - Dan Bryant
1个回答

6
使用Prism,您可以选择使用Unity和/或MEF作为IoC / DI框架......它也非常可扩展......因此,如果您希望,可以插入不同的IoC容器。
泄漏问题通常可以归结为未以某种方式使用WPF,例如需要使用弱委托/弱事件模式等。
您可以使用MEF自己编写插件框架,但您可能需要重新发明一些Prism已经为您做的事情,例如EventAggregator等。
您可以选择另一种框架,它们都有各自的优点和缺点。 还有另一种面向支持插件的Microsoft技术,即System.AddIn / Managed Add-in Framework(MAF)......但您需要添加一些脚手架。

有人提出了一个使用MEF的框架,详情请见:

如果你想查看一个具有自己非常可插拔/模块化架构的企业级项目,那么可以参考SharpDevelop以获取灵感。

如果你真的想要,把几个框架中最好的部分结合起来并不是不可能的。


谢谢您提供的信息。我可能最终会自己做一个框架,借鉴一些这些想法。 - TrialAndError
如果你想看一下一个具有可插拔/模块化架构的企业级项目,那么寻找SharpDevelop作为灵感是再好不过的选择了。请问您是否意思是“you could do worse”呢?因为当前的句子听起来似乎在说SharpDevelop是最差的选择… - Dean Kuga

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