У меня есть два веб-приложения в ASP.NET, который является вполне тем же (та же бизнес-логика, тот же DAL, та же схема DB, но другой экземпляр).
Единственной вещью, которую я должен изменить, является дизайн (логотип, цвет...) и текст (глобальный и локальный ресурс) для адресации двух отдельных деловых секторов. Мы не можем "субдомен" приложение, потому что нам нужны два приложения, ", кажется," независим.
Действительно ли это - хорошая идея выполнить только один экземпляр для этих 2 веб-приложений.
Например:
У меня будет 2 имен хостов: mycompagny.com и mycompagny2.com и я поместим HTTP-модуль, который установит строку, которая будет распространена в моем приложении как 'компания' и 'company2'. Я буду instanciate dal только однажды, но строка подключения изменит в зависимости от строки 'компанию' или 'company2'.
Какие-либо за и против? Какие-либо другие альтернативы?
[Обновленный] Только для получения информации это - Мультибизнес-и Многопользовательское приложение, потому что оба приложения будут иметь пользовательскую тему для некоторых частей приложения.
Например:
mycompagny.com/Busineess1, mycompagny.com/Busineess2, mycompagny.com/Busineess3.. и mycompagny2.com/Busineess2, mycompagny2.com/Busineess2, mycompagny2.com/Busineess3...
Похоже, вы описываете многопользовательское приложение. Здесь - хороший обзор некоторых проблем работы с несколькими арендаторами в ASP.Net. На самом деле в последнее время создается довольно много информации о приложениях Multi-Tenant ASP.Net MVC , так что на нее тоже стоит обратить внимание.
Да, это делается постоянно .. даже для крупных сайтов.
В ASP.NET вы можете проанализировать Request.Url и определить, какой контент отображать или какие данные извлекать, в зависимости от имени домена.
Когда вы создаете экземпляр DAL, вам нужно указать, к какой базе данных вы хотите подключиться.
Значит, при каждом запросе вы проверяете Request.Url, создаете экземпляр DAL и затем обрабатываете свои ресурсы? Я подумал, что вам следует создать экземпляр DAL в Application.Start () ...
Итак, как и «где» установить конфигурацию, чтобы предотвратить передачу строки Request.Url? Я немного волнуюсь, потому что создание экземпляра DAL - дорогостоящий процесс ... так есть ли будущие «проблемы с производительностью»?