我们有一个博客系统,我们销售给许多不同的客户(包括在许多不同的项目中)。该系统包括许多不同的文件 - 一些aspx页面,一个或两个ascx控件,一个css文件,一个javascript文件和一些codebehind / vb.net实用程序文件。一般来说,这个模块的90 +%在客户之间是相同的 - 但当然每个客户都需要一些定制 - 从化妆品html / css更改到服务器/客户端逻辑调整。
目前,要将我们的博客系统部署到新项目,我们只需复制文件(从我们上一个项目开始)并根据需要自定义文件......但现在我们有10个独特且不兼容的博客系统副本。只是让博客系统在每个项目中运行需要相当长的时间 - 并且将改进从较新的博客系统扩展到旧系统并进行维护是一件非常令人头疼的问题。
理想情况下,我们的博客系统文件只有一个“黄金副本”,可以满足一般(90%)的需求。我们可以将这个黄金副本添加到一个新项目中并使博客系统几乎立即工作 - 但是我们可以根据需要添加或自定义文件。更好的是 - 随着我们对“黄金副本”进行改进,这些更改可以轻松部署到我们所有的网站 - 同时尊重我们为客户所做的自定义。
我知道我们可以添加新的css文件来更改基类并添加覆盖基本服务器端逻辑的新vb.net类 - 但我真的不确定如何处理aspx,ascx和js文件。 理想情况下,我们可以找到基于文件或源安全的解决方案 - 例如,如果存在自定义的新文件,它将自动覆盖黄金文件中的任何相应标记/ js /等。当然我们是开放的所有的解决方案 - 这似乎是一个非常常见的场景,所以我希望有人能够开发出“最佳实践”。我所描述的甚至可能吗?任何建议或方向都非常感谢 - 提前感谢!
Shane
答案 0 :(得分:0)
您可以使用源代码管理系统和Visual Studio来执行此操作,但如果您的成功(许多客户端),它可能会变得混乱。如果采用这种方法,我就是这样做的。
将代码分成2个结构 或Visual Studio项目。该 常用代码(你提到的90%) 和自定义代码(另一个 10%)。
创建初始结构或 你的基线 源控制系统。这是 两个代码的最通用版本 集。
对自定义部分进行分支 每个客户的代码。
分支公共代码部分时 你有错误修复或其他更新。 在Visual Studio中你可以 创建1个项目并合并 目录或使用2个不同的 项目合并在一个解决方案之下。
希望有所帮助。