Я понял это так; ПО промежуточного слоя ASP.NET Core находится на более высоком уровне, чем ПО промежуточного слоя OWIN, которое находится на более низком уровне.
ПО промежуточного слоя ASP.NET Core имеет то преимущество, что гораздо проще разрабатывать ПО промежуточного слоя, поскольку вы проходите в HttpContext
, который вы можете использовать. Недостатком является то, что промежуточное ПО, которое вы разрабатываете, зависит от ASP.NET Core.
OWIN находится на более низком уровне, и вы получаете среду OWIN, которая является IDictionary<string, object>
. Преимущество заключается в том, что он не привязан к ASP.NET, поэтому может работать на любом сервере OWIN (например, Nowin). Недостатком является то, что требуется больше усилий для написания кода, так как вам нужно создать свой собственный контекст из среды OWIN или напрямую использовать словарь среды OWIN и отслеживать все ключи OWIN и объекты.
Изменить: вам не нужно самостоятельно отслеживать ключи OWIN, вы можете использовать класс OwinEnvironment
для получения строго типизированной среды.
var environment = new OwinEnvironment(HttpContext);
var features = new OwinFeatureCollection(environment);
person
Fred
schedule
27.09.2016