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

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

22.08.2008 12:03:36
5 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

0
22.08.2008 12:11:39

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

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

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

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

6
22.08.2008 12:10:17

Даже Asp.Netстраница является HttpHandler.

public class Page : TemplateControl, IHttpHandler

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

0
24.01.2013 10:07:23

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

1
22.08.2008 12:11:51

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

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

0
22.08.2008 14:26:26