Предлагаемая структура каталогов / размещение файлов ASHX
Благодаря опубликованным соглашениям ASP.NET MVC я гораздо более пристально рассматриваю идею универсальных соглашений о конфигурации для моих проектов (в отличие от соглашений, принятых в домашних условиях, или от использования различных соглашений).
Тем не менее, я не вижу, во всяком случае, предпочтительного расположения файлов ASHX, например, в проектах ASP.NET MVC (а также в проектах веб-форм).
Есть ли рекомендуемая структура каталогов для них? Возможно, есть опубликованная спецификация с гораздо большей структурой каталогов?
Мое личное соглашение состояло в том, чтобы поместить их в каталог обработчиков верхнего уровня, но я, честно говоря, лично не видел других проектов, которые действительно делают это.
Я предполагаю, что в зависимости от того, что он делает (например, генерирует изображение), можно утверждать, что это может войти в каталог Content, но, похоже, этот каталог обычно используется для статических файлов.
(Помимо: можно утверждать, что файлы ASHX не нужны в проектах MVC, но, основываясь на вопросах, размещенных здесь, кажется, что файлы ASHX все еще имеют свое место в проектах MVC.)
РЕДАКТИРОВАТЬ: игнорировать проекты MVC, так как я предлагаю это в качестве одного примера. Тогда как насчет веб-форм?
2 ответа
Мое личное соглашение - создавать обработчики не в виде ASHX-файлов, а в виде классов, предоставляющих интерфейс IHttpHandler. Я храню их в отдельном файле.dll и регистрируюсь через web.config.
С другой стороны, все сценарии, описанные в рассматриваемом вопросе, легко реализовать в ASP.NET MVC Framework без дополнительных обработчиков.
Для проектов ASP.NET MVC хорошее обсуждение предлагаемой структуры проекта / каталога в вопросе о структуре проекта ASP.net MVC.
Кажется, для веб-форм существуют соглашения об именах для структур каталогов веб-приложений ASP.NET? предполагает, что нет стандарта (по состоянию на 2008 год).