Es ist eigentlich ganz einfach. Sie würden eine Middleware erstellen, um eine Anforderung zu erfassen und zu entscheiden:
Ob Sie es verarbeiten und an die nächste Middleware übergeben möchten.
Ob Sie es verarbeiten möchten, generieren Sie eine Antwort und schneiden Sie das Anforderung Lifecyle dort.
Sie können auch eine Middleware verwenden, um nur auf die Antworten zu reagieren (z. B. eine Middleware, die die Komprimierung durchführt).
Die meisten Middlewares bieten Cross-Cutting-Funktionalität wie Routing, Authentifizierung, Komprimierung, Fehlerbehandlung. Einige realen Welt Beispiele für diese:
Eine Verwirrung könnte sein, um hier Framworks wie MVC, SignalR, etc .. Bisher in Katana Welt, Jedes Framework erstellte jede eigene Middleware, um sich in das System einzuklinken. Bei ASP.NET 5 ist dies ein wenig anders. Damit ein Framework Anforderungen verarbeiten kann, können Sie sich in die Routing-Middleware einklinken, indem Sie einen speziellen Handler bereitstellen. Zum Beispiel ist hier die MVC 6 route handler. Wenn Sie sich die Biuilder-Erweiterungen ansehen, sehen Sie, dass MVC actually uses the routing middleware.
Mein Artikel kann nicht so gut sein, wenn er diese Punkte nicht klar genug für Sie beantworten konnte;) –
@MikeBrind Ihr Artikel ist großartig. Ich beziehe mich nur darauf :) –
Ich habe gerade einen Artikel geschrieben, der Ihnen helfen kann, da er konkrete Beispiele für Middleware-Komponenten und einen Link zur echten Ruby-Middleware zu http://keyoti.com/blog/asp-net- hat. v5web-apivnextowin-a-initiators-primer-teil-1/ –