Kin*_*tor 9 language-agnostic architecture asp.net-mvc design-patterns
我的任务是为公司重写一个相当大的Web应用程序.此应用程序为我们目前拥有的3个客户提供某些财务/风险分析.
这个应用程序的一个巨大问题是每个客户端都不同,并且数据略有不同.他们都登录到同一个网站,但之后他们的经验会略有不同.他们的数据库模式不尽相同,偶尔他们的观点必须不同以表示不同的数据,他们的用户管理是一个复杂的噩梦.当用户登录我们的站点时,我们需要从正确的数据库中提取数据(每个客户端都有自己的数据).
说我们的客户是3家硬件公司:
Hackman的硬件可能有不同的分析需求或在我们的报告中请求某些特殊列.同样,Lowes Hardware可能希望对其页面的安全访问权限略有不同,然后根据其用户对其他公司进行安全访问.
从功能上讲,Web应用程序对他们来说是相同的.它具有相同的选项卡,并且在尝试呈现的信息方面具有相同的目标.但是它们之间存在微妙的差异,我在封装时遇到了麻烦,而且它使代码变得混乱.
问题:处理需要修改我们获得的每个新客户端的基础应用程序的最佳实践是什么?我们可以使用哪种架构/设计模式来增加新客户端,尽管他们需要进行自定义,同时仍然尽可能多地重新使用?如何在不需要每个客户端黑客的情况下保持我们的代码库清洁?
我们正在使用ASP.NET MVC进行重写,但我不确定这个问题的相关性.
您预计有多少潜在客户?如果答案是每年 2 个新客户,您的解决方案将与每年 200 个新客户不同。
首先,听起来需要一个主配置数据库(或文件)。您的应用程序可以使用此配置信息来确定所有可自定义的内容。之后,构建 UI 来添加客户端就相当容易了。
如果我这样做(我对你的项目知之甚少)......我会从创建一个“基本”客户端模型开始。所有新的客户端模型都将从这个基础派生,其中包含我的所有标准逻辑。对于现有的客户端来说,安装它们可能会很痛苦,但通过一系列包装函数和配置类,这是可以完成的。
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |