Что входит и не принадлежит в папку ASP.NET MVC 2 Area? - PullRequest
4 голосов
/ 31 июля 2010

Инструменты Visual Studio создадут папки «Модели», «Представления» и «Контроллеры» в любой новой области ASP.NET MVC 2.

Areas Folder in Visual Studio

Что еще должно войти в эту папку? Не могли бы вы (например) поместить пользовательские ModelBinder в Areas/MyReallyGreatArea/Binders, если на них есть ссылки только в MyReallyGreatArea?

Какая лучшая практика?

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Да, когда я настраиваю ModelBinder только на MyReallyGreatArea, я помещаю его - как вы предложили - в папку в этой области, например. Areas/MyReallyGreatArea/Binder s. Когда ModelBinder позже используется другой областью, я перемещаю его в папку с именем Areas/Shared/Binders или аналогичную. Таким образом, я держу классы рядом с тем местом, где они используются. Зачем беспокоиться о клиенте ModelBinder, если MyOtherEvenGreaterArea не использует его?

То же самое относится ко всему остальному. Если он используется MyReallyGreatArea, то только он будет находиться там. Если он используется совместно с другой областью, я помещаю его в Area/Shared (и, возможно, там правильно указаны подпапки).

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

0 голосов
/ 31 июля 2010

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

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

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