OWIN не является библиотекой, это specification. Из документов,
OWIN определяет стандартный интерфейс между веб-серверами .NET и веб-приложениями.
«Большая идея» OWIN заключается в том, что вы можете отделить приложения от серверов, на которых они работают, если каждый может согласиться на использование общего интерфейса. На практике OWIN-совместимый сервер может запускать любое совместимое с OWIN приложение. Это улучшение по сравнению с тесной связью, которую мы имели в прошлом (приложения могут работать только на IIS, и все).
Большая часть спецификации OWIN посвящена описанию названий различных свойств. Сервер, совместимый с OWIN, преобразует входящие запросы в Dictionary<string, object>
, который содержит кучу таких ключей, как owin.RequestBody
и owin.ResponseBody
. Если приложение или промежуточное программное обеспечение, которому передан запрос, знает, как читать эти ключи, он может обрабатывать запрос. Это оно!
Там являются Owin библиотеки (как OWIN и Microsoft.Owin), который является общим источником путаницы. Эти библиотеки являются просто безопасными по типу реализациями интерфейса OWIN или помощниками, которые упрощают взаимодействие с компонентами, совместимыми с OWIN.
Как отмечают @Murray и @Tseng, ядро ASP.NET не построено на OWIN, но совместимо с OWIN. Или, скорее, серверы , на которых работает ASP.NET Core (Kestrel, WebListener, IIS), совместимы с OWIN. ASP.NET Core является дополнительной абстракцией по запросам низкого уровня («уровень OWIN») и позволяет легко создавать такие вещи, как контроллеры и страницы, созданные сервером.
Поскольку ASP.NET Core является OWIN-совместимым, легко подключить любое совместимое с OWIN промежуточное программное обеспечение. Пакет Microsoft.AspNetCore.Owin
выставляет UseOwin
метод:
app.UseOwin(pipeline =>
{
pipeline(next => OwinHello);
// where OwinHello is a compatible middleware function
});
ВИДЕТЬ documentation другие примеры добавления Owin промежуточного ПО для трубопровода ASP.NET Core.
Да, OWIN по-прежнему является основным стандартом поддержки. .Net core предоставляет основные возможности для создания вашего веб-приложения. Потяните в пакеты OWIN от Nuget. https://docs.asp.net/ru/latest/fundamentals/owin.html –
@MurrayFoxcroft: Не совсем правильно. Ядро .NET Core и ASP.NET Core ** не ** основано на OWIN. Но они поддерживают подключение OWIN Middleware. – Tseng
@ Ценг, действительно, вот почему я сказал, что поддержал. –