2016-02-17 3 views
0

Возможно, вы ищете неправильные ключевые слова, но мне сложно найти подходящее решение для следующего случая. У нас есть внутреннее приложение, в котором есть пять отдельных бизнес-областей. Раньше все это было настроено внутри проекта веб-сайта, и у нас есть кусочек еды, которые меняли в эту среду. У нас всегда были проблемы с одним изменением, сбивающим весь сайт.ASP.net MVC: несколько доменов, отдельные проекты, отдельные развертывания

Чтобы смягчить это, а также облегчить процедуру модульного тестирования и потенциально использовать возможности непрерывной интеграции, я хотел бы иметь структуру, в которой все транзакции для определенных бизнес-областей (доменов) остаются в рамках своего отдельного проекта , Архитектура может выглядеть примерно так:

  • Main Project (Дома аутентификации, главная страница базы, стили)
    • заказа (дома все вещи упорядоченность)
      • Модели/Просмотров/контроллеры
    • Ценообразование (цены на все товары)
      • Модели/Просмотров/контроллеры

Мой вопрос, как я могу включить все это и дать себе возможность развертывания каждого проекта отдельно в любое время я хотел. Так, например, я делаю обновления в домене Ordering, компилирую его, а затем загружаю проект, не затрагивая другие домены.

Очевидные другие вопросы вращаются вокруг маршрутизации. Как правильно получить маршрут? Я предполагаю, что в RouteConfig есть способы установить пространство имен? Какое решение для этого?

Это то, что делает MEF?

ответ

0

Посмотрите Areas:

Шаблон MVC отделяет логику модели (данные) приложения из своей логики представления и бизнес-логики. В ASP.NET MVC это логическое разделение также реализовано физически в структуре проекта , где контроллеры и представления хранятся в папках, которые используют соглашения об именах для определения отношений. Эта структура поддерживает потребности большинства веб-приложений.

Однако некоторые приложения могут иметь большое количество контроллеров, а каждый контроллер может быть связан с несколькими видами. Для этих типов приложений структура проекта ASP.NET по умолчанию может стать громоздкой.

Для размещения больших проектов ASP.NET MVC позволяет вам разбивать Web приложения на более мелкие единицы, которые называются областями. Области предоставляют возможность разделить большое веб-приложение MVC на более мелкие функциональные группировки . Область является фактически структурой MVC внутри приложения . Приложение может содержать несколько структур MVC (области).

(из MSDN, связанных выше)

Который даст вам логическое разделение, но не функциональная.

Для развертывания заказа без потенциально принимая вниз ценообразования, проще всего сделать, будет иметь отдельный веб-приложение (которые могут быть размещены в одном месте, если это требование) для каждого. Вы можете извлечь любую общую логику в проект библиотеки классов и ссылаться на оба конца.

Смежные вопросы