我已经从Windows Forms迁移到WPF,并试图利用Prism来满足应用程序面向插件的要求。

我的问题是似乎没有任何支持。我还听说在某些情况下它极易泄漏。在我正在开发企业应用程序时,这是 Not Acceptable 。

如果是这种情况,并且开始使用Prism是一个坏主意,那么是否有替代方法可以制作复合应用程序?我唯一想到的就是使用MEF。

最佳答案

使用Prism,您可以选择将Unity和/或MEF用作IoC/DI框架...。它也具有相当的可扩展性,因此您可以根据需要插入不同的IoC容器。

泄漏的一些问题通常可以归结为以某种方式不使用WPF,例如需要使用弱委托(delegate)/弱事件模式等。

您可以使用MEF推出自己的插件框架,但是您可能需要重新发明Prism已经为您完成的一些事情。 EventAggregator等

您可以选择一个替代框架,它们都有各自的优缺点。

  • Alternatives to Prism + MEF for modular MVVM apps

  • Microsoft还有另一种支持插件的技术,即System.AddIn/Managed Add-in Framework(MAF)....但是您必须增加一些支架。
  • http://www.matthidinger.com/archive/2008/10/12/managed-addin-framework-system.addin-with-wpf.aspx

  • 有人在这里提出了使用MEF的框架:
  • http://www.codeproject.com/Articles/43625/Building-an-Extensible-Application-with-MEF-WPF-an

  • 如果要查看具有其自身非常可插拔/模块化体系结构的Enterprise规模项目,请查看SharpDevelop以获得灵感。
  • http://www.icsharpcode.net/OpenSource/SD/

  • ....并且,如果您真的想要,将来自多个框架的最佳部分组合在一起也不是没有可能。

    关于wpf - Prism -不好用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12143488/

    10-16 19:02