introduccion-que-es-aspnet-core

Qué es ASP.NET Core

  • 4 min

ASP.NET Core es un framework moderno desarrollado por Microsoft para construir aplicaciones web, APIs y servicios en la nube escalables.

Construido sobre la plataforma .NET, ASP.NET Core es Open Source, multiplataforma y altamente flexible, permitiendo desarrollar y desplegar aplicaciones en Windows, Linux y macOS.

Está diseñado para el desarrollo actual, con soporte para arquitecturas de microservicios, APIs eficientes, Single Page Applications (SPA) y aplicaciones en tiempo real con SignalR.

ASP.NET Core es compatible con las tecnologías modernas, permitiendo un despliegue flexible en contenedores Docker, servidores locales o en la nube con Azure.

Además de tener un rendimiento altamente optimizado, que permite que los proyectos se ejecuten muy muy rápido ^(de verdad, es una de las opciones más rápidas disponibles).

Características principales

  • Código abierto: Desarrollado por Microsoft y la comunidad en GitHub.
  • Alto rendimiento: Optimizado para la ejecución rápida y eficiente.
  • Despliegue flexible: Compatible con contenedores Docker, servicios en la nube como Azure, o servidores locales.
  • Soporte para desarrollo moderno: Incluye herramientas para desarrollo basado en microservicios, APIs, aplicaciones SPA (Single Page Applications), y aplicaciones en tiempo real con SignalR.

ASP.NET Core vs ASP.NET Framework

ASP.NET Core es la evolución de ASP.NET Framework, rediseñado desde cero para ser más ligero, modular y eficiente.

Si conociste a su antecesor, o te suena el nombre, no debes equivocarte entre ambos. Son tecnologías totalmente distintas.

Es la nueva versión de ASP.NET, una reescritura completa de ASP.NET Framework, lanzada en 2016. Fue diseñada desde cero para ser modular, ligera y multiplataforma.

A diferencia de su predecesor, ASP.NET Core no depende de Windows ni de IIS, lo que permite ejecutar aplicaciones en diferentes sistemas operativos, como Linux y macOS.

Es la antigua versión de ASP. Era una plataforma de desarrollo web lanzada por Microsoft en 2002 como parte de la primera versión del .NET Framework.

Fue diseñada para permitir a los desarrolladores crear aplicaciones web dinámicas, servicios web y aplicaciones empresariales utilizando lenguajes como C# y VB.NET.

Durante más de una década, ASP.NET Framework fue la opción principal para el desarrollo web en el ecosistema .NET.

Aunque comparten un nombre similar tienen enfoques y características diferentes, (por la dichosa manía de Microsoft de complicar las cosas con los nombres).

Arquitectura de ASP.NET Core

La arquitectura de ASP.NET Core está diseñada para ser ligera y modular. Se basa en un sistema de middleware que procesa las solicitudes HTTP en un pipeline configurable.

Es decir, que está basado en una serie de “módulos” o middleware. Cada una tarea específica (como autenticación, enrutamiento o manejo de errores)

Como decía, el objeto es dar a la arquitecura de ASP.NET Coreun diseño modular y desacoplado, que lo hace versátil y adaptable. Algunos de sus componentes principales incluyen:

El middleware en ASP.NET Core es una cadena de componentes que procesan las solicitudes HTTP entrantes y salientes. La arquitectura del middleware se basa en un pipeline de solicitudes, donde cada componente tiene la capacidad de:

  • Procesar la solicitud.
  • Pasarla al siguiente middleware en la cadena.
    app.UseRouting();
    app.UseAuthentication();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });

ASP.NET Core sigue el patrón Model-View-Controller (MVC) para aplicaciones web y API Controller para servicios RESTful.

La configuración de rutas define cómo las solicitudes HTTP se asignan a los controladores y acciones.

[ApiController]
[Route("api/[controller]")]
public class ProductosController : ControllerBase
{
    [HttpGet]
    public IActionResult GetAll()
    {
        return Ok(new List<string> { "Producto1", "Producto2" });
    }
}

ASP.NET Core incluye un contenedor de inyección de dependencias integrado que facilita la separación de responsabilidades y promueve un diseño más limpio.

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSingleton<IMiServicio, MiServicio>();
    }
}

La configuración en ASP.NET Core se basa en archivos como appsettings.json, variables de entorno y otros proveedores de configuración.

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=myServer;Database=myDB;User Id=myUser;Password=myPass;"
  }
}

Este es solo el comienzo. A medida que avancemos en el curso, iremos viendo poco a poco todos estos conceptos y tecnologías para construir aplicaciones y proyectos reales 🌐💻.