lau*_*cer 3 .net c# plugins extensibility
我公司目前正在用C#创建一个大型的多层软件包.我们已经对结构采用了SOA方法,我想知道是否有人对如何使具有编程知识的用户可扩展它有任何建议.
这将涉及双重过程:生产系统的管理员批准以允许使用特定插件,以及实际的插件体系结构本身.
我们希望允许用户编写脚本来执行常见任务,修改用户界面的布局(用WPF编写)并添加新功能(即允许列表制表数据).有没有人有任何关于如何实现这一点的建议,或者知道在哪里可以获得知识来做这种事情?
我认为这对于发布带有限制性许可证的软件开源来说是完美的角落,但是,我并不热衷于允许竞争对象访问我们的源代码.
谢谢.
编辑:以为我只是澄清解释为什么我选择了我做的答案.我指的是我公司外部的生产管理员(即客户端),并且让他们以更简单的方式自动化/编写脚本,而不需要他们完全了解c#(他们主要是编程有限的最终用户)经验) - 我更多地考虑DSL.这可能是一个遥不可及的目标,Managed Extensibility Framework似乎提供了迄今为止最好的折衷方案.
只需使用接口.定义每个插件必须实现的IPlugin,并使用定义良好的消息传递层允许插件在主程序中进行更改.您可能希望查看像Mediaportal或Meedios这样严重依赖用户插件的程序.
正如史蒂夫所提到的,使用接口可能就是要走的路.您需要设计您希望客户端使用的接口集,设计插件的入口点以及插件通信模型.除了Steve的建议,您可能还想看一下Eclipse项目.他们有一个非常明确的插件架构,即使它是用java编写的,也许值得一看.
另一种方法可能是设计可用于脚本语言的API.无论 IronPython的和嘘是用C#以及工作动态脚本语言.通过这种方法,您的客户可以编写脚本来与您的应用程序进行交互并扩展您 与完整的插件系统相比,这种方法更像是轻量级解决方案.
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |