Совместное использование / расширение контроллеров в большом приложении ASP.net MVC - PullRequest
3 голосов
/ 22 ноября 2010

Я разрабатываю довольно большое приложение.

Это в основном приложение для электронной коммерции - с другими "функциями", такими как форумы и т. Д ...

Будет называться приложение "бэк-офис""Wokingham"

То, что у меня сейчас есть, выглядит примерно так:
(у нас есть соглашение об именах, основанное на именах деревьев)

MyCompany.Жимолость
Проект, который содержит модель и доступ к данным (IRepository и т. Д.) Для форумов

MyCompany.Willow
Модели и доступ к данным для продуктов, поиск продуктови т. д.

MyCompany.Poplar
Модели / доступ к данным / услуги и т. д. для заказов

MyCompany.Juniper
Customers

Все вышеперечисленное является библиотеками классов, которые компилируются в общий / bin / dir

Wokingham (административная серверная система, упомянутая выше) поделится некоторыми функциями с "публичной" сетьюapp-

Например - на форумах (MyCompany.Honeysuckle) - общедоступное приложениебудет иметь возможность добавить новый вопрос.Эта функциональность также доступна в Wokingham.

У меня вопрос, когда речь заходит о контроллерах приложений MVC.
Там будет (по крайней мере) 2 ASP.NET MVC Applications-
Отдельнаядля "Wokingham"

Должен ли я иметь проект MyCompany.Honeysuckle.Controllers ?Что и общедоступный проект пользовательского интерфейса и Wokingham совместно используют .?

Или - Должны ли быть MyCompany.Honeysuckle.Controllers , упомянутые выше, но затем проект .Wokingham расширяет контроллеры для выполнения дополнительных необходимых функций?

1 Ответ

2 голосов
/ 22 ноября 2010

Я бы разделил два контроллера, один для интерфейсных операций и один для стороны администратора. Сложный вопрос заключается в том, где разместить общие операции.

Короткий путь : вы можете просто перенаправить / открыть новое окно, если администратор хочет создать новое сообщение на форуме? Это сэкономит вам много времени, и это обычная практика.

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

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

Редактировать: удалены ненужные предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...