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
}
}
}
Tak to prawda. OWIN to interfejs, a Katana to implementacja interfejsu OWIN przez Microsoft . Dlatego słyszymy te 2 słowa (OWIN / KATANA) razem i często mylimy się między różnicą między tymi 2 terminami. Katana to implementacja interfejsu OWIN firmy Microsoft. Powiedzmy, że istnieje inna firma o nazwie BIG-BOSS, która chciała stworzyć własną implementację OWIN, może to zrobić i nazwać swoją implementację „BATANA” oraz reklamować frazy takie jak OWIN / BATANA.
Dlaczego więc OWIN !!!
Pomyśl o kraju, w którym jedynym pojazdem dostępnym do ruchu jest ciężarówka. Nic więcej. Jeśli chcesz kupić pojazd, kupisz ciężarówkę. Kiedyś dobrze to służyło, ale ludzie zaczęli zdawać sobie z tego sprawę, że nie potrzebują ciągłej ciężarówki, zwłaszcza gdy chcą iść obejrzeć film lub kupić mleko, jazda ciężką ciężarówką kosztuje nie tylko wysokie paliwo, ale także dodać stres podczas jazdy. Ale tak, jeśli chcą przewozić dużo ciężkich rzeczy, ciężarówka bardzo dobrze służy temu celowi.
Następnie rząd tego kraju opracował specyfikację dla producentów pojazdów. Specyfikacja jest następująca:
- Pojazd musi mieć 4 koła
- Pojazd musi mieć układ kierowniczy.
- Pojazd musi mieć reflektory i światła sygnalizacyjne.
Na podstawie tych specyfikacji każdy może wykonać pojazd według różnych potrzeb i odpowiednio nazwać swój pojazd. Dlatego Sedan, Pickup Truck, SUV, VAN, ..etc .. wszelkiego rodzaju pojazd pojawił się na rynku. Jeśli ktoś nie musi cały czas nosić ciężkich rzeczy, a raczej potrzebuje pojazdu tylko do pracy, może kupić małego sedana. Ktoś może kupić SUV, jeśli potrzebuje niewiele więcej mocy.
Na podstawie powyższego przykładu możemy powiedzieć, że nasza aplikacja sieci Web ASP.NET korzysta z mocno obciążonego zestawu System.Web (takiego jak ciężarówka) i jeśli chcemy stworzyć małą aplikację internetową, w której naszym celem jest po prostu obsługa niektórych plików na niewielkim zestawie żądań jesteśmy zobowiązani do użycia tego ciężkiego zestawu System.Web (ciężarówka). Teraz pojawia się OWIN. OWIN to zestaw specyfikacji (możemy to nazwać interfejsem) definiujący serwer. W oparciu o tę specyfikację ktoś (np. Producent pojazdu) może tworzyć różnego rodzaju serwery w oparciu o określone domeny problemowe / potrzeby aplikacji. Microsoft stworzył własną implementację dla OWIN o nazwie Katana w ten sam sposób, który może obsługiwać interfejs API sieci Web. Ponieważ WebAPI to lekka technologia, która nie wymaga w pełni rozwiniętego systemu.
Teraz, jeśli zapytacie: „ Czy potrzebuję tego?„? Odpowiedź brzmi: „To zależy od twojej potrzeby wydajności”. Jeśli nie masz nic przeciwko prowadzeniu ciężarówki nawet na obejrzenie filmu, być może nie potrzebujesz OWIN. Ale jeśli uważasz, że lekki samochód Sedan to wszystko, czego potrzebujesz, aby jechać w mieście, na niewielką odległość, obejrzeć film ... itd. Tak, możesz sprawdzić, jakie wdrożenia OWIN są dostępne na rynku. Katana jest jedną z implementacji OWIN, dlatego możesz sprawdzić, co oferuje Katana. Nie tylko Katana, jeśli jakakolwiek inna firma wdraża OWIN zgodnie z określoną domeną (na przykład serwer urządzeń medycznych, który pobierze najnowsze informacje o medycynie), a jeśli jesteś lekarzem, być może możesz sprawdzić wdrożenie OWIN. Co więcej, możesz sam stworzyć własną implementację OWIN, kierując ją do dowolnej konkretnej niszy.
Jeśli chodzi o aplikacje internetowe, jeśli jesteś prostym programistą WWW, opracowując niestandardowe strony internetowe dla swoich klientów, być może nie musisz martwić się niestandardową implementacją OWIN, ponieważ IIS będą Ci służyć w zrównoważony sposób. Jeśli zbudujesz projekt Web API, otrzymasz gotowy szablon oparty na Katanie z Visual Studio -> Nowy projekt, więc nie będziesz musiał się martwić o nic innego niż nauczenie się określonych technik Katana. W tej chwili Katana nie jest wystarczająco dojrzała, aby całkowicie zastąpić potrzebę IIS dla ASP.NET MVC, ale być może w przyszłości tak się stanie.
Kiedy więc będę musiał napisać własną implementację OWIN?
Odpowiedź: Załóżmy na przykład, że opracowałeś aplikację Windows, która powinna działać jako serwer w tle i słuchać numeru portu XXXX. Twój serwer będzie odpowiadał tylko na niektóre zestawy takich zapytań:
- POBIERZ Zapasy
- USUŃ ID magazynu = 4
- Identyfikator inwentarza PUT = 5
To wszystko. I nic więcej. Dlaczego więc potrzebujesz pełnego serwera IIS do tego małego zadania? W takim przypadku możesz utworzyć własną implementację OWIN. (Być może użyjesz do tego Katany)
Ok, więc zrozumiałem, że jeśli chcę stworzyć stronę ASP.NET MVC, nie mam możliwości zastąpienia IIS, to dlaczego powinienem w tej chwili wiedzieć o Katanie?
Odpowiedź: Chociaż Katana nie jest wystarczająco dojrzała, aby zastąpić potrzebę usług IIS, aby można było hostować witrynę ASP.NET MVC bezpośrednio na platformie Katana, ale Katana zaimplementowała wiele ciekawych interfejsów OWIN, dzięki czemu można korzystać z tych funkcji po stronie przy boku. Na przykład zezwolenie użytkownikom na logowanie się za pomocą Facebooka, Google, Twittera itp. Nie było wcześniej łatwe. Katana oferuje wiele haczyków (jako oprogramowanie pośrednie), dzięki czemu Katana może łatwo zająć się zewnętrznym uwierzytelnianiem opartym na mediach społecznościowych bez pisania kodu hydraulicznego. Istnieje wiele innych korzyści z używania Katany, które możesz dowiedzieć się, kiedy zaczniesz korzystać z tej technologii.