我目前需要提供一种在我的应用程序中添加可扩展性的方法。我现在正在看MEF和MAF。
MEF提供了一种更简单的编程模型,并且更适合我们的使用场景,因为我们只想将插件加载到单个AppDomain中 - 这是由于系统的架构方式。使用少量代码行的MAF也可以实现同样的目的。
但是,我想知道MEF是否应该用于生产系统,因为它是预览状态?
答案 0 :(得分:5)
MEF经历了几次迭代,我认为它现在非常接近稳定的API(可能除了Silverlight支持之外)。请记住,MEF将成为.NET 4.0的一部分,而VS2010将使用MEF作为其可扩展性模型,因此在这个后期阶段对API进行大幅改变存在很大的阻碍。
FWIW,我对MEF的稳定性没有任何问题,并且在生产系统中不会发现使用它的问题。只需对待任何其他开源组件一样小心。
答案 1 :(得分:2)
我目前正在编写一个基于MEF的“真实”应用程序。我的第一步是构建一个通用的可扩展应用程序框架(具有可扩展的菜单,工具栏,状态栏,可停靠的窗口等)。我们开源为SoapBox Core。我还发布了一个demo来解释它是如何工作的。
我当然认为它已准备好用于实际应用程序。
答案 2 :(得分:0)
我认为您不必担心MEF的新版本或更改。 MEF是一个库程序集。在生产应用程序中,您可以将MEF库添加到项目中,并始终将程序集复制到本地部署目标。通过这种方式,您的生产应用程序将保留该版本。
我使用过很多开源库。只要您将库文件放在部署应用程序的同一文件夹中,您就可以了。最好获取原始开源项目的源代码或将其添加到您的解决方案中。如果您需要调试到库中,它将对您有所帮助。