PARTE I: DOMINA EL DISEÑO DE UNA API
PARTE II: ARQUITECTURAS Y CONTROLADORES API
LABORATORIOS ¡Aplica ya! : DISEÑO Y VARIANTES API CON INMEMORY Y SQL SERVER

Las Plantillas de proyectos .Net Core y cuándo utilizarlas

   Después de esta lección

Aprenderás a:

  • Identificar las plantilla para proyectos con .Net Core
  • Reconocer la funcionalidad y resultados de las plantillas para proyectos.
  • Sabes cuándo usarlas.

Cursos Institucionales.
El Aprendizaje Hecho Fácil. ¡Disfrútalo!

Plantillas para proyectos .NET Core


Visual Studio proporciona una variedad de plantillas de proyecto para crear aplicaciones .NET Core con C#. Para usar estas plantillas de proyecto, debe incluir la carga de trabajo Desarrollo de escritorio de .NET al instalar Visual Studio. En la ilustración se listan las plantillas más populares para la creción de proyectos .Net Core y soluciones API:

Plantilla N° 1: Aplicaciones Web de ASP.NET Core

Ideal para programar páginas Razor 
Esta plantilla tiene la siguiente estructura y vista por default:

CARACTERÍSTICAS CLAVES
Es la típica plantilla para proyectos .Net Core y Razor de inicio. Adiciona las carpetas básicas de este tipo de proyectos como:

  • wwwroot: En proyectos .Net Framework encontrabamos como raíz del proyecto la carpeta principal del sitio web. Ahora wwwroot reemplaza esta carpeta como la raíz en un proyecto .Net Core. En la figura observas su contenido: carpeta de estilos CSS, archivos tipo JavaScript, librerías jquery, entre otros. También es conveniente crear carpetas con contenido de imágenes.
  • Pages: Contiene páginas de Razor y archivos auxiliares. Cada página de Razor es un par de archivos:

    • Un archivo .cshtml que tiene marcado HTML con código C # utilizando la sintaxis de Razor.
    • Un archivo .cshtml.cs que tiene código C # que maneja eventos de página.

    Los archivos de apoyo tienen nombres que comienzan con un guión bajo. Por ejemplo, el archivo _Layout.cshtml configura elementos de la interfaz de usuario comunes a todas las páginas. Este archivo configura el menú de navegación en la parte superior de la página y el aviso de derechos de autor en la parte inferior de la página. 

  • appsetting.json: ¿Recuerdas el archivo webconfig?, Bueno, este archivo— de estructura tipo json  —es el sustituto donde podrás guardar parámetros de configuración, conexiones y datos en general.
  • Program.cs: Seguramente has realizado prácticas en proyectos de tipo Console o en lenguajes de programación como Java, C++, etc. En estos iniciabas la ejecución por el método void main. En .Net Core Program.cs equivale exactamente a lo mismo. Es el punto de entrada de la aplicación y será responsable de registrar Startup.cs fill, IISIntegration y Create a host usando una instancia de IWebHostBuilder.

Plantilla N° 2:

Aplicaciones ASP.NET Core vacío

Archivos mínimos. Ideal para practicar código desde cero
Esta plantilla tiene la siguiente estructura y vista por default:

CARACTERÍSTICAS CLAVES
Esta plantilla para proyectos .Net Core se puede usar una vez domines el diseño de nuevos elementos como Controladores, Modelos, Vistas y Layouts, además de páginas Razor, entre otros. El archivo Program.cs con el punto de entrada de la aplicación solo contiene el siguiente código que muestra al usuario un saludo como se observó en la anterior imagen:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run(); 

Plantilla N° 3:

Aplicaciones ASP.NET Core (Modelo-Vistas-Controlador

Ideal para desarrollo con el patrón MVC, además API REST
Esta plantilla tiene la siguiente estructura y vista por default:

CARACTERÍSTICAS CLAVES
Esta plantilla para proyectos .Net Core es ideal para el desarrollo de proyectos con el patrón MVC. Carga un controlador Home con su respectiva vista:

using Microsoft.AspNetCore.Mvc;
using PLANTILLA_3.Models;
using System.Diagnostics;

namespace PLANTILLA_3.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
} 
Esta es una clase del tipo ViewModel agregada por default en esta plantilla y diseñada específicamente para trabajar con la acción del controlador de error preexistente. Dado que lo más probable es que su aplicación necesite más complejidad que esta, puede eliminar este archivo. Además incluye la carpeta Models con el archivo ErrorViewModel.cs con el siguiente código:
namespace PLANTILLA_3.Models
{
    public class ErrorViewModel
    {
        public string? RequestId { get; set; }

        public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
    }
} 

Plantilla N° 4:

Aplicaciones ASP.NET Web API

Ideal para desarrollo API REST con un cliente por defecto: Swagger.
Esta plantilla tiene la siguiente estructura y vista por default:

CARACTERÍSTICAS CLAVES
Esta plantilla nos ofrece el componente o biblioteca Swashbuckle.AspNetCore que nos facilita de entrada un cliente para realizar pruebas de los servicios API. La plantilla carga como demo una aplicación API que despliega los datos relacionados con el clima en formato JSON como se observa en la siguiente ilustración:

   Controlador API

Podrás agregar a cualquiera de las plantillas anteriores un controlador tipo API, con los endpoint listo para su uso, como veremos a través de los laboratorio ¡Aplica ya!.

Agregar un controlador API

.Net Core ofrece la alternativa de agregar un controlador tipo API con todas las operaciones típicas de un CRUD. Como ilustración utilizaremos la Plantilla N° 4 que incluye el cliente Swagger. Utiliza la opción del menú contextual (clic derecho sobre una carpeta Controller si las has agregado a tu proyecto,  o directamente al raíz de tu proyecto > Agregar > controlador como se observa en las siguientes imágenes:

Observa el conjunto de métodos HTTP para prestar servicios CRUD y el despliegue de los endpoints correspondientes a los recursos URI de nuestros servicios API. Recuerda que cada uno de estos corresponde a un método ActionResult.

   Laboratorios ¡Aplica ya!


El material teórico de las lecciones se aplica en los videos tutoriales del curso.