Per quanto riguarda il commento sopra, OWIN non è un framework. OWIN è una specifica su come i server Web e le applicazioni Web dovrebbero essere creati al fine di separarli e consentire lo spostamento delle applicazioni ASP.NET in ambienti che prima non erano supportati.
Prima di OWIN, quando si creava un'applicazione ASP.NET, si era intrinsecamente legati a IIS a causa della forte dipendenza System.Web
dall'assemblaggio.
System.Web
è qualcosa che esiste da quando ASP (versione non .NET) e contiene internamente molte cose di cui potresti non avere nemmeno bisogno (come Web Form o autorizzazione URL), che per impostazione predefinita vengono eseguite su ogni richiesta, consumando risorse e rendendo ASP Le applicazioni .NET in generale sono molto più lente delle sue controparti come ad esempio Node.js.
OWIN stesso non ha strumenti, librerie o altro. È solo una specifica.
Katana, d'altra parte, è un framework completamente sviluppato creato per creare un ponte tra i framework ASP.NET attuali e le specifiche OWIN. Al momento, Katana ha adattato con successo i seguenti framework ASP.NET a OWIN:
ASP.NET MVC e Web Form sono ancora in esecuzione esclusivamente tramite System.Web e, a lungo termine, esiste un piano per disaccoppiare anche quelli.
D'altro canto, IIS è un host valido e pieno di risorse per i server Web. Interi problemi di prestazioni ASP.NET che utilizzano IIS hanno System.Web
solo radici profonde . Fino a tempi recenti, quando hai deciso come ospitare il tuo server web, avevi due opzioni:
Quindi, se volevi uno spettacolo, sceglieresti un'opzione self-host. Se volessi un sacco di funzionalità pronte all'uso fornite da IIS, sceglieresti IIS ma perdi le prestazioni.
Ora, esiste una terza opzione, una libreria Microsoft denominata Helios (nome in codice corrente) che intende rimuoverla System.Web
e consentire di utilizzare IIS in un modo più "più pulito", senza librerie o moduli non necessari. Helios è ora in versione pre-release ed è in attesa di ulteriori feedback della community per renderlo completamente supportato dal prodotto Microsoft.
Spero che questa spiegazione chiarisca le cose meglio per te.
EDIT (set 2014):
Con ASP.NET vNext in fase di sviluppo, Katana si sta lentamente ritirando. La versione 3.0 sarà probabilmente l'ultima versione principale di Katana come framework autonomo.
Tuttavia, tutti i concetti introdotti con Katana vengono integrati in ASP.NET vNext, il che significa che il modello di programmazione sarà praticamente lo stesso. Citazione dal post sul forum di David Fowler (architetto di ASP.NET vNext):
vNext è il successore di Katana (motivo per cui sembrano così simili). Katana è stata l'inizio della separazione da System.Web e da componenti più modulari per lo stack web. Puoi vedere vNext come una continuazione di quel lavoro ma andando molto oltre (nuovo CLR, nuovo Project System, nuove astrazioni http).
Tutto ciò che esiste oggi in Katana si farà strada in vNext.
EDIT (febbraio 2015):
ASP.NET vNext è ora noto come ASP.NET 5 e sarà costruito su .NET Core 5. .NET Core 5 è una versione fattorizzata leggera di .NET Framework, progettata per supportare gli obiettivi di ASP.NET 5 e .NET Native . Tuttavia, ASP.NET 5 sarà supportato anche da .NET Framework 4.6, che dovrebbe essere disponibile insieme a .NET Core 5. Sia ASP.NET 5 che .NET Core 5 avranno la licenza MIT e accetteranno i contributi della comunità.
EDIT (maggio 2015):
Inoltre, il marchio API Web ASP.NET verrà interrotto, tuttavia la sua tecnologia sarà la base per il nuovo ASP.NET MVC 6. Le versioni precedenti ASP.NET MVC sono state realizzate implementando IHttpHandler, un'interfaccia definita in System.Web
. ASP.NET MVC 6 rimuove tale dipendenza, rendendola portabile su varie piattaforme e server Web.
EDIT (maggio 2016):
ASP.NET 5 verrà ufficialmente rinominato in ASP.NET Core a partire da Release Candidate 2 che dovrebbe essere rilasciato presto. Lo stesso vale per Entity Framework 7 che verrà rinominato in Entity Framework Core. Maggiori informazioni sull'annuncio ufficiale e sui motivi alla base sono disponibili sul post del blog di Scott Hanselman:
ASP.NET 5 è morto - Presentazione di ASP.NET Core 1.0 e .NET Core 1.0
EDIT (maggio 2016):
Con il rilascio di Release Candidate 2, ASP.NET Core è stato modificato in modo che le app Web future siano in realtà solo impostazioni delle app della console .NET Core per elaborare le richieste HTTP in arrivo . Questo concetto rende ASP.NET Core ancora più allineato con l'approccio adottato da Microsoft con il supporto dell'architettura di microservizi e la sua implementazione tramite Azure Service Fabric. Maggiori informazioni su sono disponibili sul post ufficiale del blog:
Annuncio di ASP.NET Core RC2