Distinción entre Cernícalo y Katana


Tengo entendido que actualmente puede auto host WebAPI usando Katana, y MVC tendrá esta capacidad en una versión futura. Esencialmente Katana será una opción de alojamiento disponible tanto para MVC como para WebAPI.

Kestrel ha entrado en la imagen, y veo a algunos empleados de MS blogueando sobre ello demostrando hosting ASP.NET vNext en Linux.

Tengo entendido que tanto el Cernícalo como la Katana implementan el pipeline de OWIN.

A partir de ahí todo es un poco borroso. Me pregunto, ¿por qué ha entrado Kestrel en la imagen, cuando parece que Katana podría servir para el mismo propósito si lo compiló con mono y hizo algunos esfuerzos para que sea compatible multiplataforma(tal vez más fácil decirlo que hacerlo).

¿El cernícalo y la Katana sirven para el mismo propósito? ¿O está uno especializado de alguna manera que el otro no lo está?

¿Kestrel será eventualmente una opción viable para implementaciones de Windows? O se especializará para entornos no Windows y Katana sigue siendo la opción para Windows?

Reconozco que posiblemente estoy pidiendo una comparación de manzana a naranja debido a mi falta de conocimiento de Katana/Cernícalo, pero si la respuesta es "Las naranjas tienen más sabor ácido que las manzanas", entonces esa IMO es una respuesta perfectamente válida.

Author: AaronLS, 2015-01-01

3 answers

Katana es la implementación de OWIN de Microsoft y también incluye algunos componentes de middleware para seguridad/autenticación, servir archivos estáticos y algunas otras cosas.

Kestrel es el servidor web de desarrollo multiplataforma de Microsoft que se puede utilizar con ASP.NET 5.

ASP.NET 5 no implementa OWIN, pero tiene un "puente" para permitir que los componentes de OWIN se utilicen en ASP.NET 5 aplicaciones, incluyendo la ejecución en Kestrel.

 30
Author: Eilon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-31 23:51:59

Puede ser una vieja pregunta, pero ya que una búsqueda rápida en Google me llevó hasta aquí, creo que nadie más hizo una pregunta similar.

Citando ASP.NET 5 Documentación:

Cernícalo

Kestrel es un servidor web multiplataforma basado en libuv, una biblioteca de E/S asíncrona multiplataforma. Kestrel es de código abierto, y puedes ver el código fuente de Kestrel en GitHub. Puede agregar soporte para Kestrel incluyendo "Kestrel" en las dependencias de su proyecto listadas en project.json.

Elegir un servidor

Si tiene la intención de implementar su aplicación en un servidor Windows, debe ejecutar IIS como un servidor proxy inverso que administre y proxy las solicitudes a Kestrel. Si se implementa en Linux, debe ejecutar un servidor proxy inverso comparable, como Apache o Nginx, para realizar solicitudes de proxy a Kestrel.

Para escenarios de auto-alojamiento, como ejecutar en Service Fabric, recomendamos usar Kestrel sin IIS. Sin embargo, si necesita autenticación de Windows en un escenario de auto-alojamiento, usted debe elegir WebListener.

Por lo tanto, mi entendimiento es: Si Kestrel era solo un servidor de desarrollo, ya no es y de alguna manera está reemplazando a Katana y OWIN.

 10
Author: user2343484,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-30 14:54:12

"Project Katana" incluye Microsoft añadiendo soporte a IIS para OWIN, creando OwinHost.exe, y proporcionar bibliotecas para permitir que la aplicación interactúe con una WebAPI de alojamiento propio. Algunas de estas bibliotecas como Microsoft.Owin.Seguridad son utilizados por ASP.NET MVC 5 (no ASP.NET Core) para conectar la identidad / autenticación a través de OWIN, pero MVC 5 no es compatible con self hosting(aunque es posible usar otras herramientas). La biblioteca SelfHosting solo está diseñada para WebAPI.

So "Katana" es un término amplio que se refiere tanto a las implementaciones de host como al soporte de aplicaciones web para OWIN: " Estos componentes incluyen tanto componentes de infraestructura, como hosts y servidores, como también componentes funcionales, como componentes de autenticación y enlaces a frameworks como SignalR y ASP.NET Web API."

Puedes ver frases como "Migrar de Katana a ASP.NET Core" que se refieren al lado de la aplicación web. Significa abandonar Microsoft.Owin bibliotecas, y el uso de ASP.NET Núcleo que tiene soporte completo de OWIN incorporado sin la necesidad de bibliotecas adicionales. O puedes ver una frase similar que significa pasar de un anfitrión Katana a otro anfitrión como el Cernícalo. Desafortunadamente, el término se usa para referirse a cualquiera de los lados de la implementación con poca aclaración, y tendrá que prestar atención al contexto de la discusión.

Kestrel es solo una implementación de host. Su objetivo es proporcionar soporte de alojamiento OWIN a través de muchas plataformas. Es más ligero, y no tan completo o maduro como IIS. Se recomienda usarlo detrás de un proxy inverso de un servidor web más seguro y rebust como IIS, Apache, nginx u otro. Kestrel es lo que la documentación actual de Microsoft recomienda como host para implementar ASP.NET Aplicaciones web básicas en otras plataformas como Linux.

Si crea un ASP.Net Core project, a continuación, Kestrel se incluye actualmente de forma predeterminada. Es compatible con las mismas plataformas que ASP.NET Soportes de núcleo.

 2
Author: AaronLS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-25 19:46:44