我目前正在使用 Prism (CAL) 进行 WPF 项目,我想知道在一个项目中同时使用 Prism 和 MEF 是否是个好主意。
我会使用 Prism 来实现模块化,使用 MEF 来实现可扩展性。我的项目是一个类似绘画的应用程序,因此 Prism 将提供模块分离(工具箱、画布作为模块等),MEF 将用于为要绘制的新形状(即矩形、圆形......)提供可扩展点。
这有意义吗,或者我可以仅使用 Prism 获得类似的功能吗?
在此先感谢和最好的问候,crischu
当然!这是非常合适的做法。
MEF 看起来正朝着 .NET Framework 前进,所以我想说这是一种非常好的方法来公开需要非常小(且相对不变)依赖的插件表面区域(仅在 MEF 上......不是所有其他的Prism 附带的东西)供您的插件作者使用。
由于它将在框架中,我敢打赌,与 Prism 相比,更多人会熟悉它。
这样做是合理的,我们有几个客户在这样做。MEF 是 .NET Framework 4.0 的一部分,也是 Silverlight 的下一个版本。我们目前在 Codeplex 上为 .NET 3.5 提供 MEF。
就 Prism 和 MEF 而言,此时的挑战是您需要编写一堆代码,因为 Prism 还没有实现与 MEF 对话所需的服务
一种选择是使用我们在 MEF Contrib (mefcontrib.codeplex.com) 中的 MEF/Unity 集成层。它使 Unity 和 MEF 能够相互对话,因此您可以通过 Unity 桥将现有的 Prism 源与 MEF 一起使用。
我们正在与 p&p 合作,以直接支持 MEF。
谢谢格伦