ASP.NET MVC Области: они важны для большого приложения? - PullRequest
30 голосов
/ 20 января 2009

Я нахожусь в процессе разработки большого приложения ASP.NET MVC. В настоящее время я работаю через механизмы, которые буду использовать для структурирования своих контроллеров / представлений. Я видел некоторые упоминания о монорельсе и его использовании "областей". Я просмотрел статью Haacked , и она выглядит интересной. Я хотел бы знать, реализовали ли кто-либо области в производственном приложении ASP.NET MVC и есть ли у них онлайн-ресурсы, которые могли бы помочь реализовать области и оправдать их существование.

Ответы [ 3 ]

27 голосов
/ 21 января 2009

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

Прекращение сделки с ASP.NET MVC для меня заключалось в том, что имена контроллеров должны быть уникальными. Было совершенно очевидно, что мне потребуется контроллер для управления запасами в пределах инвентаря и распределения областей моего приложения, и сортировка их будет слишком сложной. С областями это больше не проблема. Я очень рекомендую использовать их, как обрисовал в общих чертах Фил Хаак.

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

Я не удивлюсь, увидев, что области будут внедрены в ASP.NET MVC очень скоро.

Удачи в вашем приложении, я не думаю, что вы пожалеете о выборе ASP.NET MVC.

5 голосов
/ 23 января 2009

Поддержка областей в большом приложении абсолютно необходима на мой взгляд. Мне кажется довольно странным, что Microsoft намерена выпустить ASP.NET MVC 1.0 без встроенной поддержки областей.

К счастью, в MVC не хватает возможностей, которые он восполняет в расширяемости. Например, в S # arp Architecture, как кратко упомянул Асаф, я руководствовался Филом Хааком (http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx) и Стивом Сандерсоном (http://blog.codeville.net/2008/11/05/app-areas-in-aspnet-mvc-take-2/)), но изменил объединенный результат для поддержки областей непосредственно под папкой представления . (Мне не понравилось, что была отдельная папка "Области" для хранения областей просмотра.) Другими словами, если вы создадите область "Животные" с соответствующим контроллером Animals.AardvarksController, ваша папка Views будет отображать Views / Животные / трубкозубы.

Если вы не заинтересованы в использовании всей архитектуры S # arp, я бы посоветовал вам хотя бы проверить, как области были реализованы в этой среде для использования в вашем собственном приложении. Соответствующий код включает в себя:

Между прочим, архитектура S # arp включает генератор скаффолдингов CRUD, который автоматически учитывает вложенные пространства имен. Как упоминал Асаф, вы можете узнать больше об этом на http://code.google.com/p/sharp-architecture/

Билли МакКафферти

2 голосов
/ 21 января 2009

Взято из S # arp apchitecture 1.0 Beta Примечания к выпуску:

Включение вида "областей", которые являются поддерживается как подпапки в папке Views

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