¿Cuándo debo usar OWIN Katana?


Soy nuevo en OWIN y Katana. Realmente no entiendo por qué debo usar OWIN, mientras que puedo usar IIS. Para simplificar, mi pregunta es: ¿Qué pierdo si omito aprender OWIN y uso IIS para mis sitios web?

Busqué en Google, pero no hay una explicación simple. Hay cierta información aquí, pero usan algunas frases de la jerga así que no puedo entenderla.

Author: Lex Li, 2014-01-23

5 answers

En asp.net WebAPI v2, la canalización OWIN se convierte en la predeterminada. Con el tiempo va a ser la tubería estándar bajo cualquier asp.net proyecto.

No puedo ponerlo mejor que lo que está escrito aquí: http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

La sección "La Interfaz Web Abierta para.NET (OWIN)" explica perfectamente los objetivos de OWIN.

Sin OWIN, el asp.net los bits se acoplan a la forma en que IIS se comunica con la aplicación. OWIN abstrae servidores web y componentes de framework. Eso significa que su código de aplicación ahora será consciente de la interfaz de OWIN, pero no del servidor web que está sirviendo la solicitud.

A cambio, las aplicaciones se pueden portar más fácilmente entre hosts y potencialmente plataformas/sistemas operativos completos. Por ejemplo, la capacidad de alojar una aplicación en una consola o cualquier proceso permite a Mono alojarla sin esfuerzo... (Raspberry Pi cualquiera)

El segundo el aspecto es que funciona como una tubería.


Tubería de Owin


Puede conectar cualquier middlewares (y tantos como desee) entre el servidor web y su aplicación.
Esto permite soluciones más modulares. Puede desarrollar middlewares redistribuibles que puedan afectar la solicitud / respuesta que llega a / desde su aplicación, pero mantenga estos módulos separados del código de la aplicación.

Para convencerse de los beneficios de este enfoque modular, eche un vistazo a la paquetes nuget disponibles para OWIN: http://www.nuget.org/packages?q=owin

Muchos de estos paquetes eran previamente core asp.net funcionalidad, y se han extraído como middleware.
Por ejemplo, agregar soporte para iniciar sesión con varios proveedores de OAuth se convierte en una preocupación de infraestructura (un middleware) y ya no necesita ser parte del código de su aplicación :

O si desea reemplazar automáticamente todas las imágenes de su sitio web por imágenes de gatos lindos, también puede hacerlo de forma transparente :

Https://github.com/serbrech/Owin.Catify

EDITAR : Ahora está disponible como un paquete nuget : Owin.Catify !

 271
Author: Stéphane,
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-11-07 10:43:20
public interface OWIN
{
   void ListenHttpCallAndServeWebPage();    
}

namespace Microsoft.OWIN
{
   public class Katana : OWIN
   {
      public void ListenHttpCallAndServeWebPage()
      {
         // listen to a port for HTTP call and serve web page
      } 
   }
}

Sí, así es. OWIN es una interfaz y Katana es una implementación de la interfaz OWIN por Microsoft. Por lo tanto escuchamos estas 2 palabras (OWIN / KATANA) juntas y muchas veces nos confundimos entre la diferencia entre estos 2 términos. Por lo tanto, Katana es la implementación de Microsoft de la interfaz OWIN. Digamos que hay otra compañía llamada BIG-BOSS que quería crear su propia implementación de OWIN, pueden hacer eso y nombrar su implementación como 'BATANA' y anuncia frases como OWIN / BATANA.

Entonces, ¿por qué OWIN ?!!

Piense en un país donde el único vehículo disponible para el movimiento es un camión. Nada más. Si usted quiere comprar un vehículo, usted compraría camión. Bueno, eso solía servir bien, pero la gente comenzó a darse cuenta de que, no necesitan camión todo el tiempo, especialmente cuando quieren ir a ver una película o comprar leche, conducir un camión pesado no solo cuesta mucho combustible, sino que también agrega estrés al conducir. Pero sí, si quiere llevar un montón de cosas pesadas, camión sirve el propósito muy bien.

Entonces, el Gobierno de ese país ideó una especificación para los fabricantes de vehículos. La especificación es la siguiente:

  1. Un vehículo necesita tener 4 ruedas
  2. Un vehículo debe tener una dirección.
  3. Un vehículo debe tener faros y luces de señalización.

