Verwendet ASP.NET Core weiterhin OWIN?

8

Ich habe bemerkt, wenn C # verwendet wird, um ein älteres MVC-Projekt zu erstellen, dass es viele Verweise auf eine OWIN-Bibliothek gibt. Aber beim Erstellen einer .NET Core-Webanwendung in VS2015 SP3 scheint es keinen Hinweis darauf zu geben.

Ist diese Bibliothek veraltet?

    
Troskyvs 02.08.2016, 06:25
quelle

1 Antwort

10

OWIN ist keine Bibliothek, es ist eine Spezifikation . Aus den Dokumenten,

  

OWIN definiert eine Standardschnittstelle zwischen .NET-Webservern und Webanwendungen.

Die "große Idee" von OWIN ist, dass Sie Anwendungen von den Servern, auf denen sie laufen, entkoppeln können, wenn sich alle auf eine gemeinsame Schnittstelle einigen können. In der Praxis kann ein OWIN-kompatibler Server jede OWIN-kompatible Anwendung ausführen. Dies ist eine Verbesserung gegenüber der engen Kopplung, die wir in der Vergangenheit hatten (Anwendungen können nur auf IIS ausgeführt werden, und das ist es).

Viele der OWIN-Spezifikationen sind dazu bestimmt, die Namen verschiedener Eigenschaften zu beschreiben. Ein OWIN-kompatibler Server wandelt eingehende Anfragen in ein Dictionary<string, object> um, das einen Schlüsselbund wie owin.RequestBody und owin.ResponseBody enthält. Wenn die Anwendung oder Middleware, an die die Anforderung übergeben wird, diese Schlüssel lesen kann, kann sie die Anforderung verarbeiten. Das ist es!

There sind OWIN-Bibliotheken (wie OWIN und Microsoft.Owin ), das eine häufige Quelle der Verwirrung ist. Diese Bibliotheken sind nur typsichere Implementierungen der OWIN-Schnittstelle oder Helfer, die die Interaktion mit OWIN-kompatiblen Komponenten erleichtern.

Wie @Murray und @Tseng gezeigt haben, ist ASP.NET Core nicht auf OWIN aufgebaut, aber OWIN-kompatibel. Oder die Server , auf denen ASP.NET Core ausgeführt wird (Kestrel, WebListener, IIS), sind OWIN-kompatibel. ASP.NET Core ist eine weitere Abstraktion über Anfragen auf niedriger Ebene (die "OWIN-Ebene") und macht es einfach, Dinge wie Controller und Server-gerenderte Seiten zu erstellen.

Da ASP.NET Core OWIN-kompatibel ist, ist es einfach, jede OWIN-kompatible Middleware anzuschließen. Das Microsoft.AspNetCore.Owin -Paket macht eine UseOwin -Methode verfügbar:

%Vor%

Weitere Informationen zum Hinzufügen von OWIN-Middleware zur ASP.NET Core-Pipeline finden Sie in der Dokumentation .

    
Nate Barbettini 02.08.2016, 17:18
quelle