为多个客户定制c#WinForm应用程序

dan*_*iax 5 c# dependency-injection mef autofac multi-tenant

想想这种情况:

我有ac#windows表单应用程序.这个应用程序对我的所有客户都是一样的.现在,其中一个需要修改添加新文本框和新逻辑的表单.

我显然不想复制我的应用程序,并且插入带有customer-Id的IF语句来控制逻辑可以很容易地驱动到意大利面条式的代码.

我认为在这种情况下我可以为每个客户创建一个单独的dll项目; 在里面我可以编写自定义表单实现与默认表单相同的接口(对于逻辑类也是如此)我可以尝试通过配置文件切换这些dll或使用正确的客户dll构建项目(或者使用例如Windsor Castle for DI ).

这是一个有效的模式吗?存在不同的方式?

更新

我试着列出:

Era*_*nga 1

如果您正在开发多租户应用程序,则有像Autofac这样的 DI 框架支持这种自定义。看看这篇文章

您还可以使用源代码控制系统来帮助您。当您需要自定义时,创建一个分支并在那里进行自定义,这样您就不必重复代码。