Por lo tanto, sobre la base de estas especificaciones, cualquiera puede hacer el vehículo de acuerdo a diferentes necesidades y pueden nombrar su vehículo consecuentemente. Por lo tanto, Sedán, Camioneta, SUV, VAN,..sucesivamente.. todo tipo de vehículo apareció en el mercado. Si alguien no necesita llevar cosas pesadas todo el tiempo, más bien necesita un vehículo solo para ir al lugar de trabajo, él/ella puede comprar un pequeño Sedán. Alguien puede comprar SUV si necesita un poco más de energía.

Basado en el ejemplo anterior, podemos decir que nuestra ASP.NET La aplicación web utiliza el Sistema.Montaje Web que está muy cargado (como un camión) y si queremos hacer una pequeña Aplicación Web donde nuestro propósito es solo servir algunos archivos basados en un pequeño conjunto de solicitudes, estamos obligados a usar ese sistema pesado.Montaje de banda (camión). Ahora, OWIN aparece. OWIN es un conjunto de especificaciones (podemos llamarlo interfaz) que define un servidor. Basado en esa especificación, alguien (como un fabricante de vehículos) puede hacer varios tipos de servidores basados en dominios de problemas específicos / necesidades de aplicaciones. Microsoft creó su propia implementación para OWIN llamada Katana de la misma manera que puede servir Web API. Como WebAPI es una tecnología ligera, que no necesita un sistema completo.Web things, una implementación de servidor ligera (como Katana) puede aumentar el rendimiento en gran medida cuando se utiliza la api Web alojada en Katana.

Ahora, si preguntas, ' ¿Lo necesito'? La respuesta es: "Depende de tu necesidad de rendimiento". Si no le importa conducir su camión, incluso para ir a ver una película, entonces, tal vez no necesite OWIN. Pero si sientes eso, un sedán ligero es todo lo que necesitas para conducir dentro de una ciudad, a poca distancia, ver película..sucesivamente.. sí, puede comprobar qué implementaciones de OWIN están disponibles en el mercado. Katana es una de las implementaciones de OWIN, por lo que puedes comprobar lo que ofrece Katana. No solo Katana, si cualquier otra compañía implementa OWIN de acuerdo con un Dominio específico (por ejemplo, un servidor para Dispositivos Médicos que descargará la información médica más reciente) y si usted es un médico, tal vez, puede verificar esa implementación de OWIN. Por otra parte, usted mismo puede crear su propia implementación de OWIN dirigida a cualquier nicho específico.

En términos de aplicaciones web, si usted es un simple desarrollador Web, desarrollando sitios web personalizados para sus clientes, tal vez, no necesita preocuparse por la implementación personalizada de OWINs, porque IIS le servirá de una manera equilibrada. Si construyes un proyecto de API web, obtendrás una plantilla basada en Katana preparada desde Visual Studio- > Nuevo proyecto, por lo que no tendrás que preocuparte por nada más que aprender Katana específica técnica. En este momento, Katana no es lo suficientemente maduro para reemplazar por completo la necesidad de IIS para ASP.NET MVC, pero tal vez, en el futuro lo hará.

Entonces, ¿Cuándo puedo necesitar escribir mi propia implementación de OWIN ?

Respuesta: Bueno, digamos, por ejemplo, que ha desarrollado una aplicación de Windows que debe ejecutarse como un servidor en segundo plano y escuchar un número de puerto XXXX. Su servidor responderá solo a un conjunto de Solicitudes como esta:

  1. OBTENER Inventario
  2. DELETE Inventory ID = 4
  3. PONGA ID de inventario = 5

Eso es todo. Y nada más. Entonces, ¿por qué necesitaría un servidor web IIS completo para esta pequeña tarea? Puede crear su propia implementación de OWIN en ese caso. (Quizás, usarás Katana para eso)

Ok, así que entendí que, si quiero hacer un ASP.NET MVC sitio web, no tengo la opción de reemplazar IIS, entonces ¿por qué debería tener que saber acerca de Katana en este momento ?

