El nombre completo de OWIN es Interfaz Web Abierta para .NET. Si analizamos solo a partir del nombre, podemos obtener esta información: OWIN es una interfaz web abierta para la plataforma .NET. ¿Quién es entonces la interfaz entre la interfaz web? Es la interfaz entre la aplicación web y el servidor web, y OWIN es la interfaz entre la aplicación web .NET y el servidor web. ¿Por qué necesitas una interfaz así? Porque. NET se ejecuta en un servidor web, y la aplicación web .NET necesita recibir la solicitud del usuario a través del servidor web y enviar el contenido de respuesta al usuario a través del servidor web. Sin tal interfaz, la aplicación web .NET dependería del servidor web específico que estuviera ejecutando, por ejemplo ASP.NET la aplicación dependería de IIS. Con esta interfaz, ASP.NET aplicación solo necesita depender de esta interfaz abstracta y no le importa el servidor web que esté ejecutando. Por lo tanto, el papel de OWIN es desacoplar introduciendo un conjunto de interfaces abstractas. NET y servidor web, demostrando una vez más la importancia de las interfaces. En el desarrollo de software, cada desacoplamiento es un gran paso adelante. 【Mayor comprensión】 OWIN es una abstracción del tiempo de ejecución ASP.NET. ASP.NET 5.0 es una implementación de OWIN. Los siguientes diagramas pueden entenderse de forma más intuitiva:
Conociendo algo de teoría básica, vamos a desarrollarla en la práctica.
OWIN Auto-Host ASP.NET Web API 2 Primero, creamos un proyecto de consola vacío:
Luego instala Microsoft.AspNet.WebApi.OwinSelfHost vía Nuget
También podemos abrir la consola NuGet: Entra el comando: Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
Luego añadimos una clase de inicio OWIN llamada Startup de la siguiente manera:
Escribe código en Inicio de la siguiente manera:
Vamos a escribir un controlador WebAPI con el siguiente código:
Finalmente, comenzamos OWIN y añadimos el siguiente código en Program.cs:
Inicia el programa de consola y accede a la dirección que acabamos de configurar:
http://localhost:8080/api/Account
|