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):
vNext jest następcą Katany (dlatego wyglądają tak podobnie). Katana była początkiem odejścia od System.Web i bardziej modułowych komponentów do stosu WWW. Możesz zobaczyć vNext jako kontynuację tej pracy, ale idącą znacznie dalej (nowy CLR, nowy system projektu, nowe abstrakty http).
Wszystko, co istnieje dzisiaj w Katanie, przejdzie do 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