我的公司目前正在使用 C# 创建大型多层软件包。我们对该结构采用了 SOA 方法,我想知道是否有人对如何使具有编程知识的用户可以扩展它有任何建议。
这将涉及两个过程:生产系统管理员批准允许使用特定插件,以及实际插件架构本身。
我们希望允许用户编写脚本来执行常见任务、修改用户界面的布局(用 WPF 编写)并添加新功能(即允许表格数据绘制图表)。有没有人对如何实现这个有任何建议,或者知道从哪里可以获得做这种事情的知识?
我认为这将是发布具有限制性分发许可的开源软件的完美极端情况,但是,我并不热衷于允许竞争对手访问我们的源代码。
谢谢。
编辑:我想我只是澄清一下,解释为什么我选择了我所做的答案。我指的是我公司外部的生产管理员(即客户),让他们以某种方式以更简单的方式自动化/编写脚本,而不需要他们完全了解 c#(他们大多是编程能力有限的最终用户经验)——我考虑的更多是 DSL。这可能是一个遥不可及的目标,而托管可扩展性框架似乎提供了迄今为止最好的折衷方案。
最佳答案
只需使用接口(interface)。定义一个每个插件都必须实现的 IPlugin,并使用定义良好的消息传递层来允许插件在主程序中进行更改。您可能想看看像 Mediaportal 或 Meedios 这样严重依赖用户插件的程序。
关于c# - 无需开源的可扩展性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/677150/