我们有一个网站应用程序,可为特定客户存储数据和图片。我们即将发布相同的应用程序供其他客户使用。第二个应用程序最终将为第二个客户定制。最终,我们希望有几个客户使用他们自己的应用程序版本。
我们在 Visual Studio 2012 中使用 ASP.NET。我们应该:
- 克隆现有应用程序并维护单独的代码库?
- 将项目添加到新客户的现有解决方案中?
我们已经寻找答案,但这似乎是一种罕见的情况。
谢谢。
我们有一个网站应用程序,可为特定客户存储数据和图片。我们即将发布相同的应用程序供其他客户使用。第二个应用程序最终将为第二个客户定制。最终,我们希望有几个客户使用他们自己的应用程序版本。
我们在 Visual Studio 2012 中使用 ASP.NET。我们应该:
我们已经寻找答案,但这似乎是一种罕见的情况。
谢谢。
我不认为它是罕见的。SAP 和 Maximo 使用这种商业模式。相同的核心,但每个包都根据客户的规格定制。我已经用我们拥有的一些程序做到了这一点(规模要小得多)。
我们总是开始一个新项目,而不仅仅是复制旧项目。不知道引用旧客户的旧客户中有什么。当您忘记的“关于”窗口是给别人的公司时,有点尴尬。
所有可定制的代码、表单、报告都应该在该客户的项目中。所有标准的代码、表格、报告都应该在一个库中。
这实际上取决于应用程序的范围。我不得不在我工作的公司内部做这件事;我为一家公司编写了一个解决方案,然后姊妹公司发现并想要相同的解决方案,不得不在那里实施。
我有一个相当小的项目要处理,所以很容易让它通用(同时也让事情源于相同的代码库)。我所做的只是:
appSettings
或类似。connectionStrings
appSettings
值当谈到独特的业务逻辑时,我有幸使用 *.config 迁移(我收集的大部分数据来自公司本地服务的 WCF 端点)——所以我很幸运。但是,您可以在应用程序中创建通用接口,然后将每个公司的实现分解到单独的库中。