asp.net - tipos - texto para trabajar clases de palabras
¿Cómo explicar Katana y OWIN en palabras y usos simples? (4)
He leído muchos artículos sobre los proyectos OWIN y Katana, pero no pude tener una idea completa de ello.
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? Si no, ¿en qué situaciones encaja mejor OWIN?
- ¿Cómo podría ayudarme OWIN en mis proyectos de trabajo diario?
- ¿Cómo podría OWIN ayudarme en proyectos de superación personal?
Intentaré 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 la biblioteca .NET, puede obtener nuget desde aquí . OWIN y Katana se convirtieron en un sinónimo en la web.
Antes de OWIN, su única opción era IIS
con OWIN, puede usar cualquier otra aplicación (que tenga un punto de entrada) como servidor web.
¿OWIN reemplaza a IIS? Si no, ¿en qué situaciones encaja mejor OWIN?
No, no reemplaza a IIS, puedes usar OWIN e IIS. Hay un nuget Microsoft.Owin.Host.SystemWeb
para eso . Se ajusta mejor si desea optimizar / cambiar la forma en que se maneja en IIS, o si desea crear su servidor web personalizado a partir de, digamos, la aplicación Windows Forms.
¿Cómo podría ayudarme OWIN en mis proyectos de trabajo diario?
Podría reducir los costos de ejecución 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 bajo Mono en Linux).
¿Cómo podría OWIN ayudarme en proyectos de superación personal?
Aprender 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 lo que Katana y OWIN son.
Respecto al comentario anterior, OWIN no es un framework. OWIN es una especificación sobre cómo deben construirse los servidores web y las aplicaciones web para desacoplar una de otra y permitir el movimiento de aplicaciones ASP.NET a entornos en los que en el estado actual no es posible.
Antes de OWIN, cuando está creando una aplicación ASP.NET, está vinculado de forma hereditaria a IIS debido a la gran dependencia del conjunto System.Web.
System.Web es algo que ha existido desde ASP (versión no .NET) e internamente contiene muchas cosas que tal vez ni siquiera necesite (como Formularios Web o Autorización de URL), que por defecto se ejecutan en cada solicitud, consumiendo así recursos y haciendo que las aplicaciones ASP.NET en general sean mucho más lentas que sus contrapartes en ie Node.js.
OWIN en sí no tiene herramientas, bibliotecas o cualquier otra cosa. Es sólo 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. En este momento, Katana ha adaptado con éxito los siguientes marcos ASP.NET para OWIN:
- API web
- Señal r
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 disociarlos también.
Por otro lado, IIS es un buen servidor de recursos para servidores web. Todo el problema de rendimiento de ASP.NET con el uso de IIS tiene raíces profundas en System.Web solamente. Hasta el momento reciente, al decidir cómo hospedará su servidor web, tenía dos opciones:
- IIS
- Auto-anfitrión
Entonces, si quisieras una actuación, elegirías una opción de auto-anfitrión. Si quisiera muchas características listas para usar que ofrece IIS, optaría por IIS, pero perdería el rendimiento.
Ahora, hay una tercera opción, una biblioteca de Microsoft llamada Helios (nombre en clave actual) que pretende eliminar System.Web y le permite usar IIS de forma más "limpia", sin bibliotecas o módulos innecesarios. Helios se encuentra ahora en una versión preliminar y espera más comentarios de la comunidad para que sea un producto de Microsoft totalmente compatible.
Espero que esta explicación aclare mejor las cosas para ti.
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 lo que se ven tan similares). Katana fue el comienzo de la ruptura con System.Web y con más componentes modulares para la pila web. Puede ver vNext como una continuación de ese trabajo, pero va mucho más allá (nuevo CLR, nuevo Sistema de proyectos, nuevas abstracciones de http).
Todo lo que existe hoy en Katana se abrirá camino en vNext.
EDITAR (febrero de 2015):
ASP.NET vNext ahora se conoce como ASP.NET 5 y se construirá sobre .NET Core 5. .NET Core 5 es una versión ligera y estructurada de .NET Framework, diseñada para cumplir 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 del MIT y aceptarán contribuciones de la comunidad.
EDITAR (mayo 2015):
Además, se descontinuará la marca ASP.NET Web API, sin embargo, su tecnología será la base para el nuevo ASP.NET MVC 6. Las versiones anteriores de ASP.NET MVC se crearon mediante la implementación de IHttpHandler, una interfaz definida en System.Web. ASP.NET MVC 6 elimina esa dependencia, por lo que es portátil a varias plataformas y servidores web.
EDITAR (mayo 2016):
ASP.NET 5 será oficialmente renombrado a ASP.NET Core a partir de Release Candidate 2 que se lanzará próximamente. Lo mismo se aplicará a Entity Framework 7, que será renombrado a Entity Framework Core. Se puede encontrar más información sobre el anuncio oficial y las razones detrás de él en la publicación del blog de Scott Hanselman: ASP.NET 5 está muerto. Presentamos ASP.NET Core 1.0 y .NET Core 1.0
EDITAR (mayo 2016):
Con el lanzamiento de Release Candidate 2, ASP.NET Core se ha modificado para que las aplicaciones web futuras sean en realidad solo la configuración de las 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 tomado con el soporte de la arquitectura de microservicios y su implementación a través de Azure Service Fabric. Se puede encontrar más información sobre la publicación oficial del blog: Anuncio de ASP.NET Core RC2
Si tengo que definir OWIN para mí, eso sería: "Las mejores ideas de las comunidades de desarrolladores web de Ruby y Node.js, que vienen a .NET"
Pero esto no ayudaría a ningún desarrollador de ASP.NET. Mi propia definición sería algo así como:
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 a 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 para usar (lo que es Katana), entonces algunas partes de la funcionalidad de la aplicación son mucho más fáciles de implementar en comparación con las antiguas ASP.NET. La autenticación con proveedores de identidad de terceros (Facebook, Twitter) es un ejemplo de esto.
- OWIN es esencialmente una colección de mejores prácticas, que han sido probadas en comunidades de desarrollo web. Muestra una forma de implementar aplicaciones web que está muy abierta a la extensibilidad. Como cada desarrollador web debe estar constantemente a la vanguardia de las nuevas tecnologías, esta es una forma de mantenerse al día con toda la comunidad de desarrollo web y no solo con .NET. Si aprendes OWIN, sería mucho más fácil aprender otros marcos de desarrollo web como Express for node.js o Rack for Ruby, porque las prácticas que utilizan son similares.
¿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 deben interactuar con los servidores web. El objetivo de OWIN es desacoplar las aplicaciones web del servidor web introduciendo una capa de abstracción. Dicha abstracción le permite ejecutar la misma aplicación en todos los servidores web que admiten OWIN. Además, simplifica el sistema en general porque la capa de abstracción puede proporcionar una infraestructura liviana para hospedar 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. Podría ser suficiente para ellos tener capacidades de procesamiento HTTP mínimas. El host compatible con OWIN puede proporcionar un 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. Un oleoducto 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 de OWIN. Algunos de estos componentes incluyen Web API, ASP.NET Identity y SignalR.
Lo anterior es un extracto del artículo CodeGuru: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm