Search code examples
c#database-designasp.net-mvc-3application-designsaas

Best Application Design for Software As Service


Using ASP.NET MVC3 C# AND MS SQL 2008

I'm developing a Software As Service site. It's a Car Inventory app for Car Dealers. I have a few ideas of the architecture of the site but wanted a second opinion.

Each dealer will be restricted to a layout, but can upload a logo and select some color theme's.

At first I thought about creating separate sites for each dealer, but upgrading would be a nightmare.

So my thought is, one main site which dynamically changes based on the hostname. ie. So if miamicars.carinventory.com is entered, they would see their color scheme and logo.

I would have one master database for the users and company settings, but a separate database for each site with the bulk of the data (car inventory, etc). This way I can backup and handle each site's data individually, but the main code of the application would be in one place.

Also, each company would have a directory to store their individual images.

Any feedback would be welcomed.

Thanks


Solution

  • Considering these are multiple companies, I would recommend looking into multi-tenant designs. I know that it looks more complex but it helps you to grow the application cleanly as you grow. Here is another blog entry that is pretty interesting about ASP.NET MVC. Here is another interesting on in MSDN.

    All in all, it is better if you are thinking about multi-tenancy to start from and grow it based on that. Particularly if you are going on Azure, it might be the only way to make it scalable.

    HTH