2012-04-28 7 views
3

Проекты ASP.NET MVC соответствуют соглашениям об именах и папках для моделей, представлений и контроллеров. Для другого кода (например, Action Filters, Delegating Handlers и т. Д.) Есть ли наилучшая практика в отношении того, где их найти в структуре папок проекта?Условные обозначения ASP.NET MVC

ответ

3

Хороший способ узнать это, проверив, что лучше всего использовать в проектах Open Source. IIRC NuGet Галерея была написана ребятами Asp.Net MVC, так что это послужит хорошим примером для того, что они рассматривают в качестве наилучшей практики в то же время фактический продукт:

https://github.com/NuGet/NuGetGallery

Похоже, они добавили их FilterAttributes, HtmlHelpers и т.д. в корне проекта: https://github.com/NuGet/NuGetGallery/blob/master/Website/RequireRemoteHttpsAttribute.cs

Кроме того, Phil Haack и David Ebbo работал в команде Asp.Net MVC, и вы можете проверить свои репозитории GitHub за то, что они любят делать.

+0

Следует ли держать контроллеры в отдельном проекте и представлениях в отдельном проекте? – user20358

1

Нет стандартного способа как такового. Различные практики применяют различные методы, но у всех есть свои плюсы и минусы. Однако, исходя из применяемых ограничений при проектировании, вот некоторые указатели:

  1. Повторное использование

    Если вы хотите, чтобы ваши Action Filters, Делегирование Обработчики и т.д. для повторного использования, а затем поместить их в специальную папку в осины .net mvc webroot выполнит эту работу. Таким образом, все такие фильтры будут иметь глобальный масштаб и могут быть использованы по мере необходимости.

  2. Pluggability

    Если хотите создать подключаемый модуль из фильтров и т.д. Может быть стоит поместить их в отдельной DLL вообще. Библиотека можно рассматривать как черный ящик, который принимает всю контекстуальную информацию в качестве функциональных входов и может быть повторно использован по мере необходимости. мне понравилась подключаемую архитектуру Orchard CMS http://www.orchardproject.net/

я задал аналогичный вопрос некоторое время назад о том, как организовать модели в ASP.NET MVC проекта. К сожалению, ответа не получилось. Models in asp.net mvc 3 areas

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