He leído muchos artículos sobre los proyectos OWIN y Katana, pero no pude tener una idea completa.
Para un desarrollador web normal que usa ASP.NET:
- Qué es exactamente OWIN y qué problemas resuelve (en palabras simples). ¿Cuál es su relación con IIS?
- ¿OWIN reemplaza a IIS? en caso negativo, ¿en qué situaciones OWIN se adapta mejor?
- ¿Cómo podría ayudarme OWIN en mis proyectos de trabajo diario?
- ¿Cómo podría ayudarme OWIN en proyectos de superación personal?
Respuestas:
Con respecto al comentario anterior, OWIN no es un marco. OWIN es una especificación sobre cómo deben construirse los servidores web y las aplicaciones web para desacoplarlos y permitir el movimiento de las aplicaciones ASP.NET a entornos que antes no eran compatibles.
Antes de OWIN, cuando creaba una aplicación ASP.NET, estaba inherentemente vinculado a IIS debido a la gran dependencia del
System.Web
ensamblado.System.Web
es algo que ha existido desde ASP (versión no .NET) e internamente contiene muchas cosas que quizás ni siquiera necesite (como Formularios web o Autorización de URL), que por defecto se ejecutan en cada solicitud, consumiendo recursos y haciendo ASP Las aplicaciones .NET en general son mucho más lentas que sus contrapartes, como Node.js, por ejemplo.OWIN en sí no tiene ninguna herramienta, biblioteca o cualquier otra cosa. Es solo una especificación.
Katana, por otro lado, es un marco completamente desarrollado para hacer un puente entre los marcos ASP.NET actuales y la especificación OWIN. Por el momento, Katana ha adaptado con éxito los siguientes marcos ASP.NET a OWIN:
ASP.NET MVC y Web Forms todavía se ejecutan exclusivamente a través de System.Web, y a la larga hay un plan para desacoplarlos también.
Por otro lado, IIS es un buen host ingenioso para servidores web. Todos los problemas de rendimiento de ASP.NET con IIS tienen raíces profundas
System.Web
solamente. Hasta hace poco, al decidir cómo alojaría su servidor web, tenía dos opciones:Entonces, si quisieras una actuación, optarías por una opción de auto-host. Si quisieras muchas características listas para usar que ofrece IIS, optarías por IIS pero perderías rendimiento.
Ahora, hay una tercera opción, una biblioteca de Microsoft llamada Helios (nombre de código actual) que tiene la intención de eliminar
System.Web
, y le permite usar IIS en una forma más "limpia", sin bibliotecas o módulos innecesarios. Helios ahora está en versión preliminar y está esperando más comentarios de la comunidad para que sea totalmente compatible con el producto de Microsoft.Espero que esta explicación te aclare las cosas mejor.
EDITAR (septiembre de 2014):
Con ASP.NET vNext en desarrollo, Katana se está retirando lentamente. La versión 3.0 probablemente será la última versión importante de Katana como un marco independiente.
Sin embargo, todos los conceptos introducidos con Katana se están integrando en ASP.NET vNext, lo que significa que el modelo de programación será prácticamente el mismo. Cita de la publicación del foro hecha por David Fowler (Arquitecto de ASP.NET vNext):
EDITAR (febrero de 2015):
ASP.NET vNext ahora se conoce como ASP.NET 5 y se creará sobre .NET Core 5. .NET Core 5 es una versión ligera de .NET Framework, diseñada para admitir los objetivos de ASP.NET 5 y .NET Native . Sin embargo, ASP.NET 5 también será compatible con .NET Framework 4.6, que debería estar disponible junto con .NET Core 5. Tanto ASP.NET 5 como .NET Core 5 tendrán licencia bajo MIT y aceptarán contribuciones de la comunidad.
EDITAR (mayo de 2015):
Además, la marca de API web ASP.NET se descontinuará, sin embargo, su tecnología será la base para el nuevo ASP.NET MVC 6. Las versiones anteriores de ASP.NET MVC se crearon implementando IHttpHandler, una interfaz definida en
System.Web
. ASP.NET MVC 6 elimina esa dependencia, haciéndola portátil a varias plataformas y servidores web.EDITAR (mayo de 2016):
ASP.NET 5 se renombrará oficialmente a ASP.NET Core a partir de Release Candidate 2, que se lanzará pronto. Lo mismo se aplicará a Entity Framework 7, que pasará a llamarse Entity Framework Core. Puede encontrar más información sobre el anuncio oficial y las razones que lo respaldan en la publicación del blog de Scott Hanselman: ASP.NET 5 está muerto: Presentación de ASP.NET Core 1.0 y .NET Core 1.0
EDITAR (mayo de 2016):
Con el lanzamiento de Release Candidate 2, ASP.NET Core se ha modificado para que las aplicaciones web futuras en realidad sean solo configuraciones de aplicaciones de consola .NET Core para procesar las solicitudes HTTP entrantes . Este concepto hace que ASP.NET Core esté aún más alineado con el enfoque que Microsoft ha adoptado con el soporte de arquitectura de microservicios y su implementación a través de Azure Service Fabric. Se puede encontrar más información sobre el blog oficial: Anunciando ASP.NET Core RC2
fuente
Si tuviera que definir OWIN por mí mismo, sería: "Las mejores ideas de las comunidades de desarrollo web de Ruby y Node.js, llegando a .NET"
Pero esto no ayudaría a ningún desarrollador de ASP.NET. Mi propia definición sería algo similar a:
OWIN define una interfaz estándar entre los servidores web .NET y las aplicaciones web. El objetivo de la interfaz OWIN es desacoplar el servidor y la aplicación. Si tengo que responder las preguntas que ha planteado, aquí está:
OWIN es una especificación de interfaz. Desacopla las aplicaciones web de IIS.
Si está utilizando componentes listos (que es lo que es Katana), algunas partes de la funcionalidad de la aplicación son mucho más fáciles de implementar en comparación con ASP.NET anterior. La autenticación con proveedores de identidad de terceros (Facebook, Twitter) es un ejemplo de esto.
fuente
Trataré de cubrirlo desde la perspectiva práctica.
Katana es el nombre del proyecto para implementar OWIN en Microsoft .
Qué es exactamente OWIN y qué problemas resuelve (en palabras simples). ¿Cuál es su relación con IIS? OWIN ( Open Web Interface for .NET ) es un estándar ( especificación OWIN ) y Katana es una biblioteca .NET, puede obtener nuget desde aquí . OWIN y Katana se convirtieron en sinónimos en la web.
Antes de que OWIN tu única opción fuera
IIS
con OWIN, puedes usar cualquier otra aplicación (que tenga un punto de entrada) como servidor web.¿OWIN reemplaza a IIS? si no, ¿en qué situaciones se adapta mejor OWIN?
No, no reemplaza a IIS, puede usar OWIN e IIS, hay
Microsoft.Owin.Host.SystemWeb
nuget para eso . Es mejor si desea optimizar / cambiar la forma en que se maneja en IIS, o si desea crear su servidor web personalizado a partir de la aplicación Windows Forms.¿Cómo podría ayudarme OWIN en mis proyectos de trabajo diario?
Podría reducir los costos de funcionamiento de su servidor ya que sus servidores web ya no necesitan ejecutarse en IIS (Windows) (los servidores de Windows son más caros que los basados en Unix, y puede ejecutarlo en la Aplicación de consola en Mono en Linux).
¿Cómo podría ayudarme OWIN en proyectos de superación personal?
El aprendizaje
Microsoft.Owin
(y otras bibliotecas OWIN relacionadas) mejorará su conocimiento sobre cómo funciona la comunicación HTTP entre el cliente y el servidor web.Buena lectura si quieres entender más sobre qué es Katana y OWIN.
fuente
¿Qué es OWIN?
OWIN significa Open Web Interface para .NET. OWIN es una especificación que describe cómo los marcos de desarrollo web como ASP.NET MVC deberían interactuar con los servidores web. El objetivo de OWIN es desacoplar aplicaciones web del servidor web mediante la introducción de una capa de abstracción. Tal abstracción le permite ejecutar la misma aplicación en todos los servidores web que admiten OWIN. Además, simplifica el sistema general porque la capa de abstracción puede proporcionar una infraestructura ligera para alojar las aplicaciones. IIS proporciona un amplio conjunto de características para las aplicaciones web. Sin embargo, las aplicaciones web pueden no necesitar todas estas características. Puede ser suficiente para ellos tener capacidades mínimas de procesamiento HTTP. El host compatible con OWIN puede proporcionar dicho entorno de alojamiento para estas aplicaciones. Además, puede definir una tubería de módulos que se utilizan durante el procesamiento de la solicitud. Una tubería OWIN es una cadena de componentes compatibles con OWIN a través de los cuales pasa una solicitud.
¿Qué es katana?
Katana es un conjunto de componentes creados por Microsoft utilizando las especificaciones OWIN. Algunos de estos componentes incluyen API web, identidad ASP.NET y SignalR.
Arriba está el extracto del artículo de CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm
fuente