Multi tenancy with mvc3 and entity framework


Published on

How to implement a Multi-Tenant web application using MVC3 and Entity Framework.

Multi tenancy with mvc3 and entity framework

  1. 1. Multi-tenancy with MVC3 and Entity Framework -By Lasantha Bandara
  2. 2. What is a Tenant? Literally“A person who occupies land or propertyrented from a landlord”
  3. 3. Is there any better examplethan Exilesoft…?
  4. 4. Is there any better examplethan Exilesoft…? Moota
  5. 5. Is there any better examplethan Exilesoft…? Moota Pro-Account
  6. 6. They are Tenants of Exilesoft… Moota Pro-Account
  7. 7. Same situation applies to the cloudbased software applications. In SaaS (Software as a Service) Model Most of the web applications are SaaS – But not Multi-Tenant…! Multi-Tenant Examples,  Highrise  Jira  YaY In these systems, organizations make their accounts and they are provided a look and feel of their own „Home‟
  8. 8. Why this is so important? Data is vital for some businesses. Should be able to isolate data among tenants in SaaS model. If we provide it…. We have Competitive Advantage.
  9. 9. That implies…Data Architecture is the mostsignificant factor in a MultiTenant Application.
  10. 10. We can identify 3 differentarchitectures at present…  Separate DB – Separate Schema  Shared DB – Separate Schema  Shared DB – Shared Schema
  11. 11. Separate DB – Separate Schema Extendibilitywith tenant specific requirements Easy Backup High Cost Suitable for Medical and Banking applications in spite of high cost
  12. 12. Shared DB – Separate Schema Separate set of tables for each tenant in same DB Extendible and easy to implement Suitable if No. of Tenants < 100 Low cost than the previous one
  13. 13. Shared DB – Shared Schema Lowest Cost Additional development effort Less security Each row contains tenant Id Suitable for a huge cluster of tiny tenants
  14. 14. Choosing an approach Cost Based
  15. 15. Security Shared Isolated
  16. 16. Tenant Attributes
  17. 17.  Regularity Consideration (legal requirements of companies) Skills set of development team etc…
  18. 18.  InYayCRM we have invented a model that is supported all those architectures You can, - distribute databases in a server farm - expand and shrink the number of databases - move tenants among databases
  19. 19. Metadata Tenant Database DatabasesClient Application Server
  20. 20. Let’s go to demo…
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.