viernes, 4 de septiembre de 2026

Capítulo 007. Introducción a ASP.NET Core

Introducción

ASP.NET Core es un framework de desarrollo web de código abierto creado por Microsoft que permite construir aplicaciones web modernas, servicios web, APIs REST y aplicaciones empresariales de alto rendimiento.

Una de sus principales características es que es multiplataforma, lo que significa que puede ejecutarse en distintos sistemas operativos, como:

  • Windows

  • Linux

  • macOS

Esta flexibilidad permite desarrollar y desplegar aplicaciones en diversos entornos sin depender de una plataforma específica.


¿Qué significa ASP?

ASP proviene de Active Server Pages, una tecnología diseñada para crear sitios web dinámicos.

A diferencia de los sitios estáticos, donde el contenido es siempre el mismo para todos los usuarios, un sitio dinámico puede generar información diferente según diversos factores, por ejemplo:

  • El usuario que ha iniciado sesión.

  • Los datos almacenados en una base de datos.

  • La fecha y hora actuales.

  • La información enviada desde formularios.

  • Las reglas de negocio de la aplicación.

Gracias a ello, es posible construir aplicaciones web interactivas que respondan de manera inteligente a las acciones de los usuarios.


¿Cuál es el objetivo de ASP.NET Core?

La misión principal de ASP.NET Core es simplificar el desarrollo de aplicaciones web proporcionando funcionalidades que suelen ser necesarias en la mayoría de los proyectos.

En lugar de implementar estas características desde cero en cada aplicación, los desarrolladores pueden aprovechar las herramientas que el framework ofrece de forma integrada.

Esto permite:

  • Reducir tiempos de desarrollo.

  • Evitar la duplicación de esfuerzos.

  • Mantener estándares de calidad.

  • Mejorar la mantenibilidad del código.

  • Incrementar la productividad del equipo.

En otras palabras, ASP.NET Core ayuda a los desarrolladores a concentrarse en la lógica de negocio de la aplicación en lugar de resolver problemas comunes ya abordados por el framework.


Características principales de ASP.NET Core

ASP.NET Core incorpora un amplio conjunto de funcionalidades listas para utilizarse en aplicaciones web modernas.

Sistema de ruteo

El sistema de Routing permite determinar qué código debe ejecutarse cuando se recibe una petición HTTP.

Por ejemplo, una solicitud a una determinada URL puede dirigirse automáticamente a una acción específica dentro de un controlador o endpoint.

Esto facilita la construcción de APIs y aplicaciones web organizadas y fáciles de mantener.

Inyección de dependencias

ASP.NET Core incluye un sistema de Inyección de Dependencias (Dependency Injection) integrado de forma nativa.

Esta característica permite desacoplar los distintos componentes de la aplicación y aplicar principios fundamentales de diseño de software.

Gracias a la inyección de dependencias:

  • Las clases dependen de abstracciones en lugar de implementaciones concretas.

  • El código es más fácil de probar.

  • Se mejora la reutilización de componentes.

  • Se facilita el mantenimiento de la aplicación.

Más adelante en el curso se profundizará en este concepto, ya que constituye una pieza fundamental de la arquitectura moderna en .NET.

Administración de usuarios y autenticación

ASP.NET Core proporciona herramientas que permiten implementar funcionalidades relacionadas con la gestión de usuarios, tales como:

  • Registro de usuarios.

  • Inicio de sesión.

  • Recuperación de contraseñas.

  • Control de acceso.

  • Autenticación y autorización.

Estas capacidades reducen significativamente el trabajo necesario para incorporar mecanismos de seguridad en una aplicación.

Desarrollo de APIs REST

ASP.NET Core es ampliamente utilizado para la creación de APIs REST, que posteriormente pueden ser consumidas por aplicaciones frontend desarrolladas con tecnologías como Angular, React o Vue.

Esta separación entre frontend y backend es una de las arquitecturas más utilizadas en el desarrollo moderno de aplicaciones web.


Rendimiento

Uno de los aspectos más destacados de ASP.NET Core es su excelente rendimiento.

Con cada nueva versión de .NET, Microsoft introduce optimizaciones que mejoran la velocidad de ejecución y el consumo de recursos.

En muchos casos, simplemente actualizar una aplicación a una versión más reciente del framework puede generar mejoras de rendimiento sin necesidad de modificar el código existente.

Esta evolución constante ha convertido a ASP.NET Core en una de las plataformas más rápidas para el desarrollo de aplicaciones web y APIs empresariales.


ASP.NET vs ASP.NET Core

Es importante diferenciar entre ASP.NET y ASP.NET Core, ya que son tecnologías distintas.

ASP.NET

ASP.NET fue el framework web tradicional de Microsoft.

Sus principales características eran:

  • Funcionaba únicamente en Windows.

  • Dependía del .NET Framework clásico.

  • Estaba orientado principalmente a entornos Microsoft.

ASP.NET Core

ASP.NET Core representa la evolución moderna de la plataforma.

