我们正在构建LOB Thick WPF Client / WCF Server应用程序。我需要创建一个允许客户端“可插拔”工作流的架构,以促进每个客户灵活性的业务卖点。
在.Net中,为每个客户修改添加项目以及几乎所有被视为“可替换”的组件似乎都是危险的。
想到的另一种选择是将所有类抽象为接口,并让配置通过正确的实现提供。
然后是逻辑视角:例如,如何在源代码管理中最好地管理它?
您可以分享哪些经验以及您知道哪些选项?
PS:我并不是真正想要扩展性。我需要现有功能“可自定义”。比如在向导中更改页面顺序。我认为科林的配置建议可能是最好的选择。但除此之外?
答案 0 :(得分:1)
因为看起来很清楚你对如何创建插件有所了解,所以我只想给你“物流”部分。为扩展点创建程序集,即接口插件必须实现,并将其作为主shell和varius插件之间的唯一公共引用。如果扩展机制增长,请尝试保留旧接口,这样就不会破坏现有插件。
答案 1 :(得分:0)
查看Managed Extensibility Framework:
它允许您创建可插拔应用程序,其中扩展或向应用程序添加功能的程序集在运行时加载。
这解决了为特定客户组装组件的问题。但是,听起来您希望在组件级别上进行客户配置,而不仅仅是客户拥有哪些组件。
我不建议您在项目中使用客户特定代码,这在代码量和可测试性方面都会变得无法管理。相反,从第一天开始构建配置。换句话说,对于每个组件都有许多配置参数,可用于为每个客户定制它。
(我目前正致力于一个由约400个白标合作伙伴使用的应用程序,每个合作伙伴都有自己的配置!)