ASP.NET MVC - Создание фреймворка SAAS
В настоящее время у меня есть веб-приложение ASP.NET MVC 2, и я хотел бы улучшить архитектуру для поддержки модели SAAS. Я планирую в конечном итоге создать ряд веб-приложений, поэтому хотел бы разработать систему соответствующим образом.
Цель состоит в том, чтобы, когда клиент нажимал следующий URL-адрес clientxyz.domain.com, он видел изображение всех своих подписанных приложений. По сути, это будет веб-страница с кучей значков приложений. Как только клиент щелкнет по значку, он перейдет к этому реальному веб-приложению по следующему примеру url clientxyz.domain.com/application_name.
В настоящее время мы используем GoDaddy для размещения нашего домена и планируем использовать облачный сервер iLand для размещения нашего приложения. Мы планируем только несколько новых клиентов в год из-за характера нашего программного обеспечения.
У меня есть ряд вопросов:
Можно ли программно создавать субдомены на лету, используя API.Net. Я уверен, что GoDaddy не позволяет вам сделать это. Так есть еще один провайдер, который позволил бы мне создавать субдомены через C#. Это может быть неправильным подходом и может даже не потребовать физического создания клиентских поддоменов. Вместо этого я могу быть в состоянии сделать это с помощью переписывания URL в IIS/MVC?? Если я использую переписывание, оно должно соответствовать указанным выше требованиям к URL. Любые предложения / ссылки / примеры?
Должен ли я создать отдельный веб-сайт IIS для каждого арендатора / клиента? Или я должен использовать перезапись URL и просто иметь один пул веб-сайтов / приложений? Похоже, вы можете программно раскрутить сайты IIS (пример: http://www.eggheadcafe.com/tutorials/csharp/d4bba585-b517-4834-8476-ff05b085d86e/iis--create-app-pools-virtual-directories-and-web-sites-c-net.aspx)
Поскольку мы используем виртуальный сервер на iLand, мне просто нужно указать GoDaddy на сервер имен на iLand.
Я хотел бы автоматизировать весь новый процесс клиента, если это возможно. Для этого мне нужно было бы создать базу данных (вероятно, по одной базе данных на каждого арендатора), заполнить глобальную таблицу клиент / арендатор, создать учетную запись администратора и детали подписки во вновь созданной базе данных, а также создать поддомен в зависимости от подхода. Я что-то пропустил?
заранее спасибо.