ASP.NET:创建同一网站的版本

时间:2010-07-05 20:58:56

标签: c# asp.net

我在工作中的新任务是创建现有Web应用程序的第二个版本。目前,我们的应用程序仅支持全职经纪人,但现在我们专门为兼职经纪人推出了第二个网站。

新网站与我们现有的网站几乎完全相同,但以下情况除外:

  • 它将拥有自己的品牌。
  • 用于显示信息的一些用户控件将有所不同(但不会有任何页面不同)。
  • 我们现有的用户不应该有权访问新网站,反之亦然。
  • 在Visual Studio中轻松测试两个版本的网站都很容易。
  • 我们希望尽可能多地重用现有代码。
  • 我有两周的时间来做这件事。

我希望这是一个常见的场景,并且有人对如何实现这一点有一些建议。

4 个答案:

答案 0 :(得分:4)

我真的,真的不建议分支项目或其他涉及复制基本相同代码的路线,但品牌和授权除外。从短期来看,它肯定会更容易,但正如你所说,将很快成为一个噩梦,试图保持几乎相同的代码库。

您的网页可以根据哪些控件显示基于谁登录或甚至全局设置来指示这是应用程序的兼职代理版本。您可以使用一组视图和轻量逻辑来处理兼职与全职经纪人。由于站点是单独部署的,因此配置设置很简单。如果您有同一网站的其他版本,则可能需要考虑一下以确保它可以与其他版本一起扩展。

我甚至可以使用相同的数据库,只要您可以使用基于声明(首选)或基于角色的授权或类似方法分离相应的数据。

所有这些都说,似乎没有任何理由让你不想使用相同的代码库。

答案 1 :(得分:1)

我会创建你的代码的一个分支,然后反对它。这当然假设您正在使用版本控制。你不是吗?

答案 2 :(得分:0)

我的第一个想法是

  1. 将整个源代码复制到另一个IIS网站
  2. 将数据库编写到另一个数据库(新网站的新开始)
  3. 对用户控件和品牌进行必要的调整
  4. 推出新网站(作为测试版)
  5. 在Visual Studio中,您可以在同一解决方案中创建一个新项目,以便您可以同时访问这两个项目。

    如果您正在使用版本控制...创建分支,并从那里开始自定义。

    这将为您做的是在两个站点之间进行明确的分离......没有用户可以跨站点访问,所有未来的自定义都将基于每个站点等等。

答案 3 :(得分:0)

虽然我真的很喜欢CaptainTom发布的另一个解决方案,那就是将应用程序的显示层与其余逻辑分开,并创建一个新项目,在共享其余代码的同时实现新的用户体验

即。一个FillTimeBrokers项目和一个PartTimeBrokers项目,它们都是从一个共同的Brokers项目中实现它们的逻辑。