我的模拟应用程序将使用插件为模拟数据的存储提供模拟算法和数据结构。该应用程序由两部分组成。首先是提供UI的主机应用程序(作为WPF UI或作为CAD应用程序的插件)。此应用程序处理与用户的所有交互,但不执行任何模拟计算,也不存储任何模拟数据。第二部分是执行模拟计算的数据应用程序。数据应用程序没有任何方式让用户直接与它进行交互,所有输入都是通过与主机的连接提供的(如果两者都在同一台机器上,则通过命名管道提供,如果它们在不同的机器上,则通过TCP提供)。这种方法允许通过具有多个数据应用程序的单个主机进行分布式计算。
数据应用程序通过一个或多个插件提供数据存储方法,模拟算法等,以便轻松添加新功能。为了实现这一目标,计划是:
为了实现这一切,我认为我必须:
我想做尽可能少的工作,所以我看了一些可用的.NET插件系统。从它的外观来看,MEF似乎是最有希望的候选者。我已经阅读了MEF的架构和能力,但我仍然有点不知道我应该把注意力集中在哪里。所以我的问题是MEF的哪些部分必须定制才能使MEF按照我的计划方法工作?