Я прочитал много статей о проектах OWIN и Katana, но я не мог получить полную картину.
Для обычного веб-разработчика, который использует ASP.NET:
Что касается комментария выше, OWIN не является основой. OWIN - это спецификация того, как должны создаваться веб-серверы и веб-приложения, чтобы разделить их и разрешить перемещение приложений ASP.NET в среды, которые ранее не поддерживались.
До OWIN при создании приложения ASP.NET вы были привязаны к IIS из-за сильной зависимости от сборки System.Web
.
System.Web
существует с тех пор, как ASP (не версия .NET) и содержит много вещей, которые вам могут даже не понадобиться (например, веб-формы или авторизация URL-адресов), которые по умолчанию выполняются при каждом запросе, что потребляет ресурсы и делает приложения ASP.NET в целом намного медленнее, чем его аналоги, такие как, например, Node.js.
Сам OWIN не имеет никаких инструментов, библиотек или чего-либо еще. Это просто спецификация.
Katana, с другой стороны, является полностью разработанной платформой, созданной для создания моста между текущими платформами ASP.NET и спецификацией OWIN. На данный момент Katana успешно адаптировала следующие платформы ASP.NET для OWIN:
ASP.NET MVC и веб-формы по-прежнему работают исключительно через System.Web, и в долгосрочной перспективе планируется также разделить их.
С другой стороны, IIS является хорошим, находчивым хостом для веб-серверов. Все проблемы производительности ASP.NET при использовании IIS имеют глубокие корни только в System.Web
. Вплоть до недавнего времени, когда вы решали, как разместить свой веб-сервер, у вас было два варианта:
Поэтому, если вы хотите получить представление, вы можете выбрать вариант с собственным хостом. Если вы хотите использовать множество встроенных функций IIS, вы бы выбрали IIS, но потеряли бы производительность.
Теперь есть 3-й вариант - библиотека Microsoft с именем Helios (текущее кодовое имя), которая намерена удалить System.Web
, и позволит вам использовать IIS более "чистым" способом, без каких-либо ненужных библиотек или модулей. Helios в настоящее время находится в предварительной версии и ждет от сообщества обратной связи, чтобы сделать его полностью поддерживаемым продуктом Microsoft.
Надеюсь, что это объяснение проясняет ситуацию лучше для вас.
РЕДАКТИРОВАТЬ (сентябрь 2014 г.):
В процессе разработки ASP.NET vNext Катана постепенно выходит на пенсию. Версия 3.0, скорее всего, станет последним основным выпуском Katana в качестве автономного фреймворка.
Однако все концепции, представленные в Katana, интегрируются в ASP.NET vNext, а это означает, что модель программирования будет практически одинаковой. Цитата из сообщения на форуме, сделанного Дэвидом Фаулером (Архитектор ASP.NET vNext):
vNext является преемником Katana (именно поэтому они так похожи). Katana стала началом отказа от System.Web и более модульных компонентов для веб-стека. Вы можете рассматривать vNext как продолжение этой работы, но продвигаться гораздо дальше (новая CLR, новая система проектов, новые абстракции http).
Все, что существует сегодня в Катане, перейдет в vNext.
РЕДАКТИРОВАТЬ (февраль 2015 г.):
ASP.NET vNext теперь известен как ASP.NET 5 и будет построен на основе .NET Core 5..NET Core 5 - это облегченная факторинговая версия .NET Framework, предназначенная для поддержки целей ASP.NET 5 и .NET Native., Однако ASP.NET 5 также будет поддерживаться .NET Framework 4.6, который должен стать доступным вместе с .NET Core 5. И ASP.NET 5, и .NET Core 5 будут лицензированы в рамках MIT и будут принимать участие сообщества.
РЕДАКТИРОВАТЬ (май 2015 г.):
Кроме того, торговая марка ASP.NET Web API будет прекращена, однако эта технология станет основой для нового ASP.NET MVC 6. Предыдущие версии ASP.NET MVC были созданы с использованием IHttpHandler, интерфейса, определенного в System.Web
. ASP.NET MVC 6 устраняет эту зависимость, делая его переносимым на различные платформы и веб-серверы.
РЕДАКТИРОВАТЬ (май 2016 г.):
ASP.NET 5 будет официально переименован в ASP.NET Core, начиная с Release Candidate 2, выпуск которого запланирован в ближайшее время. То же самое будет применяться к Entity Framework 7, который будет переименован в Entity Framework Core. Более подробную информацию об официальном объявлении и причинах этого можно найти в блоге Скотта Хансельмана: ASP.NET 5 мертв - Представляем ASP.NET Core 1.0 и .NET Core 1.0
РЕДАКТИРОВАТЬ (май 2016 г.):
С выпуском Release Candidate 2 ASP.NET Core был изменен, так что будущие веб-приложения фактически будут просто настроены для консольных приложений .NET Core для обработки входящих HTTP-запросов. Эта концепция делает ASP.NET Core еще более согласованным с подходом Microsoft к поддержке архитектуры микросервисов и ее реализации через Azure Service Fabric. Дополнительную информацию можно найти в официальном сообщении в блоге: Объявление о ASP.NET Core RC2
Helios
Если мне нужно определить OWIN для себя, это будет: "Лучшие идеи из сообществ сообщества Ruby и Node.js, идущих на .NET"
Но это не помогло бы ни одному разработчику ASP.NET. Мое собственное определение было бы чем-то вроде:
OWIN определяет стандартный интерфейс между веб-серверами .NET и веб-приложениями. Цель интерфейса OWIN - отделить сервер и приложение Если я должен ответить на поставленные вами вопросы, то вот он:
OWIN - это спецификация интерфейса. Он отделяет веб-приложения от IIS.
Если вы используете готовые компоненты (что и есть Katana), то некоторые части функциональности приложения намного проще реализовать по сравнению со старым ASP.NET. Одним из примеров этого является аутентификация с сторонними поставщиками удостоверений личности (Facebook, Twitter).
Я попытаюсь скрыть его с практической точки зрения.
Katana - это название проекта для внедрения OWIN в Microsoft.
Что такое OWIN и какие проблемы он решает (простыми словами). Каково его отношение к IIS?
OWIN (Открытый веб-интерфейс для .NET) является стандартной (Спецификация OWIN), а Katana - это .NET-библиотека, вы можете получить nuget отсюда. OWIN и Katana стали несколько синонимами в Интернете.
До OWIN ваш единственный вариант был IIS
с OWIN, вы можете использовать любое другое приложение (имеющее точку входа) в качестве веб-сервера.
Заменяет ли OWIN IIS? если нет, то в каких ситуациях лучше всего подходит OWIN?
Нет, он не заменяет IIS, вы можете использовать OWIN и IIS там Microsoft.Owin.Host.SystemWeb
nuget для этого. Это лучше всего подходит, если вы хотите оптимизировать/изменить способ обработки в IIS, или вы хотите создать свой собственный веб-сервер, не говоря о приложении Windows Forms.
Как может OWIN помочь мне в моих ежедневных рабочих проектах?
Это может снизить затраты на обслуживание вашего сервера, поскольку вашим веб-серверам больше не нужно запускать на IIS (Windows) (серверы Windows стоят дороже, чем на основе Unix, и вы можете запустить его на консольном приложении в Mono в Linux).
Как может OWIN помочь мне в проектах самосовершенствования?
Обучение Microsoft.Owin
(и другие связанные с ним библиотеки OWIN) улучшит ваши знания о том, как работает HTTP-связь между клиентом и веб-сервером.
Хорошо читайте, если вы хотите больше узнать, что такое Katana и OWIN.
Что такое OWIN?
OWIN расшифровывается как Open Web Interface для .NET. OWIN - это спецификация, которая описывает, как фреймворки веб-разработки, такие как ASP.NET MVC, должны взаимодействовать с веб-серверами. Целью OWIN является отделение веб-приложений от веб-сервера путем введения уровня абстракции. Такая абстракция позволяет запускать одно и то же приложение на всех веб-серверах, поддерживающих OWIN. Кроме того, это упрощает систему в целом, поскольку уровень абстракции может обеспечить легкую инфраструктуру для размещения приложений. IIS предоставляет богатый набор функций для веб-приложений. Однако веб-приложениям могут не понадобиться все эти функции. Для них может быть достаточно иметь минимальные возможности обработки HTTP. OWIN-совместимый хост может предоставить такую среду размещения для этих приложений. Кроме того, вы можете определить конвейер модулей, которые используются во время обработки запроса. OWIN-конвейер - это цепочка OWIN-совместимых компонентов, через которые проходит запрос.
Что такое катана?
Katana - это набор компонентов от Microsoft, созданный с использованием спецификаций OWIN. Некоторые из этих компонентов включают в себя веб-API, ASP.NET Identity и SignalR.
Выше приведена выдержка из статьи CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm