多个客户应该有一份项目副本还是每个客户都有自己的副本?
我有使用多个客户端的网络应用程序。 我应该为所有客户创建一份应用程序副本,或者每个客户都应该有自己的副本。
我正在使用 Asp.net MVC 和 SQLServer。 你建议什么。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有使用多个客户端的网络应用程序。 我应该为所有客户创建一份应用程序副本,或者每个客户都应该有自己的副本。
我正在使用 Asp.net MVC 和 SQLServer。 你建议什么。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
为每个客户创建单独的项目将很难维护,而为所有客户创建一个项目可能很难定制。这是一条很好的界限,您的需求将决定您如何构建解决方案。
我最近的一个项目是 SAS(软件即服务),我们能够使用插件架构构建我们的 MVC 应用程序,以便每个客户端都可以将自己的 DLL 部署到 BIN,从而仅针对该客户端进行自定义(视图、资产甚至控制器)。我们能够利用单一代码库并拥有许多客户,其中大多数没有定制,有些则进行了轻微到大量的定制。
每个客户的“门户”都有一个唯一的 URL,并且大多数情况下他们都有私有域,因此 http://app.mycompany.com 或 http://mycompanyapp.com,有些甚至托管在我们自己的网站上,http://hostingcompany.com/client/。
通过构建一个可以根据 URL 确定客户端的应用程序,我们能够轻松处理所有这些情况。当我们部署时,我们有一个代码库(仅部署到一个文件夹一次),并且所有站点都使用相同的代码部署。
我们运行一个网络场,其中有许多 .NET Web 服务器并具有负载平衡设置,并且所有站点都有 ping 页面,我们的负载平衡器与这些页面交互以确定其运行状况。
就像我说的,您的需求将决定最适合您的解决方案。
Creating seperate projects per client will be troublesome to maintain while a single project for all clients could be difficult to customize. It is a fine line and your needs will dictate how you build your solution.
One of my more recent projects where we do SAS (Software as a Service) we were able to build our MVC application using a plugin architecture so that each client COULD have their own DLL deployed to the BIN that would enable customizations for just that client (to the Views, Assets or even the Controllers). We are able to leverage a single code base and have many clients, most without customizations and some with minor to heavy customizations.
Every client has a unique URL for their "portal" and most often they have private domains, so http://app.mycompany.com or http://mycompanyapp.com and some are even hosted on our own site, http://hostingcompany.com/client/.
By building an application that can determine what client it is based on the URL we were able to handle all of these cases with ease. When we deploy we have a single code base (deployed just ONCE to a single folder) and all of the sites use that same code deployment.
We run a web farm where we have many .NET Web Servers and have load balancing setup and the sites all have ping pages that our load balancers interact with to determine their health.
Like I said, your needs will determine what the best solution for you is.
尼克,关于数据库,我们应该为每个客户端使用一个数据库,还是应该为每个客户端拥有单独的数据库,在我的场景中,我们的应用程序更加以数据库为中心,因此根据业务角色对每个客户端进行了大量更改。
Nick , what about database should we use one database every client or should have separate database for each client in my scenario our application is more database centric so there are lot of changes done for each client as per there business roles .