asp.net-mvc - 使用基于插件的架构和 ASP.NET MVC 开发 Multi-Tenancy 应用程序

标签 asp.net-mvc plugins architecture multi-tenant saas

我正在使用 ASP.NET MVC 开发 Multi-Tenancy 应用程序,在对 Multi-Tenancy 和 SaaS 进行了深入研究之后,我发现有许多资源可用于实现数据层(数据库:按架构分离,按数据库分离或共享),但可用于实现业务和 UI 层的资源非常有限。

我选择了单独的数据库方法。

现在为了让它真正成为 Multi-Tenancy ,我选择了基于插件的架构(如 umbraco 和 Nopcommerce),其中插件是一个 MVC 应用程序,具有基于租户的模型、 View 和 Controller 。

下面是我将如何开发它:

  • Controller 工厂将根据租户(子域)进行初始化

  • 业务层将基于租户注入(inject)(使用 DI)。

  • UI(View)将基于插件进行渲染。

但是这样一来,一切都是多余的,无法共享共同的行为。

任何人都可以按照我可以分享共同行为的方式帮助设计它,或者有更好的方法吗?

最佳答案

我已经使用 DI/IoC 成功实现了类似的架构,以根据当前登录用户的租户注入(inject)正确的配置。 Autofac 提供开箱即用的 Multi-Tenancy 功能,我建议您检查一下。

http://docs.autofac.org/en/latest/advanced/multitenant.html

Sorry for the short answer, writing on mobile is challenging. I will try to edit and expand the answer later when I get to my PC

关于asp.net-mvc - 使用基于插件的架构和 ASP.NET MVC 开发 Multi-Tenancy 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42887585/

相关文章:

.net - VB.NET 实现多种逆变接口(interface)类型

javascript - 使用 HTML5 Ajax 表单属性不适用于 ASP.NET MVC,仍然被重定向到 Action url

grails - 如何在升级应用程序时在grails-2.4.4中使用的grails-3.2.0中安装插件

android - Cordova Build 因异常而失败

java - 将初始(批量)数据导入 RESTful 系统的最佳做法是什么?

c - 32 位和 64 位 c 数据类型的不同大小

javascript - MVC : Iterating a Viewbag array in javascript using the Web Forms view engine

asp.net-mvc - 无法打开项目,因为其项目类型 (.modelProj) 不受支持

c# - ViewModel 中的 MVC3 集合或从 Ajax 服务填充

plugins - SonarQube 在插件开发期间无法重新启动