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 - это интерфейс, а Katana - реализация интерфейса OWIN от Microsoft . Поэтому мы слышим эти 2 слова (OWIN / KATANA) вместе, и мы часто путаем разницу между этими 2 терминами. Итак, Katana - это реализация Microsoft интерфейса OWIN. Скажем, есть другая компания по имени BIG-BOSS, которая хотела создать свою собственную реализацию OWIN, они могут сделать это и назвать свою реализацию «BATANA» и рекламировать фразы, такие как OWIN / BATANA.
Итак, почему ОИН !!!
Подумайте о стране, где единственным транспортным средством, доступным для передвижения, является грузовик. Ничего больше. Если вы хотите купить автомобиль, вы бы купили грузовик. Ну, это раньше служило хорошо, но люди начали понимать, что им не нужен грузовик все время, особенно когда они хотят пойти посмотреть фильм или купить молоко, вождение тяжелого грузовика не только стоит дорого, но и добавить стресс на вождение. Но да, если они хотят нести много тяжелых грузов, грузовик очень хорошо справляется с этой задачей.
Затем правительство этой страны разработало спецификацию для производителей транспортных средств. Спецификация выглядит следующим образом:
- Транспортное средство должно иметь 4 колеса
- Автомобиль должен иметь рулевое управление.
- Автомобиль должен иметь фары и сигнальные огни.
Таким образом, на основании этих спецификаций любой может изготовить автомобиль в соответствии с различными потребностями, и они могут соответственно назвать свое транспортное средство. Таким образом, седан, пикап, внедорожник, фургон, ... и т. Д. Все виды автомобилей появились на рынке. Если кому-то не нужно нести тяжелые вещи постоянно, а нужен автомобиль только для того, чтобы идти на работу, он может купить маленький седан. Кто-то может купить внедорожник, если ему нужно немного больше энергии.
Исходя из приведенного выше примера, мы можем сказать, что наше веб-приложение 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. Ваш сервер будет отвечать только на некоторые запросы:
- ПОЛУЧИТЬ инвентарь
- УДАЛИТЬ ID инвентаря = 4
- PUT Inventory ID = 5
Вот и все. И ничего больше. Итак, зачем вам нужен полный веб-сервер IIS для этой маленькой задачи? В этом случае вы можете создать свою собственную реализацию OWIN. (Возможно, вы будете использовать Katana для этого)
Итак, я понял, что, если я хочу создать веб-сайт ASP.NET MVC, у меня нет возможности заменить IIS, то зачем мне сейчас знать о Katana?
Ответ: Несмотря на то, что Katana недостаточно развита, чтобы заменить потребность в IIS, чтобы вы могли разместить свой веб-сайт ASP.NET MVC непосредственно на Katana, но Katana реализовала множество интересных интерфейсов OWIN, чтобы вы могли воспользоваться преимуществами использования этих функций на стороне рядом Например, разрешить пользователям входить в систему с помощью Facebook, Google, Twitter и т. Д. Раньше было непросто. Katana предоставляет вам множество хуков (в качестве промежуточного программного обеспечения), чтобы вы могли позволить Katana легко позаботиться о внешней аутентификации на основе социальных сетей без написания программного кода. Есть много других преимуществ использования Katana, которые вы можете узнать, когда начнете использовать эту технологию.