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 слова (ОВІН / КАТАНА) разом, і багато разів ми плутаємося між різницею між цими двома термінами. Отже, Katana - це впровадження Microsoft інтерфейсу OWIN. Скажімо, є ще одна компанія на ім'я BIG-BOSS, яка хотіла створити власну реалізацію OWIN, вони можуть це зробити і назвати їх реалізацію як "BATANA" та рекламувати фрази на зразок OWIN / BATANA.
Отже, чому ВЛАСНИЙ !!!
Подумайте про країну, де єдиним транспортним засобом, доступним для руху, є вантажівка. Більш нічого. Якщо ви хочете придбати транспортний засіб, ви б придбали вантажівку. Добре, що раніше служило добре, але люди почали розуміти, що їм не потрібен вантажівка весь час, особливо коли вони хочуть подивитися фільм чи купити молоко, водіння важкої вантажівки не тільки коштує високого палива, але й додайте напруги за кермом. Але так, якщо вони хочуть перевезти багато важких речей, вантажівка дуже добре виконує мету.
Тоді уряд цієї країни розробив специфікацію для виробників транспортних засобів. Специфікація така:
- У транспортному засобі потрібно мати 4 колеса
- Транспортний засіб повинен мати кермове управління.
- У транспортному засобі повинні бути фари та сигнальні ліхтарі.
Отже, виходячи з цих специфікацій, кожен може виготовити транспортний засіб відповідно до різних потреб, і він може відповідно назвати свій транспортний засіб. Тому на ринку з'явилися седан, пікап, позашляховик, VAN, ..etc .. всі види транспортних засобів. Якщо комусь не потрібно весь час перевозити важкі речі, а потрібен транспортний засіб лише для виїзду на робоче місце, він / вона може придбати маленький седан. Хтось може придбати позашляховик, якщо йому потрібно трохи більше енергії.
Виходячи з вищенаведеного прикладу, ми можемо сказати, що наш веб-додаток ASP.NET використовує System.Web Assembly, який дуже завантажений (як вантажівка), і якщо ми хочемо зробити невелику веб-програму, де нашою метою є лише обслуговування деяких файлів на базі за невеликим набором запитів ми зобов’язані використовувати цю важку збірку System.Web (вантажівку). Тепер з'являється OWIN. OWIN - це набір специфікацій (ми можемо називати це інтерфейс), який визначає Сервер. Виходячи з цієї специфікації, хтось (наприклад, виробник транспортного засобу) може робити різні види серверів на основі конкретних проблемних доменів / потреб додатків. Microsoft створила власну реалізацію для OWIN з назвою Katana таким же чином, який може обслуговувати Web API. Оскільки WebAPI - це легка технологія, яка не потребує повноцінного продукту System.Web,
Тепер, якщо ви запитаєте: " Чи потрібно мені це?'? Відповідь: "Це залежить від вашої потреби у виконанні". Якщо ви не проти заїхати на вантажівку навіть для того, щоб подивитися фільм, тоді, можливо, вам не потрібна ОСВІТА. Але якщо ви відчуваєте це, легкий автомобіль «Седан» - це все, що вам потрібно для того, щоб їхати в межах міста, на невеликій відстані, подивитися фільм ... і т. Д. Так, ви можете перевірити, які варіанти реалізації OWIN доступні на ринку. Katana - одна з реалізацій OWIN, тому ви можете перевірити, що Katana пропонує. Не тільки Катана, якщо будь-яка інша компанія впроваджує OWIN відповідно до конкретного домену (наприклад, сервер для медичних пристроїв, який завантажує найновішу інформацію про ліки), і якщо ви є лікарем, можливо, ви можете перевірити цю реалізацію OWIN. Крім того, ви самі можете створити власну реалізацію OWIN, орієнтовану на будь-яку конкретну нішу.
Що стосується веб-додатків, якщо ви простий веб-розробник, розробляючи власні веб-сайти для своїх клієнтів, можливо, вам не потрібно турбуватися про власну реалізацію OWIN, тому що IIS буде обслуговувати вас збалансовано. Якщо ви будуєте проект Web API, ви отримаєте готовий шаблон на основі Katana, зроблений з Visual Studio -> New Project, тому вам не доведеться турбуватися ні про що, окрім вивчення конкретних методик Katana. На даний момент Катана недостатньо зрілий, щоб повністю замінити потребу в IIS для ASP.NET MVC, але, можливо, в майбутньому це станеться.
Тоді Коли мені може знадобитися написати власну реалізацію OWIN?
Відповідь: Ну, скажімо, наприклад, ви розробили додаток Windows, яке повинно працювати як сервер у фоновому режимі і слухати номер порту XXXX. Ваш сервер відповість лише на такий набір запитів, як цей:
- Отримати інвентар
- ВИДАЛИТИ Ідентифікатор запасу = 4
- Ідентифікатор інвентаризації PUT = 5
Це все. І більше нічого. Отже, навіщо вам потрібен повний веб-сервер IIS для цього маленького завдання? У цьому випадку ви можете створити власну реалізацію OWIN. (Можливо, ви будете використовувати для цього Катану)
Гаразд, тому я зрозумів, що якщо я хочу зробити веб-сайт ASP.NET MVC, я не маю можливості замінити IIS, то навіщо мені зараз знати про Катану?
Відповідь: Незважаючи на те, що Katana недостатньо зріла, щоб замінити потребу в IIS, щоб ви могли розмістити свій веб-сайт ASP.NET MVC безпосередньо на Katana, проте Katana реалізував багато крутих інтерфейсів OWIN, щоб ви могли скористатися перевагою використання цих функцій осторонь. Наприклад, дозволити своїм користувачам входити в систему за допомогою Facebook, Google, Twitter тощо не було дуже просто. Katana дає вам багато гачків (як середній посуд), так що ви можете дозволити Katana піклуватися про зовнішню аутентифікацію на основі соціальних медіа, без написання сантехнічного коду. Є багато інших переваг використання Katana, які ви можете дізнатися, коли ви почнете використовувати цю технологію.