2014-12-04 4 views
3

Я прочитал о новинках в .NET4.6 и одной из вещей is ASP.NET 5, которую я очень взволнован.Каковы различия между ASP.NET4 и ASP.NET5 Http-конвейерами?

Одна из новых вещей - New modular HTTP request pipeline, однако больше нет информации о том, как именно она изменится.

Единственный reference in the article is

ASP.NET 5 вводит новый запрос HTTP трубопровода, который постное и быстро. Этот конвейер является модульным, поэтому вы можете добавить только те компоненты, которые вам нужны . Уменьшая накладные расходы в конвейере, ваше приложение будет получить лучшую пропускную способность. Новый трубопровод также поддерживает OWIN.

Каковы основные различия между ASP.NET4.5 и ASP.NET5 Http-конвейерами? Как модульность будет контролироваться?

ответ

6

Самая большая разница по моему мнению является модульность нового запроса трубопровода. Раньше жизненный цикл приложения следовал относительно строгому пути, к которому вы могли подключиться через классы, реализующие IHttpModule.. Это позволит вам повлиять на запрос, но только в определенных точках на этом пути, подписываясь на различные события, которые происходят (например, BeginRequest,AuthenticateRequest, и т.д.).

The полные описания их можно найти на сайте MSDN: IIS 5 & 6 или IIS 7 и пошаговое руководство по созданию такого модуля может быть found here.

В новом ASP.NET 5 мире, трубопровод запроса отсоединяется от системы .Web и IIS. Вместо предопределенного пути он использует концепцию промежуточного программного обеспечения. Если вы знакомы с OWIN, идея nearly identical, но основная идея заключается в том, что эти компоненты Middleware зарегистрированы, а затем запрос проходит через них в том порядке, в котором они зарегистрированы.

Каждый компонент промежуточного программного обеспечения предоставляется RequestDelegate (следующий компонент промежуточного программного обеспечения в конвейере) и текущий HttpContext для каждого запроса. По каждому запросу компонент вызывается, а затем имеет возможность передать запрос до следующего в цепочке, если это применимо. Например, компонент аутентификации может отказаться от передачи запроса вместе с следующим компонентом, если аутентификация завершается с ошибкой. Используя эту систему, вы действительно можете обрабатывать запрос любым способом, который вы выберете, и можете быть такими же легкими или богатыми, как вам нужно.

This example немного от сейчас (например, IBuilderhas been renamed к IApplicationBuilder), но это еще большой обзор того, как выглядит здание и регистрирующие эти компоненты.

 Смежные вопросы

  • Нет связанных вопросов^_^