Я новичок в OWIN и Katana. Я действительно не понимаю, почему я должен использовать OWIN, в то время как я могу использовать IIS
. Проще говоря, мой вопрос: что я потеряю, если пропущу обучение OWIN и использую IIS для своих сайтов?
Я погуглил, но нет простого объяснения. Существует некоторая информация здесь , но они используют некоторые жаргонные фразы , так что я не могу понять.
Ответы:
В 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 любой)
Второй аспект заключается в том, что он работает как конвейер.
Вы можете подключить любое промежуточное программное обеспечение (и столько, сколько хотите) между веб-сервером и вашим приложением.
Это позволяет использовать более модульные решения. Вы можете разрабатывать распространяемое промежуточное программное обеспечение, которое может повлиять на запрос / ответ, поступающий в / из вашего приложения, но при этом отделить эти модули от кода приложения.
Чтобы убедиться в преимуществах этого модульного подхода, взгляните на пакеты nuget, доступные для OWIN: http://www.nuget.org/packages?q=owin
Многие из этих пакетов ранее были основными функциями asp.net и были извлечены как промежуточное ПО.
Например, добавление поддержки входа в систему с использованием различных поставщиков OAuth становится проблемой инфраструктуры (промежуточное программное обеспечение) и больше не должно быть частью кода вашего приложения:
...
Или, если вы хотите автоматически заменить все изображения с вашего сайта изображениями милых котов, вы можете сделать это также прозрачно:
https://github.com/serbrech/Owin.Catify
РЕДАКТИРОВАТЬ: Теперь он доступен в виде пакета Nuget : Owin.Catify !
источник
Да это правильно. OWIN - это интерфейс, а Katana - реализация интерфейса OWIN от Microsoft . Поэтому мы слышим эти 2 слова (OWIN / KATANA) вместе, и мы часто путаем разницу между этими 2 терминами. Итак, Katana - это реализация Microsoft интерфейса OWIN. Скажем, есть другая компания по имени BIG-BOSS, которая хотела создать свою собственную реализацию OWIN, они могут сделать это и назвать свою реализацию «BATANA» и рекламировать фразы, такие как OWIN / BATANA.
Итак, почему ОИН !!!
Подумайте о стране, где единственным транспортным средством, доступным для передвижения, является грузовик. Ничего больше. Если вы хотите купить автомобиль, вы бы купили грузовик. Ну, это раньше служило хорошо, но люди начали понимать, что им не нужен грузовик все время, особенно когда они хотят пойти посмотреть фильм или купить молоко, вождение тяжелого грузовика не только стоит дорого, но и добавить стресс на вождение. Но да, если они хотят нести много тяжелых грузов, грузовик очень хорошо справляется с этой задачей.
Затем правительство этой страны разработало спецификацию для производителей транспортных средств. Спецификация выглядит следующим образом:
Таким образом, на основании этих спецификаций любой может изготовить автомобиль в соответствии с различными потребностями, и они могут соответственно назвать свое транспортное средство. Таким образом, седан, пикап, внедорожник, фургон, ... и т. Д. Все виды автомобилей появились на рынке. Если кому-то не нужно нести тяжелые вещи постоянно, а нужен автомобиль только для того, чтобы идти на работу, он может купить маленький седан. Кто-то может купить внедорожник, если ему нужно немного больше энергии.
Исходя из приведенного выше примера, мы можем сказать, что наше веб-приложение ASP.NET использует сборку System.Web, которая сильно загружена (например, грузовик), и если мы хотим создать небольшое веб-приложение, в котором наша цель - просто обслуживать некоторые файлы на основе при небольшом наборе запросов мы обязаны использовать эту тяжелую сборку System.Web (грузовик). Теперь OWIN появляется. OWIN - это набор спецификаций (мы можем назвать его интерфейсом), который определяет сервер. На основании этой спецификации кто-то (например, производитель автомобилей) может создавать серверы различного типа в зависимости от конкретных проблемных областей / потребностей приложений. Microsoft создала свою собственную реализацию для OWIN с именем Katana таким же образом, который может служить веб-API. Поскольку WebAPI - это легковесная технология, которая не нуждается в полномасштабных вещах System.Web,
Теперь, если вы спросите: « Нужно ли мне это '? Ответ: «Это зависит от вашей потребности в производительности». Если вы не против того, чтобы ездить на своем грузовике, даже если вы собираетесь посмотреть фильм, возможно, вам не нужен OWIN. Но если вы чувствуете, что легкий автомобиль Седан - это все, что вам нужно для езды по городу, на небольшом расстоянии, посмотреть фильм ... и т. Д. Да, вы можете проверить, какие реализации OWIN доступны на рынке. Katana - одна из реализаций OWIN, поэтому вы можете проверить, что предлагает Katana. Не только Katana, если какая-либо другая компания внедряет OWIN в соответствии с конкретным доменом (например, сервер для медицинских устройств, который будет загружать новейшую информацию о лекарствах), и если вы являетесь врачом, возможно, вы можете проверить эту реализацию OWIN. Более того, вы сами можете создать собственную реализацию OWIN для любой конкретной ниши.
С точки зрения веб-приложений, если вы простой веб-разработчик, разрабатывающий пользовательские веб-сайты для своих клиентов, возможно, вам не нужно беспокоиться о пользовательской реализации OWIN, поскольку IIS будет служить вам сбалансированным образом. Если вы создадите проект Web API, вы получите готовый шаблон на основе Katana из Visual Studio -> New Project, так что вам не придется беспокоиться ни о чем, кроме изучения специфических методов Katana. На данный момент Katana не достаточно зрелая, чтобы полностью заменить потребность в IIS для ASP.NET MVC, но, возможно, в будущем это произойдет.
Тогда, когда мне может понадобиться написать мою собственную реализацию OWIN?
Ответ: скажем, к примеру, вы разработали приложение для Windows, которое должно работать в фоновом режиме как сервер и прослушивать номер порта XXXX. Ваш сервер будет отвечать только на некоторые запросы:
Вот и все. И ничего больше. Итак, зачем вам нужен полный веб-сервер IIS для этой маленькой задачи? В этом случае вы можете создать свою собственную реализацию OWIN. (Возможно, вы будете использовать Katana для этого)
Итак, я понял, что, если я хочу создать веб-сайт ASP.NET MVC, у меня нет возможности заменить IIS, то зачем мне сейчас знать о Katana?
Ответ: Несмотря на то, что Katana недостаточно развита, чтобы заменить потребность в IIS, чтобы вы могли разместить свой веб-сайт ASP.NET MVC непосредственно на Katana, но Katana реализовала множество интересных интерфейсов OWIN, чтобы вы могли воспользоваться преимуществами использования этих функций на стороне рядом Например, разрешить пользователям входить в систему с помощью Facebook, Google, Twitter и т. Д. Раньше было непросто. Katana предоставляет вам множество хуков (в качестве промежуточного программного обеспечения), чтобы вы могли позволить Katana легко позаботиться о внешней аутентификации на основе социальных сетей без написания программного кода. Есть много других преимуществ использования Katana, которые вы можете узнать, когда начнете использовать эту технологию.
источник
what is lightweight part, i mean if Katana is compared to IIS, by which means it is lightweight ( say it does not do step#1,2,3 etc.. , but IIS does that.
Более простая версия этого ответа заключается в том, что Катана собирается полностью заменить сборку System.Web и старый конвейер ASP.NET, что дает вам как большую гибкость (используйте ее в большем количестве сценариев и используйте только те части, которые вам нравятся), так и производительность.
Таким образом, каждый должен следить за его развитием сейчас и быть готовым переключиться, когда он наконец завершится.
Ниже приведена схема, которую я нарисовал, чтобы заполнить детали, которые Microsoft не может включить в эту статью .
OWIN - это такой стандарт, что позволяет приложениям работать на нем и забывать обо всем, что находится под ним. С другой стороны, сам OWIN использует различные хост-адаптеры, чтобы обеспечить связь с базовыми веб-серверами (IIS и многими другими).
Сейчас я работаю с автором веб-сервера Jexus, чтобы выяснить, как мы можем написать хост-адаптер для соединения OWIN / Katana и Jexus. Мы действительно рады узнать, что OWIN является гибким и легко настраиваемым.
Ссылка: http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/
источник
System.Web
.OWIN предназначен для отделения веб-серверов от фреймворков, под которыми вы работаете. Это может сделать приложения легкими и переносимыми для интегрирующих сред и серверов.
А Katana - это реализация Microsoft компонентов OWIN.
С последних нескольких лет Microsoft делает веб-инструменты более гибкими и отзывчивыми по мере того, как их план развивается. Например, разработка ASP.Net MVC и ASP.Net Web API. Они не зависят от System.Web dll, что, по-моему, является огромным бременем для них. Преимущество заключается в том, что исправления могут быть предоставлены своевременно, а цикл быстрее, чем когда-либо. Также теперь разработчики могут развертывать эти приложения на пользовательских хостах OWIN или Katana, что является ссылкой на реализацию OWIN.
Какой смысл в конце концов?
Microsoft выпустила проект, который представляет собой облегченный веб-хостинг на основе OWIN поверх IIS, под названием `Helios. Цель состоит в том, чтобы избежать отношений ASP.NET/IIS, предоставляя некоторые независимые небольшие компоненты, которые можно использовать, устанавливать и управлять независимо, работая на веб-хосте, который реализует спецификации OWIN.
Одной из основных причин является фактор производительности. Helios сможет достичь в 2–3 раза большей пропускной способности, чем стандартное приложение ASP.Net. С точки зрения потребления памяти, Helios намного лучше, чем System.Web dll. В взятом тесте архитектура Helios позволила образцу приложения выполнить 50000 одновременных запросов с примерно 1 ГБ меньше по сравнению со стандартным приложением ASP.Net.
источник
OWIN - это абстракция между веб-приложением и платформой хостинга. Если вы пишете свое веб-приложение, используя OWIN, вы не привязаны к IIS, вы можете использовать другой хост, если хотите.
Вы спросили, зачем использовать OWIN, а не IIS, но это не альтернативы друг другу. OWIN находится между IIS и вашим приложением, так что вы можете отключить IIS, не переписывая свое приложение.
Вы также можете проверить эту страницу https://github.com/Bikeman868/OwinFramework/wiki/OWIN
источник