我已经从Windows Forms迁移到WPF,并试图利用Prism来满足应用程序面向插件的要求。
我的问题是似乎没有任何支持。我还听说在某些情况下它极易泄漏。在我正在开发企业应用程序时,这是 Not Acceptable 。
如果是这种情况,并且开始使用Prism是一个坏主意,那么是否有替代方法可以制作复合应用程序?我唯一想到的就是使用MEF。
最佳答案
使用Prism,您可以选择将Unity和/或MEF用作IoC/DI框架...。它也具有相当的可扩展性,因此您可以根据需要插入不同的IoC容器。
泄漏的一些问题通常可以归结为以某种方式不使用WPF,例如需要使用弱委托(delegate)/弱事件模式等。
您可以使用MEF推出自己的插件框架,但是您可能需要重新发明Prism已经为您完成的一些事情。 EventAggregator等
您可以选择一个替代框架,它们都有各自的优缺点。
Microsoft还有另一种支持插件的技术,即System.AddIn/Managed Add-in Framework(MAF)....但是您必须增加一些支架。
有人在这里提出了使用MEF的框架:
如果要查看具有其自身非常可插拔/模块化体系结构的Enterprise规模项目,请查看SharpDevelop以获得灵感。
....并且,如果您真的想要,将来自多个框架的最佳部分组合在一起也不是没有可能。
关于wpf - Prism -不好用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12143488/