2014-12-31 26 views
37

La mia comprensione è attualmente possibile ospitare WebAPI utilizzando Katana e MVC avrà questa funzionalità in una versione futura. Essenzialmente Katana sarà un'opzione di hosting disponibile per MVC e WebAPI.Distinzione tra Kestrel e Katana

Kestrel è entrato nella foto, e vedo alcuni dipendenti di MS blogging su di esso dimostrando hosting ASP.NET vNext su Linux.

La mia comprensione è che sia Kestrel che Katana implementano la pipeline OWIN.

Da lì è tutto un po 'sfocato. Mi chiedo, perché Kestrel è entrata nella foto, quando sembra che Katana potrebbe servire allo stesso scopo se lo hai compilato con mono e fatto alcuni sforzi per renderlo compatibile su più piattaforme (forse più facile a dirsi che a farsi).

Kestrel e Katana hanno lo stesso scopo? O uno è specializzato in un modo che l'altro non è?

Finalmente Kestrel sarà una scelta valida per le installazioni di Windows? O sarà specializzato per ambienti non Windows e Katana sarà ancora la scelta per Windows?

Riconosco che forse sto chiedendo un confronto tra mele e arance a causa della mia scarsa conoscenza di Katana/Kestrel, ma se la risposta è "Le arance hanno un sapore più acido delle mele", allora IMO è un risposta perfettamente valida.

+17

Perché è considerato troppo ampio? Non sto chiedendo un elenco di funzionalità o un confronto linea per linea. Proprio ciò che li distingue, nello stesso senso in cui "Come è distinto un mammifero dai rettili?" si può rispondere con "Un mammifero è un animale che nutre i suoi bambini con il latte quando è giovane, ma i rettili no". Rispondere a una domanda del genere non richiede un ampio elenco di ogni singola differenza. – AaronLS

+4

Ovviamente non era troppo ampio per me per rispondere :) – Eilon

risposta

26

Katana è l'implementazione OWIN di Microsoft e include anche alcuni componenti middleware per la sicurezza/autenticazione, che servono file statici e alcune altre cose.

Kestrel è assistente di sviluppo web cross-platform di Microsoft che può essere utilizzato con ASP.NET 5.

ASP.NET 5 non implementa OWIN, ma ha un "ponte" per attivare i componenti Owin da utilizzare in Applicazioni ASP.NET 5, inclusa l'esecuzione su Kestrel.

+2

Per chiunque fosse confuso come lo ero io, ASP.NET 5 non è più una cosa. Lo chiamano ASP.NET Core 1.0. –

10

Potrebbe essere una vecchia domanda, ma dal momento che una rapida ricerca su Google mi ha portato qui, penso che nessun altro abbia posto una domanda simile.

Citando ASP.NET 5 Documentazione:

Kestrel

Kestrel è un web server cross-platform basata su libuv, un cross-platform asincrono libreria di I/O. Kestrel è open-source e puoi visualizzare il sorgente di Kestrel su GitHub. Aggiungi il supporto per Kestrel includendo "Kestrel" nelle dipendenze del tuo progetto elencate in project.json.

La scelta di un server di

Se si prevede di distribuire l'applicazione su un server Windows, è consigliabile eseguire IIS come un server proxy inverso che gestisce e proxy richieste a Kestrel. Se si esegue la distribuzione su Linux, è necessario eseguire un server proxy inverso comparabile come Apache o Nginx per le richieste proxy a Kestrel.

Per scenari di self-hosting, come l'esecuzione in Service Fabric, si consiglia di utilizzare Kestrel senza IIS. Tuttavia, se si richiede l'autenticazione di Windows in uno scenario di hosting automatico, è necessario scegliere WebListener.

Quindi, la mia comprensione è: se Kestrel era solo un server di sviluppo, non lo è più e sostituisce in qualche modo Katana e OWIN.

2

"Project Katana" include Microsoft che aggiunge il supporto a IIS per OWIN, crea OwinHost.exe e fornisce libraries to allow application to interface with a self hosting WebAPI. Alcune di queste librerie come Microsoft.Owin.Security vengono utilizzate da ASP.NET MVC 5 (non da ASP.NET Core) per collegare identità/autenticazione tramite OWIN, ma MVC 5 non supporta l'auto hosting (sebbene sia possibile utilizzare altri utensili). La libreria SelfHosting è destinata esclusivamente a WebAPI.

Quindi, "Katana" è un termine ampio riferimento a entrambe le implementazioni di accoglienza, nonché il supporto di applicazioni web per OWIN: "These components include both infrastructure components, such as hosts and servers, as well as functional components, such as authentication components and bindings to frameworks such as SignalR and ASP.NET Web API."

Si può vedere frasi come "Migrazione da Katana a ASP.NET core", che si riferiscono alle varie lato dell'applicazione web. Significato abbandonando le librerie Microsoft.Owin, e l'utilizzo di ASP.NET core che ha il pieno supporto OWIN costruito senza la necessità di librerie aggiuntive. Oppure potresti vedere una frase simile che significa passare da un host Katana a un altro host come Kestrel. Sfortunatamente il termine è usato per confutare ad entrambi i lati dell'attuazione con pochi chiarimenti, e dovrete prestare attenzione al contesto della discussione.

Kestrel è solo un'implementazione host. Il suo obiettivo è fornire supporto di hosting OWIN su molte piattaforme. È più leggero e non così pieno di funzionalità o maturo come IIS. Si consiglia di utilizzare dietro un proxy inverso di un server web più sicuro e rebust come IIS, Apache, nginx, o altro. Kestrel è ciò che la documentazione corrente di Microsoft consiglia come host per la distribuzione di applicazioni Web ASP.NET Core su altre piattaforme come Linux.

Se si crea un progetto ASP.Net Core, Kestrel è attualmente incluso per impostazione predefinita. È supportato sulle stesse piattaforme supportate da ASP.NET Core.