Ich habe viele Artikel über die OWIN- und Katana-Projekte gelesen, konnte mir aber nicht das ganze Bild davon machen.
Für einen normalen Webentwickler, der ASP.NET verwendet:
- Was genau ist OWIN und welche Probleme löst es (in einfachen Worten). In welcher Beziehung steht es zu IIS?
- Ersetzt OWIN IIS? Wenn nicht, in welche Situationen passt OWIN am besten?
- Wie könnte OWIN mir bei meinen täglichen Arbeitsprojekten helfen?
- Wie könnte OWIN mir bei Selbstverbesserungsprojekten helfen?
Antworten:
In Bezug auf den obigen Kommentar ist OWIN kein Framework. OWIN ist eine Spezifikation, wie Webserver und Webanwendungen erstellt werden sollen, um sie zu entkoppeln und das Verschieben von ASP.NET-Anwendungen in Umgebungen zu ermöglichen, die zuvor nicht unterstützt wurden.
Vor OWIN waren Sie beim Erstellen einer ASP.NET-Anwendung aufgrund der starken Abhängigkeit von der
System.Web
Assembly von Natur aus an IIS gebunden .System.Web
ist etwas, das seit ASP (Nicht-.NET-Version) existiert und intern viele Dinge enthält, die Sie möglicherweise nicht einmal benötigen (wie Web Forms oder URL-Autorisierung), die standardmäßig bei jeder Anforderung ausgeführt werden, wodurch Ressourcen verbraucht und ASP erstellt werden .NET-Anwendungen sind im Allgemeinen viel langsamer als ihre Gegenstücke wie beispielsweise Node.js.OWIN selbst hat keine Tools, Bibliotheken oder sonst etwas. Es ist nur eine Spezifikation.
Katana hingegen ist ein vollständig entwickeltes Framework, das eine Brücke zwischen den aktuellen ASP.NET-Frameworks und der OWIN-Spezifikation schlägt. Derzeit hat Katana die folgenden ASP.NET-Frameworks erfolgreich an OWIN angepasst:
ASP.NET MVC und Web Forms werden weiterhin ausschließlich über System.Web ausgeführt, und auf lange Sicht ist geplant, diese ebenfalls zu entkoppeln.
Andererseits ist IIS ein guter, einfallsreicher Host für Webserver. Ganze ASP.NET-Leistungsprobleme mit IIS haben nur tiefe Wurzeln
System.Web
. Bis vor kurzem hatten Sie bei der Entscheidung, wie Sie Ihren Webserver hosten möchten, zwei Möglichkeiten:Wenn Sie also eine Aufführung wünschen, entscheiden Sie sich für eine Selbsthost-Option. Wenn Sie viele sofort einsatzbereite Funktionen von IIS wünschen, würden Sie sich für IIS entscheiden, aber an Leistung verlieren.
Jetzt gibt es eine dritte Option, eine Microsoft-Bibliothek namens Helios (aktueller Codename), die
System.Web
aus dem Weg geräumt werden soll und die es Ihnen ermöglicht, IIS "sauberer" zu verwenden, ohne unnötige Bibliotheken oder Module. Helios ist jetzt in der Vorabversion und wartet auf weitere Community-Rückmeldungen, damit das Microsoft-Produkt vollständig unterstützt wird.Hoffe, diese Erklärung klärt die Dinge besser für Sie.
EDIT (Sep 2014):
Mit der Entwicklung von ASP.NET vNext geht Katana langsam in den Ruhestand. Version 3.0 wird höchstwahrscheinlich die letzte Hauptversion von Katana als eigenständiges Framework sein.
Alle mit Katana eingeführten Konzepte werden jedoch in ASP.NET vNext integriert, was bedeutet, dass das Programmiermodell nahezu identisch ist. Zitat aus dem Forumsbeitrag von David Fowler (Architekt von ASP.NET vNext):
BEARBEITEN (Februar 2015):
ASP.NET vNext wird jetzt als ASP.NET 5 bezeichnet und basiert auf .NET Core 5. .NET Core 5 ist eine leichtgewichtige faktorisierte Version von .NET Framework, die zur Unterstützung der Ziele von ASP.NET 5 und .NET Native entwickelt wurde . ASP.NET 5 wird jedoch auch von .NET Framework 4.6 unterstützt, das zusammen mit .NET Core 5 verfügbar sein sollte. Sowohl ASP.NET 5 als auch .NET Core 5 werden unter MIT lizenziert und akzeptieren Community-Beiträge.
EDIT (Mai 2015):
Darüber hinaus wird die Marke ASP.NET Web API eingestellt, die Technologie basiert jedoch auf dem neuen ASP.NET MVC 6. Frühere ASP.NET MVC-Versionen wurden durch Implementierung von IHttpHandler, einer in definierten Schnittstelle, erstellt
System.Web
. ASP.NET MVC 6 entfernt diese Abhängigkeit und macht sie auf verschiedene Plattformen und Webserver portierbar.EDIT (Mai 2016):
ASP.NET 5 wird ab Release Candidate 2, das in Kürze veröffentlicht werden soll, offiziell in ASP.NET Core umbenannt. Gleiches gilt für Entity Framework 7, das in Entity Framework Core umbenannt wird. Weitere Informationen zu offiziellen Ankündigungen und Gründen dafür finden Sie in Scott Hanselmans Blog-Beitrag: ASP.NET 5 ist tot - Einführung in ASP.NET Core 1.0 und .NET Core 1.0
EDIT (Mai 2016):
Mit der Veröffentlichung von Release Candidate 2 wurde ASP.NET Core so geändert, dass zukünftige Webanwendungen eigentlich nur .NET Core-Konsolenanwendungen sind, die zur Verarbeitung eingehender HTTP-Anforderungen eingerichtet wurden . Durch dieses Konzept wird ASP.NET Core noch besser auf den Ansatz abgestimmt, den Microsoft bei der Unterstützung der Microservices-Architektur und deren Implementierung über Azure Service Fabric verfolgt hat. Weitere Informationen zu finden Sie im offiziellen Blog-Beitrag: Ankündigung von ASP.NET Core RC2
quelle
Wenn ich OWIN für mich selbst definieren muss, wäre das: "Die besten Ideen aus den Webentwicklungs-Communities von Ruby und Node.j, die zu .NET kommen."
Dies würde jedoch keinem ASP.NET-Entwickler helfen. Meine eigene Definition wäre etwas in der Art von:
OWIN definiert eine Standardschnittstelle zwischen .NET-Webservern und Webanwendungen. Das Ziel der OWIN-Schnittstelle ist die Entkopplung von Server und Anwendung. Wenn ich die von Ihnen gestellten Fragen beantworten muss, ist dies hier:
OWIN ist eine Schnittstellenspezifikation. Es entkoppelt eine Webanwendung von IIS.
Wenn Sie vorgefertigte Komponenten verwenden (was Katana ist), sind einige Teile der Anwendungsfunktionalität im Vergleich zu altem ASP.NET viel einfacher zu implementieren. Die Authentifizierung bei Identitätsanbietern von Drittanbietern (Facebook, Twitter) ist ein Beispiel dafür.
quelle
Ich werde versuchen, es aus praktischer Sicht zu behandeln.
Katana ist der Projektname für die Implementierung von OWIN in Microsoft .
Was genau ist OWIN und welche Probleme löst es (in einfachen Worten). In welcher Beziehung steht es zu IIS? OWIN ( Open Web Interface für .NET ) ist ein Standard ( OWIN-Spezifikation ) und Katana ist eine .NET-Bibliothek. Sie können Nuget hier herunterladen . OWIN und Katana wurden im Web zu einem Synonym.
Vor OWIN war Ihre einzige Option
IIS
OWIN. Sie können jede andere Anwendung (mit Einstiegspunkt) als Webserver verwenden.Ersetzt OWIN IIS? Wenn nicht, in welche Situationen passt OWIN am besten?
Nein, es ersetzt IIS nicht. Sie können OWIN und IIS verwenden.
Microsoft.Owin.Host.SystemWeb
Dafür gibt es ein Nuget . Es ist am besten geeignet, wenn Sie die Art und Weise, wie es in IIS gehandhabt wird, optimieren / ändern möchten oder wenn Sie Ihren benutzerdefinierten Webserver aus beispielsweise Windows Forms Application erstellen möchten.Wie könnte OWIN mir bei meinen täglichen Arbeitsprojekten helfen?
Dies könnte die laufenden Kosten Ihres Servers senken, da Ihre Webserver nicht mehr unter IIS (Windows) ausgeführt werden müssen (Windows-Server sind teurer als Unix-basierte Server, und Sie können sie unter Mono unter Linux auf der Konsolenanwendung ausführen).
Wie könnte OWIN mir bei Selbstverbesserungsprojekten helfen?
Das Lernen
Microsoft.Owin
(und andere verwandte OWIN-Bibliotheken) verbessert Ihr Wissen darüber, wie die HTTP-Kommunikation zwischen Client und Webserver funktioniert.Lesen Sie gut, wenn Sie mehr darüber erfahren möchten, was Katana und OWIN sind.
quelle
Was ist OWIN?
OWIN steht für Open Web Interface for .NET. OWIN ist eine Spezifikation, die beschreibt, wie Webentwicklungsframeworks wie ASP.NET MVC mit den Webservern interagieren sollen. Das Ziel von OWIN ist es, Webanwendungen durch Einführung einer Abstraktionsschicht vom Webserver zu entkoppeln. Mit einer solchen Abstraktion können Sie dieselbe Anwendung auf allen Webservern ausführen, die OWIN unterstützen. Darüber hinaus wird das Gesamtsystem vereinfacht, da die Abstraktionsschicht eine kompakte Infrastruktur zum Hosten der Anwendungen bereitstellen kann. IIS bietet den Webanwendungen eine Vielzahl von Funktionen. Webanwendungen benötigen jedoch möglicherweise nicht alle diese Funktionen. Es kann ausreichend sein, dass sie nur über minimale HTTP-Verarbeitungsfunktionen verfügen. OWIN-kompatibler Host kann diesen Anwendungen eine solche Hosting-Umgebung bereitstellen. Außerdem, Sie können eine Pipeline von Modulen definieren, die während der Anforderungsverarbeitung verwendet werden. Eine OWIN-Pipeline ist eine Kette von OWIN-kompatiblen Komponenten, durch die eine Anforderung geleitet wird.
Was ist Katana?
Katana ist eine Reihe von Komponenten von Microsoft, die nach OWIN-Spezifikationen erstellt wurden. Einige dieser Komponenten umfassen Web-API, ASP.NET Identity und SignalR.
Oben ist ein Auszug aus dem CodeGuru-Artikel: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm
quelle