我一直在从Windows Forms迁移到WPF,并且正在尝试利用Prism来满足应用程序面向插件的要求。
我的问题是似乎没有对它的支持。我也听说在某些情况下它非常漏水。由于我正在开发企业应用程序,这是不可接受的。
如果是这种情况,并且开始使用Prism是一个坏主意,有没有其他方法可以制作复合应用程序?我只能想到使用MEF。
答案 0 :(得分:6)
使用Prism,您可以选择使用Unity和/或MEF作为IoC / DI框架....它也是可扩展的...所以如果您愿意,可以插入不同的IoC容器。
泄漏的一些问题通常可归结为不以某种方式使用WPF,例如需要使用弱代理/弱事件模式等。
你可以使用MEF推出自己的插件框架,但你可能需要重新发明一些Prism已经为你做过的事情,例如:一个EventAggregator等
你可以选择一个替代框架,它们都有自己的优点和缺点。
还有另一种微软技术可以支持插件,即System.AddIn / Managed Add-in Framework(MAF)....但你必须加入更多的脚手架。
有人在这里提出了一个使用MEF的框架:
如果您想查看具有自己的可插拔/模块化架构的企业规模项目,请查看SharpDevelop的灵感。
....如果你真的想要的话,并没有超出可能性的范围来组合来自几个框架的最佳位。