Fundamentos de
ASP.NET Core
Enrutamiento
Una ruta es un patrón de URL que se asigna a un controlador. El controlador suele ser una página de Razor, un método de acción en un controlador MVC o un middleware. El enrutamiento de ASP.NET Core le brinda control sobre las URL que usa su aplicación. El enrutamiento es responsable de hacer coincidir las solicitudes HTTP entrantes y enviar esas
solicitudes a los puntos finales ejecutables de la aplicación. Los puntos finales son las unidades de código ejecutable de manejo de solicitudes de la aplicación. Los puntos finales se
definen en la aplicación y se configuran cuando se inicia la aplicación. El proceso de coincidencia de puntos finales puede extraer valores de la URL de la solicitud y proporcionar esos valores para el procesamiento de la solicitud. Con la información de los puntos finales de la aplicación, el enrutamiento también puede generar URL que se asignan a los puntos finales.
Servidores
Una aplicación ASP.NET Core se ejecuta con una implementación de
servidor HTTP en proceso. La implementación del servidor escucha las solicitudes HTTP y las muestra a la aplicación como un conjunto de características de solicitud compuestas en un HttpContext.
KESTREL
es el servidor web predeterminado especificado por las
plantillas de proyecto ASP.NET Core.
Middleware
La canalización de gestión de solicitudes se compone de una serie de componentes de middleware. Cada componente realiza operaciones en un HttpContexte invoca el siguiente middleware en la canalización o finaliza la solicitud. Middleware es software que se ensambla en una canalización de aplicaciones para manejar solicitudes y respuestas.
clase startup en ASP .NET Core
Las aplicaciones ASP.NET Core usan una clase Startup, que se denomina Startup por convención. La clase Startup:
- Incluye opcionalmente un método ConfigureServicespara configurar los servicios de la aplicación . Un servicio es un componente reutilizable que proporciona funcionalidad a la aplicación. Los servicios se registran en ConfigureServicesy se consumen a través de la aplicación a través de la inyección de dependencias (DI) o ApplicationServices.
- Incluye un método Configurepara crear la canalización de procesamiento de solicitudes de la aplicación.
Configuraciones específicas por entorno
Si en la clase de inicialización seleccionada según la convención usada existe un método llamado Configure[EnvironmentName], por ejemplo onfigureRelease(), se usará éste en lugar de Configure().
Si existe una clase llamada Startup[EnvironmentName], por ejemplo StartupDevelopment, se usará ésta en lugar de la clase por defecto Startup.
De la misma forma, si existe un método llamado Configure[EnvironmentName]Services, como por ejemplo ConfigureDevelopmentServices(), se usará éste en lugar de ConfigureServices().
En cualquier caso, si queremos hacer uso de esta característica y crear
configuraciones distintas para cada entorno de ejecución, podemos optar por una o varias de las siguientes convenciones:
Existe una variante en el nombrado de la clase y sus métodos que permite especificar distintas configuraciones de arranque en función del nombre del entorno en el que estemos ejecutando la aplicación. Los nombres de entorno son configurables, por ejemplo podemos tener un entorno llamado “development” para el desarrollo, otro llamado “release” para producción, “staging” para pruebas, etc.
Raíz Web
La raíz web es la ruta base para archivos de recursos estáticos
públicos como:
• Hojas de estilo ( .css)
• JavaScript ( .js)
• Imágenes ( .png , .jpg)
Raíz de Contenido
La raíz del contenido es la ruta base para:
• El ejecutable que aloja la aplicación ( .exe ).
• Ensamblados compilados que componen la aplicación ( .dll).
• Archivos de contenido utilizados por la aplicación, como:
• Archivos de Razor( .cshtml, .razor)
• Archivos de configuración ( .json, .xml)
• Archivos de datos ( .db)
• La raíz web, normalmente la carpeta wwwroot.
Configuración
La configuración en ASP.NET Core se realiza mediante uno o más proveedores
de configuración. Los proveedores de configuración leen datos de configuración de pares clave-valor utilizando una variedad de fuentes de configuración.
De forma predeterminada , las aplicaciones ASP.NET Core están configuradaspara leer desde appsettings.json, las variables de entorno, la línea de comandos y más. Cuando se carga la configuración de la aplicación, los valores de las variables de entorno anulan los valores de appsettings.json.
Host
Al inicio, una aplicación ASP.NET Core crea un host. El host
encapsula todos los recursos de la aplicación, como:
• Una implementación de servidor HTTP
• Componentes de middleware
• Inicio sesión
• Servicios de inyección de dependencia (DI)
• Configuración
Convenciones de la clase Startup
Por tanto, teniendo en cuenta las convenciones, el siguiente código es una clase de inicialización válida.
Debe llamarse Startup, y ser pública e instanciable. Puede encontrarse en cualquier espacio de nombres, aunque el sistema la localizará más rápidamente si está en el espacio de nombres raíz del proyecto (por ejemplo, MyApp.StartUp).
Debe contener, como mínimo, un método llamado Configure() de tipo void, que es el que se ejecutará justo al iniciar la aplicación. Podríamos decir que este método el equivalente al clásico Application_Start()
Cuando arranca una aplicación web, los componentes de
infraestructura de ASP.NET Core buscan esta clase en su ensamblado principal, produciéndose un error si no se encuentra. Para que todo funcione bien esta clase de inicialización debe cumplir una serie de requisitos que se describen a continuación: