In asp.net WebApi v2, la pipeline OWIN diventa l'impostazione predefinita. Alla fine sarà la pipeline standard nell'ambito di qualsiasi progetto asp.net.
Non posso dirlo meglio di quello che è scritto qui: http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
La sezione "L'interfaccia Web aperta per .NET (OWIN)" spiega perfettamente gli obiettivi di OWIN.
Senza OWIN, i bit asp.net sono associati al modo in cui IIS comunica con l'applicazione. OWIN estrae i server Web e i componenti del framework. Ciò significa che il codice dell'applicazione ora sarà a conoscenza dell'interfaccia OWIN, ma non del server web che sta servendo la richiesta.
In cambio, le applicazioni possono essere trasferite più facilmente tra host e potenzialmente intere piattaforme / sistemi operativi. Ad esempio, la possibilità di ospitare un'applicazione in una console o in qualsiasi processo consente a Mono di ospitarla senza sforzi ... (chiunque Raspberry Pi)
Il secondo aspetto è che funziona come una pipeline.
Puoi collegare qualsiasi middleware (e quanti ne vuoi) tra il server web e la tua applicazione.
Ciò consente soluzioni più modulari. È possibile sviluppare software ridistribuibili che possono influire sulla richiesta / risposta proveniente da / dalla propria applicazione, ma mantenere questi moduli separati dal codice dell'applicazione.
Per convincerti dei vantaggi di questo approccio modulare, dai un'occhiata ai pacchetti nuget disponibili per OWIN: http://www.nuget.org/packages?q=owin
Molti di questi pacchetti erano precedentemente funzionalità asp.net di base e sono stati estratti come middleware.
Ad esempio, l'aggiunta di supporto per l'accesso tramite vari provider OAuth diventa un problema di infrastruttura (un middleware) e non deve più far parte del codice dell'applicazione:
O se vuoi sostituire automaticamente tutte le immagini dal tuo sito Web con immagini di gatti carini, puoi farlo anche in modo trasparente:
https://github.com/serbrech/Owin.Catify
EDIT: è ora disponibile come pacchetto nuget : Owin.Catify !