2

我们有一个博客系统,我们出售给许多不同的客户(包括在许多不同的项目中)。该系统包括许多不同的文件——几个 aspx 页面、一个或两个 ascx 控件、一个 css 文件、一个 javascript 文件和一些 codebehind/vb.net 实用程序文件。一般来说,这个模块的 90% 以上在客户之间是相同的——但当然每个客户都想要一些定制——从装饰性的 html/css 更改到服务器/客户端逻辑调整。

目前,要将我们的博客系统部署到一个新项目,我们只需复制文件(从我们处理的上一个项目中)并根据需要自定义文件……但现在我们有 10 个独特且不兼容的博客系统副本。仅仅让博客系统在每个项目中工作需要相当多的时间——并且将改进从新的博客系统传播到旧的系统和维护是一个真正令人头疼的问题。

理想情况下,我们会有一个博客系统文件的“黄金副本”,用于一般 (90%) 案例。我们可以将那个黄金副本添加到一个新项目中,让一个博客系统几乎可以立即运行——但是我们可以根据需要添加或自定义文件。更好的是——随着我们对“黄金副本”的改进,这些更改可以轻松部署到我们所有的站点——同时尊重我们为客户所做的定制。

我知道我们可以添加新的 css 文件来更改基类并添加新的 vb.net 类来覆盖基本服务器端逻辑——但我真的不确定如何处理 aspx、ascx 和 js 文件。 理想情况下,我们可以找到基于文件或源代码安全的解决方案——例如,如果存在带有自定义的新文件,它将自动覆盖黄金文件中任何相应的标记/js/etc。 当然,我们对所有解决方案持开放态度——这似乎是一个很常见的场景,所以我希望有人能开发出“最佳实践”。我所描述的甚至可能吗?任何建议或方向都非常感谢 - 在此先感谢!

谢恩

4

1 回答 1

0

You could use your source control system and Visual Studio to do this, but it could get messy if your successful (many clients). If you took this approach, here’s how I would do it.

  1. Separate the code into 2 structures or Visual Studio projects. The common code (the 90% you mention) and the customized code (the other 10%).

  2. Create an initial structure or baseline in your source control system. This is the most generic version of the two code sets.

  3. Branch the customized portion of the code for each client.

  4. Branch the common code portion when you have bug fixes or other updates. Within Visual Studio you could either create 1 project and merge the directories or use 2 different projects combined under one solution.

Hope that helps.

于 2009-02-13T14:32:07.173 回答