我的应用程序应该是可扩展的。为了满足我自己的需求,我实现了一些服务。这些服务是基于IoC/DI原则的。因此,服务封装了应用程序的概念。
对于exsample,有一个IApplicationService。ApplicationService显示有关当前执行应用程序的信息。有指定的AssemblyInfo等等。另一个示例是INavigationService(请参阅示例中的mef.codeplexcom )。此服务提供一些属性,其中包含有关指定的当前选定项的信息以及一些事件。
我认为,“服务方法”是最简单的,并且简化了应用程序的扩展点。因此,我不确定这是否真的是最好的方法。你认为如何?你如何在像addins/addons/plugins这样的应用程序中实现“扩展点”呢?
提前感谢您的回复!对不起,我的英语很差。;)
发布于 2010-07-25 21:49:37
您熟悉MEF (托管扩展框架)吗?
托管可扩展性框架(简称MEF )简化了可扩展应用程序的创建。MEF提供了发现和组合功能,您可以利用它们来加载应用程序扩展。
发布于 2010-07-25 21:50:20
你真的需要看看MEF --托管扩展框架。
这是一个很棒的新框架,微软自己在Visual Studio2010中使用了它的可扩展性故事。伟大且易于使用-当你可以使用成千上万的开发人员很快就会使用的东西时,为什么要重新发明轮子呢?
发布于 2010-07-25 22:09:33
是的,我对MEF很熟悉。我也使用了MEF的概念,但有一些缺点。我的应用程序类似于IoC/DI,与MEF一起使用有点复杂。MEF不是真正的DI容器,所以要将MEF与其他DI容器一起使用(例如,ninject,unity,...)很难实现这一点。我不会将MEF与其他DI容器一起使用。因此,将MEF与其他DI容器混合在一起并不是很好。
我希望你能理解我的担忧。
另外:在MEF中不能将扩展加载到AppDomain中。所以这是为了我的需求不好。System.AddIn或MAF支持这一点,但我不会使用System.AddIn,因为它非常重...
https://stackoverflow.com/questions/3329399
复制相似问题