В чем разница между ashx, asmx, axd + cs(обработчик), webmethod(в aspx) и асинхронными методами в asp.net framework 4.5?
Мне нужно знать техническую разницу этих файлов. Какой из них лучший вариант? Когда и почему мы должны это использовать? Мне нужен человеческий ответ, а не ссылки MSDN.
1 ответ
.ashx
файлы используются для обработки HttpRequests и изменения HttpResponses; вы можете в значительной степени заставить их делать все, что вы хотите. Я видел, как они используются для таких вещей, как обслуживание PDF-файлов, обработка на стороне сервера, а затем перенаправление. Смотрите здесь для получения дополнительной информации.
.svc
файлы (которые не были упомянуты в вашем вопросе) являются частью новой Windows Communication Foundation MS, предназначенной для разработки SOA. WCF поддерживает SOAP, REST и много других интересных вещей.
.asmx
файлы являются более старым средством размещения сервисов SOAP. Они часто сопровождаются asmx.cs
файлы (или.vb), которые содержат фактические методы службы. Смотрите здесь для получения дополнительной информации. Это устаревшая технология, и я бы рекомендовал использовать WCF в новых разработках.
[WebMethod]
атрибут используется для обозначения методов, обнаруженных в службе SOAP, размещенной asmx
, Смотрите здесь для получения дополнительной информации.
.axd
расширение используется сгенерированными веб-сервисами, используемыми для разных целей. (Например, MVC3 использует axd
веб-сервисы для обслуживания MS JavaScript) Я не думаю, что вы когда-либо создали бы axd
файл, но я могу ошибаться... по крайней мере, я никогда не имел. Смотрите здесь для получения дополнительной информации.
Какой из них лучший вариант?
Это разные инструменты, используемые для решения разных задач. Когда и почему вы должны использовать каждый из них, зависит от работы, которую вы пытаетесь выполнить. Более низкий уровень обработки поведения вашего веб-приложения может быть достигнут с ashx
файлы. Если вы хотите предоставлять более стандартизированные услуги, я бы порекомендовал использовать WCF и svc
файлы. Пожалуйста, предоставьте нам больше информации о задаче, которую вы выполняете, чтобы мы могли помочь вам выбрать ее.