Когда я должен использовать OWIN Katana?

Я новичок в OWIN и катаной. Я действительно не понимаю, почему я должен использовать OWIN, в то время как я могу использовать IIS. Чтобы упростить, мой вопрос: Что я потеряю, если я пропущу обучение OWIN и использую IIS для своих веб-сайтов?

я погуглил, но нет простого объяснения. Есть некоторая информация здесь, но они используют некоторые жаргонные фразы, поэтому я не могу понять.

5 ответов


In asp.net WebApi v2, конвейер OWIN становится значением по умолчанию. В конце концов, это будет стандартный трубопровод под любым asp.net проект.

Я не могу выразить это лучше, чем то, что написано здесь: http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

раздел " открытый веб-интерфейс для .NET (OWIN)" прекрасно объясняет цели OWIN.

без OWIN, asp.net биты в сочетании с тем, как IIS взаимодействует с приложением. OWIN абстрагирует веб-серверы и компоненты фреймворка. Это означает, что ваш код приложения теперь будет знать интерфейс OWIN, но не веб-сервер, который обслуживает запрос.

в свою очередь, приложения могут быть более легко портированы между хостами и потенциально целыми платформами/операционными системами. Например, возможность размещения приложения в консоли или любом процессе позволяет Mono разместить его без усилий... (Raspberry Pi anyone)

второй аспект заключается в том, что она работает как конвейер.


Owin Pipeline


вы можете подключить любые промежуточные программы (и столько, сколько хотите) между веб-сервером и вашим приложением.
Это позволяет использовать более модульные решения. Можно разработать распространяемые промежуточные программы, которые могут повлиять на запрос/ответ, поступающий в / из приложения, но эти модули должны быть отделены от кода приложения.

To убедите себя в преимуществах этого модульного подхода, взгляните на пакеты nuget, доступные для OWIN:http://www.nuget.org/packages?q=owin

многие из этих пакетов ранее были core asp.net функциональность, и были извлечены как middleware.
Например, добавление поддержки для входа с использованием различных поставщиков OAuth становится проблемой инфраструктуры (промежуточное ПО) и больше не должно быть частью кода приложения :

или если вы хотите автоматически заменить все изображения с вашего сайта милыми изображениями кошек, вы также можете сделать это прозрачно :

https://github.com/serbrech/Owin.Catify

EDIT: теперь он доступен как пакет nuget:долг.Catify!


public interface OWIN
{
   void ListenHttpCallAndServeWebPage();    
}

namespace Microsoft.OWIN
{
   public class Katana : OWIN
   {
      public void ListenHttpCallAndServeWebPage()
      {
         // listen to a port for HTTP call and serve web page
      } 
   }
}

Да, это верно. Оуин-это интерфейс а катана-это реализация интерфейса OWIN по Microsoft. Поэтому мы слышим эти 2 слова (OWIN / KATANA) вместе, и часто мы путаемся между различием между этими 2 терминами. Итак, Katana-это реализация интерфейса OWIN от Microsoft. Скажем, есть еще одна компания по имени BIG-BOSS, которая хотела создать свою собственную реализацию OWIN, они могут сделать это и назвать их реализация как "батана" и рекламировать фразы, такие как OWIN / BATANA.

Итак, почему OWIN !!!

думать о стране, где единственным транспортным средством, доступным для движения грузовика. Больше ничего. Если вы хотите купить автомобиль, вы покупаете грузовик. Ну, это раньше служило хорошо, но люди начали понимать, что им не нужен грузовик все время, особенно когда они хотят пойти посмотреть фильм или купить молоко, вождение тяжелого грузовика не только стоит высокого топлива, но и также добавьте стресс при вождении. Но да, если они хотят нести много тяжелых вещей, грузовик служит этой цели очень хорошо.

  1. автомобиль должен иметь 4 колеса
  2. автомобиль должен иметь рулевое управление.
  3. автомобиль должен иметь фары и сигнальные огни.

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

