是否可以(并且合理)在一个项目中使用MEF和Prism(CAL)?

时间:2009-07-28 12:52:28

标签: wpf prism mef

我目前正在使用Prism(CAL)开发一个WPF项目,我想知道在一个项目中同时使用Prism和MEF是一个好主意。

我会将Prism用于模块化,将MEF用于可扩展性。我的项目是类似绘画的应用程序,因此Prism将提供模块分离(工具箱,画布作为模块等),MEF将用于为新绘制的形状(即矩形,圆形......)提供可扩展点。

这是否有意义,或者我是否只能使用Prism获得类似的功能?

先致谢谢,并致以诚挚的问候, crischu

2 个答案:

答案 0 :(得分:2)

当然!这是一件非常合适的事情。

MEF看起来好像正在向.NET Framework发展,所以我认为这是一个非常好的方式来公开一个需要非常小(而且相对不变)依赖的插件表面区域(仅仅是在MEF上......并非所有对于你的插件作者而言,与Prism一起出现的其他内容。

由于它将出现在框架中,所以我会下注更多的人会比Prism更熟悉它。

答案 1 :(得分:2)

这样做是合理的,我们有几个客户这样做。 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提供直接支持。

由于 格伦