Архитектура проекта С# MVC для нескольких поддоменов

Я пытаюсь создать новый проект MVC. Идея в том, что у меня будет родительский домен, и я буду размещать несколько подпродуктов в разных поддоменах.

[Для пользователей это будут совершенно разные продукты... например: life.insurance.com и general.insurance.com].. также возможно, что над этими двумя дочерними продуктами работают две разные команды, и у них может быть разная дата выпуска.

Главное, я хочу изменить свой слой веб-проекта. Уровень домена, уровень DAL и т. д. будут общими. Я искал некоторые лучшие отраслевые практики в MVC.

Мысли, которые у меня есть в голове:

  1. Создавайте разные области MVC в веб-проекте. Но что, если я хочу отправить код продукта А в производство, но не код продукта 2. [Как решить эту проблему]

  2. Используйте разные веб-проекты и меняйте dll только на производстве.

Пожалуйста, предложите. или любой новый способ справиться с этим сценарием?


person KushalSeth    schedule 15.06.2017    source источник
comment
Используйте разные веб-проекты для разных продуктов и библиотек классов для бизнес-правил. Общее бизнес-правило должно находиться в одной библиотеке классов, а бизнес-правило для конкретного проекта должно находиться в другой библиотеке классов.   -  person Bhuban Shrestha    schedule 15.06.2017


Ответы (2)


В разделе «Основной проект» создайте отдельные проекты MVC для каждого из поддоменов.

person Eklavya    schedule 15.06.2017

Вы можете создать несколько проектов для DAL, DomainLayer, Crosscutting, DTO, пользовательского интерфейса, тестирования и т. д. Вы можете расширить его настолько, насколько вам нужно, и вы можете найти множество примеров архитектур различной сложности. Учитывая ваши конкретные вопросы, вы можете направлять запросы, используя Area, как вы указали. Кроме того, вы можете реализовать Areas в разных проектах, что позволит расширить ваше решение без изменения веб-проекта. Однако; вам необходимо принять во внимание, что после добавления ссылок DLL в ваш веб-проект вы не сможете напрямую изменить определенные библиотеки DLL без перестройки всего веб-проекта. Для этого вам необходимо разрешать сборки плагинов во время выполнения. Таким образом, вы можете использовать Assembly.Load, который поможет вам загрузить определенные библиотеки DLL в любое время.

person ali    schedule 15.06.2017