основываясь на приведенном выше примере, мы можем сказать, что наш ASP.NET веб-приложение использует систему.Узел Полотна который сильно загружен (например, грузовик), и если мы хотим сделать небольшое веб-приложение, где наша цель-просто обслуживать некоторые файлы на основе небольшого набора запросов, мы обязаны использовать эту тяжелую систему.Агрегат паутины (тележка). Теперь появляется Оуин. OWIN-это набор спецификаций (мы можем назвать его интерфейсом), который определяет сервер. Основываясь на этой спецификации, кто-то (например, производитель транспортных средств) может создавать различные серверы на основе конкретных проблемных доменов / потребностей приложений. Microsoft создали их собственная реализация для OWIN названа Katana таким же образом, который может служить веб-API. Поскольку WebAPI-это легкая технология, которая не нуждается в полномасштабной системе.Веб-вещи, легкая реализация сервера (например, Katana) может значительно повысить производительность при использовании веб-Api, размещенного на Katana.


более простая версия этого ответа заключается в том, что катана гонг полностью заменить систему.Web assembly и старый ASP.NET конвейер, который дает вам лучшую гибкость (используйте его в большем количестве сценариев и используйте только те части, которые вам нравятся) и производительность.

поэтому каждый должен наблюдать за его эволюцией сейчас и быть готов переключиться, когда он, наконец, будет завершен.

Ниже приведена диаграмма, которую я нарисовал, чтобы заполнить детали, которые Microsoft не может включить в этот статья.

enter image description here

OWIN является таким стандартом, что он позволяет фреймворкам приложений работать на нем и забывать обо всем, что под ним. С другой стороны, OWIN сам использует различные адаптеры хоста, чтобы убедиться, что он может общаться с базовыми веб-серверами (IIS и многими другими).

теперь я работаю с автором веб-сервера Jexus, чтобы исследовать, как мы можем написать адаптер хоста для моста OWIN / Katana и Jexus. Мы очень рады узнать, что долг является гибким и настраиваемым.

ссылка: http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/


почему я должен использовать OWIN, в то время как я могу использовать IIS?

OWIN предназначен для отделения веб-серверов от фреймворков, в которых вы работаете. Оно может сделать применения облегченным и портативным для смешивая рамок и серверов.

и Katana-это реализация Microsoft компонентов OWIN.

С последних нескольких лет Microsoft делает веб-инструменты более гибкими и отзывчивыми по мере продвижения их плана. Например, развитие ASP.Net MVC и ASP.Net Web API. Они не зависят от системы.Web dll, которая является огромным бременем, которое они чувствуют сейчас, я думаю. Преимущество обоих исправлений развитий можно обеспечить на своевременном образе и цикл более быстр чем всегда. Также теперь разработчики могут развертывать эти приложения на пользовательских хостах OWIN или Katana, что является ссылкой на реализацию OWIN.

в конце концов, какой смысл?

Microsoft выпустила проект который представляет собой легкий веб-узел на основе OWIN поверх IIS, называемый " Helios. Цель состоит в том, чтобы избежать ASP.NET/IIS связь путем предоставления некоторых независимых небольших компонентов, которые могут использоваться, устанавливаться и управляться независимо на веб-узле, реализующем спецификации OWIN.

одной из основных причин является фактор производительности. Helios сможет достичь 2x-3x большей пропускной способности, чем стандартная ASP.Net применение. С точки зрения потребления памяти, Helios намного лучше, чем Система.Web dll. В взятом эталоне архитектура Helios позволила образцу приложения достичь 50000 одновременных запросов с примерно на 1 ГБ меньше накладных расходов по сравнению со стандартом ASP.Net применение.


OWIN-это абстракция между веб-приложением и хостинг-платформы. Если вы пишете свое веб-приложение с помощью OWIN, вы не привязаны к IIS, вы можете использовать другой хост, если хотите.

вы спросили, почему используется OWIN, а не IIS, но это не альтернативы друг другу. OWIN сидит между IIS и вашим приложением, так что вы можете переключить IIS без перезаписи приложения.

вы также можете проверить эту страницу https://github.com/Bikeman868/OwinFramework/wiki/OWIN