Respuesta: A pesar de que Katana no es lo suficientemente maduro como para reemplazar la necesidad de IIS para que pueda alojar su ASP.NET MVC sitio web directamente en Katana, pero Katana implementado muchas interfaces interesantes de OWIN para que pueda tomar la ventaja de usar esas características lado a lado. Por ejemplo, permitir que sus usuarios inicien sesión usando Facebook, Google, Twitter, etc. no era muy fácil antes. Katana te da muchos ganchos (como un middle-ware) para que puedas dejar que Katana se encargue de la autenticación externa basada en redes Sociales fácilmente sin escribir código de plomería. Hay muchos otros beneficios al usar Katana que puede descubrir cuando comience a usar esta tecnología.

 202
Author: Emran Hussain,
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
2018-06-18 20:39:28

Una versión más simple de esa respuesta es que Katana es gong para reemplazar completamente el Sistema.Montaje web y el viejo ASP.NET pipeline, que le brinda una mejor flexibilidad (úselo en más escenarios y use solo las partes que le gustan) y rendimiento.

Así que todos deben ver su evolución ahora y estar listos para cambiar cuando finalmente se complete.

A continuación se muestra un diagrama que dibujé para completar los detalles que Microsoft no puede incluir en este artículo.

introduzca la descripción de la imagen aquí

OWIN es un estándar tal que permite que se ejecuten marcos de aplicaciones sobre él y se olvide de todo lo que hay debajo de él. Por otro lado, OWIN utiliza varios adaptadores de host para asegurarse de que puede hablar con los servidores web subyacentes (IIS y muchos otros).

Ahora estoy trabajando con el autor del servidor web de Jexus para investigar cómo podemos escribir un adaptador de host para unir OWIN/Katana y Jexus. Estamos muy contentos de saber que OWIN es flexible y altamente personalizable.

Referencia: http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers /

 45
Author: Lex Li,
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-08-03 02:22:41

¿Por qué debo usar OWIN, mientras que puedo usar IIS?

OWIN está diseñado para desacoplar servidores web de los frameworks bajo los que trabaja. Puede hacer que las aplicaciones sean livianas y portátiles para los marcos de mezcla y servidores.

Y Katana es la implementación de Microsoft de los componentes de OWIN.

Desde hace unos años, Microsoft está haciendo que las herramientas web sean más ágiles y receptivas a medida que su plan avanza. Por ejemplo, el desarrollo de ASP.Net MVC y ASP.Net Web API. No dependen del Sistema.Web dll que es una gran carga que sienten ahora creo. La ventaja es que ambas soluciones de desarrollo se pueden proporcionar de manera oportuna y el ciclo es más rápido que nunca. También ahora los desarrolladores pueden implementar estas aplicaciones en hosts o Katana personalizados, que es una referencia de la implementación de OWIN.

¿Cuál es el punto después de todo?

Microsoft ha lanzado un proyecto que es un alojamiento web ligero basado en OWIN sobre IIS, llamado Helios. El objetivo es evitar ASP.NET/IIS relación al proporcionar algunos componentes pequeños independientes que se pueden usar, instalar y administrar de forma independiente que se ejecutan en un host web que implementa las especificaciones de OWIN.

Una de las razones principales es el factor de rendimiento. Helios será capaz de lograr 2x-3x más rendimiento que el estándar ASP.Net solicitud. En términos de consumo de memoria, Helios es mucho mejor que el Sistema.Web dll. En un punto de referencia tomado Helios arquitectura permitido una aplicación de ejemplo para lograr 50000 solicitudes simultáneas con aproximadamente 1 GB menos de sobrecarga en comparación con un estándar ASP.Net solicitud.

 14
Author: nznoor,
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-06-06 23:26:41

OWIN es una abstracción entre la aplicación web y la plataforma de alojamiento. Si escribe su aplicación web utilizando OWIN no está vinculado a IIS, puede usar otro host si lo desea.

Preguntó por qué usar OWIN en lugar de IIS, pero estas no son alternativas entre sí. OWIN se encuentra entre IIS y su aplicación para que pueda cambiar IIS sin reescribir su aplicación.

También le gustaría visitar esta página https://github.com/Bikeman868/OwinFramework/wiki/OWIN

 0
Author: bikeman868,
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-01-15 00:39:07