Czytałem wiele artykułów o projektach OWIN i Katana, ale nie mogłem uzyskać pełnego obrazu tego.
Dla zwykłego programisty korzystającego z ASP.NET:
- Czym dokładnie jest OWIN i jakie problemy rozwiązuje (w prostych słowach). Jaki jest jej związek z IIS?
- Czy OWIN zastępuje IIS? jeśli nie, w jakich sytuacjach OWIN najlepiej pasuje?
- W jaki sposób OWIN może mi pomóc w codziennych projektach pracy?
- W jaki sposób OWIN może mi pomóc w projektach samodoskonalenia?
Odpowiedzi:
W odniesieniu do powyższego komentarza OWIN nie jest ramą. OWIN to specyfikacja dotycząca sposobu budowania serwerów i aplikacji internetowych w celu ich rozdzielenia i umożliwienia przenoszenia aplikacji ASP.NET do środowisk, które nie były wcześniej obsługiwane.
Przed budowaniem aplikacji ASP.NET przed OWIN byłeś z natury związany z usługami IIS z powodu dużej zależności od
System.Web
asemblera.System.Web
to coś, co istnieje od czasu ASP (wersja inna niż .NET) i wewnętrznie zawiera wiele rzeczy, których możesz nawet nie potrzebować (takich jak formularze sieciowe lub autoryzacja adresów URL), które domyślnie działają na każde żądanie, zużywając zasoby i tworząc ASP Aplikacje .NET są generalnie wolniejsze niż ich odpowiedniki, takie jak na przykład Node.js.Sam OWIN nie ma żadnych narzędzi, bibliotek ani niczego innego. To tylko specyfikacja.
Z drugiej strony Katana jest w pełni rozwiniętym frameworkiem stworzonym do utworzenia pomostu między obecnymi frameworkami ASP.NET a specyfikacją OWIN. W tej chwili Katana z powodzeniem dostosowała następujące frameworki ASP.NET do OWIN:
ASP.NET MVC i formularze sieciowe nadal działają wyłącznie za pośrednictwem System.Web, a na dłuższą metę planuje się ich również oddzielić.
Z drugiej strony IIS jest dobrym, zaradnym hostem dla serwerów WWW. Całe problemy z wydajnością ASP.NET przy użyciu IIS mają głębokie korzenie
System.Web
. Do niedawna decydując o tym, jak będziesz hostować swój serwer WWW, dysponowałeś dwiema opcjami:Więc jeśli chciałbyś występu, wybrałbyś opcję samodzielnego hostowania. Jeśli chciałbyś mieć wiele gotowych funkcji, które zapewnia IIS, wybrałbyś IIS, ale straciłbyś na wydajności.
Teraz jest trzecia opcja, biblioteka Microsoft o nazwie Helios (obecna nazwa kodowa), która zamierza usunąć
System.Web
z drogi i umożliwić korzystanie z IIS w bardziej „czystszy” sposób, bez zbędnych bibliotek lub modułów. Helios jest teraz w wersji wstępnej i czeka na dodatkowe opinie społeczności, aby w pełni obsługiwać produkt Microsoft.Mam nadzieję, że to wyjaśnienie wyjaśni ci lepiej.
EDYCJA (wrz 2014):
Ponieważ ASP.NET vNext jest w fazie rozwoju, Katana powoli przechodzi na emeryturę. Wersja 3.0 najprawdopodobniej będzie ostatnią dużą wersją Katany jako samodzielnej platformy.
Jednak wszystkie koncepcje wprowadzone z Kataną są zintegrowane z ASP.NET vNext, co oznacza, że model programowania będzie prawie taki sam. Cytat z postu na forum autorstwa Davida Fowlera (architekta ASP.NET vNext):
EDYCJA (luty 2015):
ASP.NET vNext jest teraz znany jako ASP.NET 5 i zostanie zbudowany na platformie .NET Core 5. .NET Core 5 to lekka faktorowa wersja .NET Framework, zaprojektowana do obsługi celów ASP.NET 5 i .NET Native . Jednak ASP.NET 5 będzie również obsługiwany przez .NET Framework 4.6, który powinien być dostępny wraz z .NET Core 5. Zarówno ASP.NET 5, jak i .NET Core 5 będą licencjonowane na MIT i będą przyjmować wkłady społeczności.
EDYCJA (maj 2015):
Dodatkowo marka ASP.NET Web API zostanie wycofana, jednak jej technologia będzie bazowa dla nowego ASP.NET MVC 6. Poprzednie wersje ASP.NET MVC były budowane przez wdrożenie IHttpHandler, interfejsu zdefiniowanego w
System.Web
. Program ASP.NET MVC 6 usuwa tę zależność, dzięki czemu jest przenośny na różne platformy i serwery sieciowe.EDYCJA (maj 2016):
Nazwa ASP.NET 5 zostanie oficjalnie zmieniona na ASP.NET Core, począwszy od wersji Candidate 2, która ma zostać wkrótce wydana. To samo dotyczy Entity Framework 7, którego nazwa zostanie zmieniona na Entity Framework Core. Więcej informacji o oficjalnym ogłoszeniu i jego przyczynach można znaleźć na blogu Scotta Hanselmana: ASP.NET 5 nie żyje - Przedstawiamy ASP.NET Core 1.0 i .NET Core 1.0
EDYCJA (maj 2016):
Wraz z wydaniem Release Candidate 2 program ASP.NET Core został zmodyfikowany, tak aby przyszłe aplikacje internetowe były w rzeczywistości konfiguracją aplikacji konsolowych .NET Core do przetwarzania przychodzących żądań HTTP . Ta koncepcja sprawia, że program ASP.NET Core jest jeszcze bardziej dostosowany do podejścia przyjętego przez Microsoft przy obsłudze architektury mikrousług i jej implementacji za pośrednictwem usługi Azure Service Fabric. Więcej informacji na ten temat można znaleźć na oficjalnym blogu: Ogłoszenie ASP.NET Core RC2
źródło
Gdybym musiał zdefiniować OWIN dla siebie, byłoby to: „Najlepsze pomysły ze społeczności deweloperów Ruby i Node.js, dostępne w .NET”
Ale to nie pomogłoby żadnemu deweloperowi ASP.NET. Moja własna definicja byłaby czymś w rodzaju:
OWIN definiuje standardowy interfejs między serwerami WWW .NET a aplikacjami internetowymi. Interfejs OWIN ma na celu rozłączenie serwera i aplikacji. Jeśli muszę odpowiedzieć na postawione pytania, oto:
OWIN to specyfikacja interfejsu. Oddziela aplikacje internetowe od IIS.
Jeśli używasz gotowych komponentów (czyli Katana), to niektóre części funkcjonalności aplikacji są znacznie łatwiejsze do wdrożenia w porównaniu do starego ASP.NET. Uwierzytelnianie za pomocą zewnętrznych dostawców tożsamości (Facebook, Twitter) jest tego przykładem.
źródło
Spróbuję objąć to z praktycznego punktu widzenia.
Katana to nazwa projektu do wdrożenia OWIN w Microsoft .
Czym dokładnie jest OWIN i jakie problemy rozwiązuje (w prostych słowach). Jaki jest jej związek z IIS? OWIN ( Open Web Interface for .NET ) jest standardem ( specyfikacja OWIN ), a Katana jest biblioteką .NET, możesz stąd pobrać nuget . OWIN i Katana stały się nieco synonimami w sieci.
Przed OWIN jedyną opcją był
IIS
OWIN, możesz używać dowolnej innej aplikacji (która ma punkt wejścia) jako serwera WWW.Czy OWIN zastępuje IIS? jeśli nie, w jakich sytuacjach OWIN najlepiej pasuje?
Nie, to nie zastępuje usług IIS, możesz użyć OWIN i usług IIS ,
Microsoft.Owin.Host.SystemWeb
które są do tego przeznaczone . Najlepiej pasuje, jeśli chcesz zoptymalizować / zmienić sposób, w jaki jest obsługiwany w usługach IIS, lub chcesz utworzyć niestandardowy serwer internetowy z, powiedzmy, aplikacji Windows Forms.W jaki sposób OWIN może mi pomóc w codziennych projektach pracy?
Może to obniżyć koszty eksploatacji serwera, ponieważ serwery WWW nie muszą już działać w IIS (Windows) (serwery Windows są droższe niż serwery z Uniksem i można je uruchomić w aplikacji konsolowej pod Mono w Linuksie).
W jaki sposób OWIN może mi pomóc w projektach samodoskonalenia?
Nauka
Microsoft.Owin
(i inne powiązane biblioteki OWIN) poprawią twoją wiedzę na temat działania komunikacji HTTP między klientem a serwerem WWW.Dobra lektura, jeśli chcesz dowiedzieć się więcej o tym, czym jest Katana i OWIN.
źródło
Co to jest OWIN?
OWIN to skrót od Open Web Interface for .NET. OWIN to specyfikacja opisująca, w jaki sposób środowiska programistyczne takie jak ASP.NET MVC powinny oddziaływać z serwerami WWW. Celem OWIN jest oddzielenie aplikacji internetowych od serwera poprzez wprowadzenie warstwy abstrakcji. Taka abstrakcja umożliwia uruchomienie tej samej aplikacji na wszystkich serwerach internetowych, które obsługują OWIN. Dodatkowo upraszcza cały system, ponieważ warstwa abstrakcji może zapewnić lekką infrastrukturę do hostowania aplikacji. IIS zapewnia bogaty zestaw funkcji dla aplikacji internetowych. Jednak aplikacje internetowe mogą nie potrzebować wszystkich tych funkcji. Może im wystarczyć minimalne możliwości przetwarzania HTTP. Host kompatybilny z OWIN może zapewnić takie środowisko hostingowe dla tych aplikacji. Co więcej, możesz zdefiniować potok modułów używanych podczas przetwarzania żądania. Potok OWIN to łańcuch kompatybilnych komponentów OWIN, przez który przechodzi żądanie.
Co to jest Katana?
Katana to zestaw komponentów firmy Microsoft zbudowany przy użyciu specyfikacji OWIN. Niektóre z tych komponentów to Web API, ASP.NET Identity i SignalR.
Powyżej znajduje się fragment artykułu CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm
źródło