В чем разница между HttpHandler и пользовательским веб-элементом управления и когда их использовать? - PullRequest
1 голос
/ 22 августа 2008

Я широко использовал пользовательские элементы управления, но никогда не использовал HttpHandler, и мне было интересно, что я делаю что-то неоптимальное или неправильное

Ответы [ 5 ]

6 голосов
/ 22 августа 2008

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

HttpHandlers используются для обработки HTTP-запросов. Например, если вы хотите динамически создать канал RSS, вы можете написать обработчик HTTP, который обрабатывает все запросы к файлам «.rss», создает выходные данные и отправляет их обратно пользователю.

Пользовательские элементы управления используются на страницах ASPX для инкапсуляции единиц функциональности, которые вы хотите повторно использовать на многих страницах.

Скорее всего, если вы успешно используете пользовательские элементы управления, вы не хотите использовать HttpHandlers!

1 голос
/ 22 августа 2008

В основном пользовательский элемент управления является частью серверной логики и пользовательского интерфейса. HTTP-обработчик - это только часть логики, которая выполняется, когда запрашивается ресурс на вашем сервере. Например, вы можете решить обрабатывать запросы на изображения, отправленные на ваш сервер через ваш собственный обработчик, и обслуживать изображения из базы данных вместо файловой системы. Однако в этом случае нет интерфейса, который видит пользователь, и когда он посещает URL на вашем сервере, он получает ответ, который вы создали в своем собственном обработчике. Обработчики обычно создаются для определенных расширений и типов HTTP-запросов (POST, GET). Вот еще немного информации о MSDN: http://msdn.microsoft.com/en-us/library/ms227675(VS.80).aspx

0 голосов
/ 22 августа 2008

Просто чтобы прояснить вопрос. Я читал пост Гансельмана http://www.hanselman.com/blog/CompositingTwoImagesIntoOneFromTheASPNETServerSide.aspx и думал, что я никогда бы не решил проблему с HttpHandler, возможно, с простой страницей, возвращающей двоичное содержимое.

Это заставило меня подумать, что я должен добавить HttpHandler в мой пояс инструментов для разработчиков.

0 голосов
/ 22 августа 2008

Ожидайте лучшего ответа (вероятно, прежде чем я закончу печатать это), но в качестве краткого резюме.

Пользовательский элемент управления - это то, что можно добавить на страницу.

HttpHandler может использоваться вместо страницы.

0 голосов
/ 22 августа 2008

Даже страница Asp.Net - это HttpHandler.

public class Page : TemplateControl, IHttpHandler

Пользовательский элемент управления фактически находится на странице aspx asp.net.

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