【问题标题】:How do you reuse html/js/server side code between asp.net projects?如何在 asp.net 项目之间重用 html/js/server 端代码?
【发布时间】:2009-02-12 17:31:05
【问题描述】:

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

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

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

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

肖恩

【问题讨论】:

    标签: asp.net version-control visual-sourcesafe code-reuse


    【解决方案1】:

    您可以使用源代码控制系统和 Visual Studio 来执行此操作,但如果您成功(许多客户),它可能会变得一团糟。如果你采用这种方法,我会这样做。

    1. 将代码分成 2 个结构 或 Visual Studio 项目。这 通用代码(你提到的 90%) 和自定义代码(其他 10%)。

    2. 创建初始结构或 你的基线 源代码控制系统。这是 两个代码的最通用版本 套。

    3. 分支自定义部分 每个客户端的代码。

    4. 在以下情况下对公共代码部分进行分支 您有错误修复或其他更新。 在 Visual Studio 中,您可以 创建 1 个项目并合并 目录或使用 2 个不同的 项目合并在一个解决方案下。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多