Portable Areas и T4MVC

В комментариях к кросспосту предыдущей статьи на хабрахабре появились вопросы о применимости T4MVC к модулям с «выделенными областями».
Это послужило для меня хорошим поводом попробовать T4MVC и осознать всю его мощь. По ходу ознакомления T4MVC был слегка модифицирован для поддержки «выделенных областей» (portable areas) и данные изменения были успешно включены в проект на codeplex автором T4MVC Дэвидом Эббо.

Ниже — детали интеграции T4MVC и Portable Areas.
Continue reading

Portable Areas как вариант модульности в MVC

Один из первых вопросов, которым я задался после знакомства с азами технологии MVC3, это способ выделения и повторного использования функционала в нескольких веб-проектах.
В WPF или WinForms все просто и понятно — обособленный функционал изолируется в модуль, модуль компилируется в библиотеку, библиотека — подключается к проекту и повторно используется. Нужно лишь грамотно изолировать модули, и всё будет хорошо.

В MVC всё не так просто, если «обособленный функционал» — это набор контроллеров и вьюшек, реализующих, допустим, гостевую книгу, то просто так вынести их в отдельный модуль нельзя — MVC просто не найдет ваши контроллеры в соседних библиотеках.

Однако решение, конечно, есть, и его нам предлагает небезызвестная библиотека MvcContrib — open-source проект, неаффилированный Майкрософтом.
Continue reading