Entre sus ventajas destacan:

  • Compatibilidad con Windows, Linux y macOS.

  • Mayor rendimiento.

  • Arquitectura moderna y modular.

  • Código abierto.

  • Mejor integración con contenedores y servicios en la nube.

  • Desarrollo activo y soporte continuo.

Por estas razones, ASP.NET Core es la tecnología recomendada para nuevos proyectos y desarrollos web.


Lenguajes compatibles con ASP.NET Core

ASP.NET Core permite utilizar distintos lenguajes compatibles con la plataforma .NET.

Sin embargo, el lenguaje más utilizado y recomendado es C# (C Sharp), que será el utilizado a lo largo de este curso.


Introducción a C#

C# es un lenguaje de programación moderno, potente y versátil que combina características de la programación orientada a objetos y la programación funcional.

Programación orientada a objetos

C# permite trabajar con conceptos fundamentales como:

  • Clases.

  • Objetos.

  • Herencia.

  • Interfaces.

  • Encapsulamiento.

  • Polimorfismo.

Estos elementos facilitan la construcción de aplicaciones organizadas, escalables y fáciles de mantener.

Características funcionales

Además de sus capacidades orientadas a objetos, C# incorpora varias características procedentes de la programación funcional, entre ellas:

  • Funciones anónimas.

  • Expresiones lambda.

  • Métodos de extensión.

  • Consultas LINQ.

  • Delegados.

Estas herramientas permiten escribir código más expresivo y eficiente.

Durante el curso se estudiarán estos conceptos de manera práctica conforme sean necesarios para el desarrollo de la aplicación.


Resumen

ASP.NET Core es un framework moderno y multiplataforma diseñado para el desarrollo de aplicaciones web, servicios y APIs de alto rendimiento. Su amplio conjunto de funcionalidades integradas, incluyendo ruteo, inyección de dependencias, autenticación y soporte para APIs REST, permite a los desarrolladores crear soluciones robustas sin necesidad de reinventar elementos comunes de la infraestructura de una aplicación.

Además, gracias al uso de C# como lenguaje principal, ASP.NET Core ofrece una combinación de productividad, rendimiento y mantenibilidad que lo ha convertido en una de las tecnologías más utilizadas para el desarrollo backend empresarial.

En el próximo capítulo profundizaremos en la evolución de la plataforma .NET y entenderemos cómo ASP.NET Core se integra dentro del ecosistema moderno de desarrollo de Microsoft.


sábado, 29 de agosto de 2026

Capítulo 006. Anatomía de una Aplicación Angular Standalone

Introducción

Las aplicaciones Angular están compuestas por diversos elementos que trabajan conjuntamente para ofrecer una experiencia de usuario dinámica, organizada y fácil de mantener. Comprender estos elementos es fundamental para desarrollar aplicaciones modernas siguiendo las mejores prácticas de la plataforma.

En las versiones actuales de Angular, especialmente cuando se trabaja con el enfoque standalone, los componentes se convierten en el eje principal de la aplicación, eliminando la dependencia de los tradicionales NgModules.

Los elementos más importantes que encontraremos en una aplicación Angular son:

  • Componentes (Components)

  • Directivas (Directives)

  • Pipes

  • Servicios (Services)

  • Ruteo (Routing)

En este capítulo revisaremos la función de cada uno de ellos y cómo contribuyen al funcionamiento de una aplicación Angular.


Componentes

Los componentes constituyen la unidad fundamental de construcción en Angular. Representan las distintas partes visuales de la aplicación con las que el usuario puede interactuar.

Toda aplicación Angular contiene al menos un componente, conocido como componente raíz (Root Component), a partir del cual se estructura el resto de la aplicación.

¿Qué es un componente?

Un componente es una clase de TypeScript decorada con el decorador @Component, que permite a Angular reconocerla como un componente válido.

Cada componente está formado por:

  • Una clase que contiene la lógica de negocio y los datos.

  • Una plantilla HTML (template) que define la interfaz visual.

  • Opcionalmente, un archivo de estilos CSS, SCSS o similar.

Responsabilidades de un componente

Dentro de un componente podemos:

  • Definir variables que contienen datos.

  • Implementar métodos o funciones.

  • Gestionar eventos generados por el usuario.

  • Controlar la información mostrada en la interfaz.

Event Binding

El Event Binding permite ejecutar código cuando ocurre una acción por parte del usuario.

Por ejemplo:

  • Hacer clic en un botón.

  • Escribir en un campo de texto.

  • Seleccionar una opción de una lista.

Cuando se produce el evento, Angular ejecuta un método definido dentro del componente.

Property Binding

El Property Binding permite enviar información desde la clase del componente hacia la plantilla HTML.

Gracias a esta funcionalidad, es posible mostrar dinámicamente datos almacenados en variables o resultados obtenidos mediante cálculos realizados en el componente.

De esta forma, la interfaz se mantiene sincronizada con el estado de la aplicación.


Directivas

Las directivas son instrucciones que permiten modificar la apariencia o el comportamiento de los elementos HTML.

