2011-05-17 61 views
0

我们正在构建一个LOB厚的WPF客户端/ WCF服务器应用程序。我需要创建一个允许客户端“可插拔”工作流程的架构,以便为每位客户提供灵活性的业务卖点。如何在.Net中构建可自定义的应用程序?

但是,在.Net中,为每个客户修改解决方案以及几乎每个被视为“可替换”的组件都增加项目似乎很危险。

想到的另一种方法是将所有类抽象为接口并让配置通过正确的实现进行馈送。

然后是逻辑上的观点:例如,你如何最好地管理源代码管理?

您可以分享什么体验以及您知道哪些选项?

PS:我并不是真正想要扩展性。我需要现有的功能是“可定制的”。比如改变向导中的页面顺序。我认为科林的配置建议可能是最好的选择。但除此之外呢?

+0

它烦人有时只有当你发布一个问题好相关的显示。 – 2011-05-17 08:51:48

回答

0

看看托管扩展框架:

http://mef.codeplex.com/

它允许你创造一个扩展或您的应用程序添加功能组件在运行时加载可插拔的应用。

这解决了为特定客户组装组件的问题。然而,这听起来像你想要在组件级别进行客户配置,而不仅仅是客户拥有哪些组件。

我不会推荐在您的项目中使用客户特定的代码,这将在代码量和可测试性方面随着时间的推移变得难以管理。相反,从第一天开始建立配置。换句话说,每个组件都有许多配置参数,可以用来为每个客户量身定制。

(我目前正在使用由〜400个白标合作伙伴的应用程序的工作,每一个都有自己的配置!)

+0

感谢您的输入Colin。我对每个客户端定制都有同样的担忧。我会试着将案例转化为高度“可配置性”。 – 2011-05-17 13:20:38

1

因为它似乎很清楚,你对如何创建插件的想法,我只是给你是我的“逻辑”部分。创建扩展点的程序集,即插件必须实现的接口,并将其作为主外壳和varius插件之间唯一的通用引用。如果扩展机制增长,请尝试保留旧界面,以免破坏现有插件。

+0

听起来很不错,谢谢。 – 2011-05-17 13:18:19

相关问题