我目前正在使用Prism(CAL)开发一个WPF项目,我想知道在一个项目中同时使用Prism和MEF是一个好主意。
我会将Prism用于模块化,将MEF用于可扩展性。我的项目是类似绘画的应用程序,因此Prism将提供模块分离(工具箱,画布作为模块等),MEF将用于为新绘制的形状(即矩形,圆形......)提供可扩展点。
这是否有意义,或者我是否只能使用Prism获得类似的功能?
先致谢谢,并致以诚挚的问候, crischu
答案 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提供直接支持。
由于 格伦