定义插件命令(包括链接插件)[我已经阅读MEF先前的文章VS MAF VS DI等,他们不帮我具体的问题]净插件框架的选择,使
我要找编写一个可扩展的.Net应用程序(可能是控制台或Windoes服务)。这是一个通宵/时间表应用程序,用于从数据库中提取数据,对数据进行处理,然后将其输出(或传递给另一个系统)。
我不确定什么是为插件定义此过程的最佳方法。的组件包括:
- 任务 - 实际任务的定义,包含插件定义,和基于事件的标志上时运行(EOD,EOW,EOM)
- 源 - 的源数据(一个任务将有一个到多个来源),这可能是一个SQL查询/存储过程,Web服务或者一个文件。我看到这输出一个数据表。
- 后期处理 - 需要在源输出上完成的处理(一个任务将具有非到多个后处理步骤),这可能是一个聚合器或某种特定的处理。这会收到一个数据集(包含上一步中的数据表)。由于依赖关系,这些必须按特定顺序运行。
- 目标 - 最终的结果(也一对多),这可能是一个SQL语句/存储过程,一个专有的数据负载,电子邮件,输出文件或Web服务
为了简化它,我宁愿插件可以从配置文件读取,这意味着我不需要知道什么连接字符串(和其他细节)传递给插件。
我看过MEF,MAF,DI或者只是定义了我自己的框架。在这个阶段,我倾向于开发自己的产品,只是想知道我是否错过了什么?
我实际上想使用MEF,但是因为我需要定义我的任务(即任务链接指向哪个源链接到哪个PostProcess链接到哪个目标),并且也无法访问配置。我看到MEF Primatives和Type Catalogs让我成为其中的一部分,但似乎并没有帮助我链接插件。 MEF是一个有效的选择吗?
感谢您的答复。 MEF元数据看起来非常有趣,我可以看到它的用途。不过,我认为这不会解决我的问题。 – 2010-09-07 13:00:12
我希望能够使用不同的插件组合来定义任务,而无需编写任何代码。即Task1将Source1&Source2插入PreProcess1到Target1中,Task2将Source2插入PreProcess2插入Target1&Target2,Task3将Source3插入PreProcess2 Target2。但是任务定义“元数据”希望是某种配置,而不需要编译代码。我认为我需要在没有框架的情况下做到这一点,我仍然可以通过合同来做到这一点,至少可以使其具有可扩展性和可重用性。 – 2010-09-07 13:01:08