Где разместить классы HttpHandler в .NET? - PullRequest
0 голосов
/ 17 ноября 2009

Может быть, странный вопрос, но где бы вы разместили классы HttpHandler в n-уровневой архитектуре? У меня есть сервисный уровень, уровень модели домена и уровень данных. Должен ли я создать отдельную библиотеку классов для HttpHandlers?

Ответы [ 3 ]

3 голосов
/ 17 ноября 2009

Мое мнение: я бы поместил их в сервисный слой, возможно, в подпапку этого проекта.

2 голосов
/ 17 ноября 2009

Это мои предпочтения:

Вы повторно используете IHttpHandler на разных сайтах, как вы упомянули, поэтому моя собственная отдельная библиотека будет для меня предпочтительным проектом.

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

[assembly: InternalsVisibleTo("MyHandlerLibrary")]

Это находится в файле Assemblyinfo.cs (или где вы храните информацию о сборке) вашей библиотеки домена.

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

1 голос
/ 17 ноября 2009

HTTP-обработчики являются технологией - их можно использовать для предоставления интерфейса (своего рода) где угодно. Важный вопрос: какова цель услуг? Это «технические» или «деловые» услуги?

Если вы сможете ответить на эти вопросы, вы будете ближе к тому, чтобы решить, куда им нужно идти.

Также важно помнить, что они представлены как часть веб-приложения (или компонента); если вы хотите показать что-то через Интернет, то это может быть хорошим вариантом. Так что, если вы хотите предоставить доступ к своим данным через Интернет, тогда да, вы можете использовать HTTP-обработчики.

Должны ли вы воссоздать отдельную библиотеку? если интерфейс, предоставляемый обработчиками HTTP, является общим (скажем, ведение журнала), то вы можете, хотя, скорее всего, у вас будут некоторые «вспомогательные» методы в библиотеке, и ваши обработчики HTTP, специфичные для «службы», будут там, где они вам нужны.

...