我正在寻找有关MVC3应用程序和多租户的以下问题的输入。
1)您是否使用具有多个数据库的单个应用程序实例 - 每个客户端一个? 2)或者您使用单个应用程序+单个数据库实例 - 使用一些数据(比如供应商ID)来区分供应商的数据?
如果是上述情况 - 一个应用程序+多个数据库 - 您如何配置web.config?当用户登录时,如何将应用程序指向正确的数据库?
如果是上面的案例二 - 你有多容易找到它来做以下事情 - 每个客户端的自定义 - 单个客户端的备份和还原
有没有人为您的云应用程序选择了单租户架构?如何在添加新客户端的容易程度,数据库实例数量,价格等方面进行比较?
对不起,很多问题,但在我做出决定之前,我真正想要研究的东西。期待您的所有投入。 谢谢
答案 0 :(得分:3)
不幸的是,没有“开源”项目或将多租户设置为我已经找到的MVC 3中“独立”的好“例子”(如果我错了,有人请纠正我)。
我通过Google发现的大多数示例都集中在一个方面,而且更具理论性。还有一些人更老了(专注于MVC 2)。我一直在寻找一个很好的实体项目,我可以用来做我需要的只是简单的多租户。
现在,如果您需要一个MVC 3示例(假设您可以打开一些内容并查看代码以了解),那么我会推荐Orchard CMS的Multi-Tenant模块。如果您能够查看代码,它应该为您提供如何实现所需内容的实例(假设您正在设计某些内容)。
在Orchard中,每个“租户”都有自己的SQL Compact数据库,但您可以将其配置为运行SQL。所以它是一个具有多个数据库的应用程序。所有配置都通过Admin界面完成(因此不会弄乱web.config)。它处理“指向”正确的数据库。
这是一个多步骤的过程设置(IIS中的Admin界面和绑定/ http重定向的组合),但是一旦你掌握它就很容易做到。