Una forma sencilla de entenderlas es pensar que las directivas amplían las capacidades nativas de HTML, agregando funcionalidades específicas proporcionadas por Angular.

Tipos de directivas

Angular clasifica las directivas en tres categorías principales:

1. Componentes

Los componentes son, técnicamente, un tipo especial de directiva.

Además de modificar el comportamiento, incluyen una plantilla HTML propia y representan una porción completa de la interfaz de usuario.

2. Directivas estructurales

Las directivas estructurales modifican la estructura del DOM (Document Object Model).

Estas directivas pueden:

  • Agregar elementos.

  • Eliminar elementos.

  • Reemplazar elementos existentes.

Un ejemplo clásico es *ngIf, que permite mostrar u ocultar contenido en función de una condición.

Por ejemplo:

  • Mostrar un mensaje únicamente cuando el usuario haya iniciado sesión.

  • Ocultar determinada información si no existen datos disponibles.

3. Directivas de atributo

Las directivas de atributo modifican la apariencia o el comportamiento de elementos ya existentes.

No alteran la estructura del DOM, sino que cambian características de los elementos sobre los que se aplican.

Un ejemplo común es ngClass, que permite agregar o eliminar clases CSS dinámicamente según determinadas condiciones.

Esto resulta especialmente útil para:

  • Resaltar errores de validación.

  • Aplicar estilos condicionales.

  • Modificar la apariencia según el estado de la aplicación.


Pipes

Los Pipes permiten transformar datos antes de mostrarlos al usuario.

Su objetivo principal es presentar la información en un formato más adecuado o fácil de interpretar.

Casos de uso comunes

Los pipes pueden utilizarse para:

  • Formatear fechas.

  • Formatear monedas.

  • Convertir texto a mayúsculas o minúsculas.

  • Mostrar porcentajes.

  • Transformar valores personalizados.

Por ejemplo, una fecha almacenada en formato técnico puede mostrarse en un formato más amigable para el usuario final.

Este mecanismo ayuda a separar la lógica de presentación de la lógica de negocio.


Servicios

Los servicios se utilizan para encapsular lógica o datos que no pertenecen específicamente a un componente.

Su principal objetivo es promover la reutilización de código y mantener la aplicación organizada.

¿Por qué utilizar servicios?

Cuando una funcionalidad debe ser utilizada por varios componentes, no resulta conveniente duplicar el mismo código en cada uno de ellos.

En lugar de eso, se crea un servicio que centraliza dicha funcionalidad.

Posteriormente, los componentes que necesiten utilizarla pueden acceder al servicio mediante el sistema de inyección de dependencias de Angular.

Ejemplos de uso

Los servicios suelen utilizarse para:

  • Consumir APIs REST.

  • Compartir información entre componentes.

  • Gestionar autenticación y autorización.

  • Implementar reglas de negocio.

  • Centralizar operaciones de acceso a datos.

Este enfoque mejora considerablemente la mantenibilidad de la aplicación y reduce la duplicidad de código.


Ruteo

El ruteo (Routing) es el mecanismo que permite la navegación dentro de una aplicación Angular.

Gracias al sistema de rutas, Angular puede determinar qué vista o componente debe mostrarse basándose en la URL actual del navegador.

¿Cómo funciona?

Cuando el usuario accede a una dirección específica, Angular analiza la ruta y muestra el componente correspondiente.

Por ejemplo:

  • /inicio → Página principal.

  • /productos → Catálogo de productos.

  • /contacto → Página de contacto.

Aunque para el usuario parece que navega entre distintas páginas, internamente Angular suele reemplazar u ocultar componentes dentro de una única aplicación cargada en el navegador.

Esta característica es la base de las aplicaciones conocidas como Single Page Applications (SPA).

Beneficios del ruteo

El sistema de ruteo proporciona varias ventajas:

  • Navegación fluida entre vistas.

  • URLs amigables y compartibles.

  • Compatibilidad con los botones Atrás y Adelante del navegador.

  • Soporte para parámetros de ruta.

  • Soporte para query strings.

  • Carga dinámica de componentes y módulos.

Todo ello contribuye a una experiencia de usuario más intuitiva y profesional.


Resumen

Una aplicación Angular Standalone se construye alrededor de varios elementos fundamentales:

  • Los componentes representan la interfaz de usuario y contienen la lógica asociada a cada vista.

  • Las directivas amplían las capacidades de HTML y permiten modificar la estructura o comportamiento de los elementos.

  • Los pipes transforman datos para presentarlos de forma más amigable.

  • Los servicios encapsulan lógica reutilizable y facilitan el intercambio de información entre componentes.

  • El ruteo permite implementar la navegación dentro de la aplicación y controlar qué contenido se muestra según la URL.

Dominar estos elementos es esencial para desarrollar aplicaciones Angular modernas, organizadas y fáciles de mantener. En los próximos capítulos profundizaremos en cada uno de ellos y aprenderemos a crear nuestras propias implementaciones para resolver necesidades reales de negocio.