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):
vNext es el sucesor de Katana (por eso se ven tan similares). Katana fue el comienzo de la ruptura con System.Web y con componentes más modulares para la pila web. Puede ver vNext como una continuación de ese trabajo pero yendo mucho más allá (nuevo CLR, nuevo sistema de proyectos, nuevas abstracciones http).
Todo lo que existe hoy en Katana llegará a 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