asp.net-mvc - 您如何设计需要为每个新客户定制的Web应用程序?

标签 asp.net-mvc language-agnostic design-patterns architecture

我的任务是为一家公司重写一个相当大的Web应用程序。此应用程序为我们目前拥有的3个客户提供了某些财务/风险分析。

这个应用程序的巨大问题在于每个客户端都是不同的,并且数据略有不同。他们都登录同一个网站,但是之后他们的经验可能会略有不同。他们的数据库架构是不一样的,有时它们的 View 必须不同以代表不同的数据,并且用户管理是一场噩梦。当用户登录到我们的网站时,我们需要从正确的数据库中提取数据(每个客户端都有自己的数据库)。

假设我们的客户是3家硬件公司:

  • Hackmans硬件
  • Lowes硬件
  • Franks硬件

  • Hackman的硬件可能有稍微不同的分析需求,或者在我们的报告中要求某些特殊的列。同样,Lowes Hardware可能希望对页面的安全访问权限与基于用户的其他公司相比略有不同。

    在功能上,Web应用程序对他们而言是相同的。对于要提供的信息,它具有相同的选项卡和相同的目标。但是它们之间存在细微的差异,我在封装时遇到了麻烦,这使代码变得一团糟。

    问题:处理需要为我们获得的每个新客户端进行修改的基本应用程序的最佳实践是什么?我们可以使用哪种架构/设计模式使添加新客户相对容易,尽管他们需要自定义,同时仍然尽可能地重复使用?我们如何保持代码库的整洁而不需要每个客户端进行黑客攻击?

    我们正在使用ASP.NET MVC进行此重写,但我不确定与该问题的相关性如何。

    最佳答案

    创建一个母版页,其中包含与每个客户端相同的所有信息。然后,添加每个客户端唯一的 View 和/或 Controller 。

    看看下面的链接。它说明了如何创建“应用程序 Controller ”,该抽象类可以被您的其他 Controller 继承,这样,您只需编写一次将所需的母版页数据插入 View 的代码即可。

    传递数据以查看母版页:
    http://www.asp.net/learn/MVC/tutorial-13-cs.aspx

    另外,请查看以下链接,该链接说明了如何在ASP.NET MVC中实现部分 View 和子 Controller :

    ASP.NET MVC中的部分请求
    http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

    关于asp.net-mvc - 您如何设计需要为每个新客户定制的Web应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/977517/

    相关文章:

    c# - 可扩展的.NET配置

    c# - 构建器模式 VS 我的实现

    c# - 使用身份MVC C#已存在使用身份用户名

    javascript - 如何将值从cshtml文件传递给JS

    algorithm - 给定数组和键,求其左右子数组中小于或等于自身的元素个数?

    language-agnostic - 当我定义函数时,我应该以什么顺序放置参数?

    javascript - 关于更改的 Jquery 文档 : can I use variable as selector?

    asp.net-mvc - 直接在 Controller 中从 ActionResult 获取结果

    language-agnostic - 哪些数据结构可以有效存储二维 "grid"数据?

    java - 覆盖同一工具的多个方法