【问题标题】:How to build Customizable Apps in .Net?如何在 .Net 中构建可定制的应用程序?
【发布时间】:2011-05-17 21:28:38
【问题描述】:

我们正在构建一个 LOB 厚 WPF 客户端/WCF 服务器应用程序。我需要创建一个架构,允许客户端上的“可插拔”工作流,以促进每个客户灵活性的业务卖点。

然而,在 .Net 中,为每个客户修改和几乎每个被视为“可替换”的组件添加项目到解决方案中似乎是危险的,充其量是。

想到的替代方案是将所有类抽象为一个接口,并让配置通过正确的实现提供。

然后是后勤方面:例如,您如何在源代码控制中最好地管理这一点?

您可以分享哪些经验以及您知道哪些选择?

PS:我的目标不是可扩展性。我需要现有的功能是“可定制的”。诸如在向导中更改页面顺序之类的事情。我认为 Colin 的配置建议可能是最好的选择。但除此之外呢?

【问题讨论】:

  • 令人讨厌的是,有时只有在您发布问题后,相关问题才会出现。

标签: .net wpf architecture


【解决方案1】:

既然您似乎很清楚如何创建插件,我只是为您提供“后勤”部分的方法。为扩展点创建一个程序集,即接口插件必须实现,并将其作为主shell和varius插件之间的唯一公共引用。如果扩展机制增长,请尝试维护旧接口,以免破坏现有插件。

【讨论】:

    【解决方案2】:

    查看托管可扩展性框架:

    http://mef.codeplex.com/

    它允许您创建可插入的应用程序,其中扩展或添加功能到您的应用程序的程序集在运行时加载。

    这解决了为特定客户组装组件的问题。但是,听起来您希望在组件级别进行客户配置,而不仅仅是客户拥有哪些组件。

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

    (我目前正在开发一个应用程序,该应用程序被大约 400 个白标合作伙伴使用,每个合作伙伴都有自己的配置!)

    【讨论】:

    • 感谢科林的意见。我对每个客户的定制有同样的担忧。我将尝试旋转外壳以获得高“可配置性”。
    猜你喜欢
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 2013-02-18
    相关资源
    最近更新 更多