多个客户端应该有一个项目副本,或者每个客户端都有自己的副本?

时间:2012-02-03 04:32:03

标签: asp.net architecture web-application-design

我有使用多个客户端的Web应用程序。 我应该为所有客户创建一个应用程序副本,或者每个客户端都应该有自己的副本。

我使用的是Asp.net MVC和SQLServer。 你的建议。

2 个答案:

答案 0 :(得分:6)

为每个客户创建单独的项目将很难维护,而所有客户的单个项目可能难以定制。这很好,您的需求将决定您如何构建解决方案。

我最近的一个项目是SAS(软件即服务),我们能够使用插件架构构建我们的MVC应用程序,以便每个客户端都可以将自己的DLL部署到BIN,从而实现自定义该客户端(视图,资产甚至控制器)。我们能够利用单个代码库并拥有许多客户端,大多数客户端没有自定义,有些客户端具有轻微到大量的自定义。

每个客户的“门户网站”都有唯一的网址,并且通常都有私有域名,因此http://app.mycompany.comhttp://mycompanyapp.com甚至还有一些网站托管在我们自己的网站http://hostingcompany.com/client/上。

通过构建一个可以根据URL确定客户端的应用程序,我们可以轻松处理所有这些情况。部署时,我们只有一个代码库(仅将ONCE部署到单个文件夹),并且所有站点都使用相同的代码部署。

我们运行一个Web场,我们有许多.NET Web服务器并具有负载平衡设置,并且所有站点都有ping页面,我们的负载均衡器与之交互以确定其健康状况。

就像我说的,您的需求将决定最适合您的解决方案。

答案 1 :(得分:0)

Nick,对于数据库应该如何在每个客户端使用一个数据库,或者在我的场景中每个客户端应该有单独的数据库,我们的应用程序更加以数据库为中心,因此根据业务角色为每个客户端进行了大量更改。