2014-04-07 9 views
11

Ich ging durch http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana und fragte mich, was ist der Unterschied zwischen HTTP-Modul und OWIN Middleware. Einige Zeiger, die ich denken kann, sindUnterschied zwischen HTTP-Modul und OWIN Middleware

1) Owin Middleware entkoppelt die Anwendung von Host/Server. Es ist also nicht mehr notwendig, dass ich meine Anwendungslogik speziell an System.Web anhefte. 2) OWIN-Middleware wird in der Reihenfolge ausgeführt, in der sie hinzugefügt werden (nicht sicher, ob das Gleiche für HttpModule gilt; hängt davon ab wie ich sie in web.config hinzugefügt habe)

3) HttpModules hilft mir, meinen Code an eine Anwendung Ereignisse anzuhängen. Owin Middleware ist unabhängig von diesen Ereignissen

Bitte lassen Sie mich auch praktische Beispiel für die Verwendung eines OWIN-Moduls und kein HttpModule kennen.

Einige weitere Links landete ich lesen(i über das Hinzufügen von hier halten werden, wie und wann ich neue Begegnung) http://www.cloudidentity.com/blog/2013/07/23/securing-a-web-api-with-windows-azure-ad-and-katana/

aktualisieren: vielleicht hat dies den anwer i für anschaute http://www.asp.net/aspnet/overview/owin-and-katana/owin-middleware-in-the-iis-integrated-pipeline

When should I use OWIN Katana?

Dank.

Antwort

13

1) und 3) ist richtig, 2) gilt auch für HttpModule, also kein Unterschied. Der Punkt ist, dass OWIN nicht die sehr komplexe Infrastruktur von ASP.NET-Anfragen hat und es Host-unabhängig ist. Tatsächlich können Sie OWIN-Anwendungen in einer anderen .NET-Anwendung hosten, wenn Sie dies wünschen.

Soweit es mich betrifft, wenn Sie mit einer modernen Infrastruktur gehen, auf ASP.NET MVC, WebApi oder dergleichen gebaut, vergessen Sie HttpModules. Sie sind Teil einer Infrastruktur, die vor langer Zeit gebaut wurde, und für sehr unterschiedliche Probleme, mit denen moderne Webentwickler konfrontiert sind. Es ist auch normalerweise viel einfacher, verschiedene Dienste unter OWIN zu integrieren (und die eingebaute OAuth-Authentifizierung und Similar-Befehle sind ziemlich praktisch). Wenn Sie noch Webanwendungen entwickeln, die das "alte" WebForms-Modell verwenden, ist HttpModules immer noch eine bessere Wahl - das Hosten von WebForms in OWIN ist möglich (und funktioniert wahrscheinlich gut), aber die Vorteile verschwinden. Wenn Sie jedoch einen dünnen HTTP-Endpunkt wünschen, ist OWIN einfach großartig. Es ist sehr leicht und einfach im Vergleich zu der alten ASP.NET-Infrastruktur. Die Tatsache, dass es nicht stark mit IIS verbunden ist, ist nur ein Sahnehäubchen. Persönlich benutze ich es immer noch mit IIS, obwohl ich definitiv eine Verwendung für einen leichten HTTP-Server in einem anderen Dienst sehen kann. Vergessen Sie auch nicht, dass die IIS-Version an die Windows-Version gebunden ist - die Verwendung aller aktuellen Funktionen erfordert oft ein Server-Upgrade auf IIS.

+0

Dank, teilen Sie den Anwendungsfall "für einen leichten HTTP-Server in einem anderen Dienst" –

+1

@PerakK Ein Beispiel wäre ein WebAPI-Endpunkt für einen Windows-Dienst. Eine andere wäre eine Verwaltungsschnittstelle für einen Dienst - HTML funktioniert dafür ziemlich gut und Sie müssen es nicht für Tausende von gleichzeitigen Anforderungen skalieren. Und natürlich, alles andere, wo es dir nicht wirklich wichtig ist zu skalieren - sprich eine Live-Website eines MMOs - wenn dein Server 1000 Spieler verwalten kann, kann es auch damit umgehen, eine Webseite für sie bereitzustellen. – Luaan

Verwandte Themen