【发布时间】:2012-08-29 07:39:45
【问题描述】:
我们的产品是一个基于网络的课程管理系统。我们有 10 多个客户,未来我们可能会获得更多客户。 (Asp.net,SQL Server)
目前,如果我们的一位客户需要额外的功能或定制业务逻辑,我们将更改数据库架构和代码以满足需求。
(我们只有一个分支代码库和一个数据库模式)
为了使更改不会影响彼此的路由,我们使用了一个客户端标志,该标志在 Web 配置文件中定义,因此这些额外的字段和业务逻辑仅适用于特定客户的系统。
if(ClientId = 'ABC')
{
//DO ABC Stuff
}
else
{
//Normal Route
}
我们的一位资深同事说,这样一来,像我们这样的小公司可以在支持多种资源上节省资源。
但我的感觉是,这种策略使我们的代码和数据库更难维护。
有人遇到过类似情况吗?你是怎么处理的?
更新:如果这不是 SO 的正确问题,有人可以将此问题移至适当的 stackexchange 站点吗?
更新2: 你说的对。代码现在变得很臭,我敢肯定迟早会成为一场噩梦。我公司在做产品,为了省力,后面给其他客户的产品都是在前一个的基础上做的。我知道理想的方法是将@e-j-brennan 开发团队分成两部分。一个团队致力于核心产品并使其高度可定制,而第二个团队致力于为特定客户进行定制。但是,既然我们公司这么小,那真是一个两难的境地。 :(
【问题讨论】:
标签: asp.net sql-server web-applications architecture