sábado, 22 de agosto de 2026

Capítulo 004. Adiós a los NgModules

Introducción

Angular ha evolucionado significativamente a lo largo de los años para simplificar el proceso de desarrollo y mejorar la experiencia de los programadores. Uno de los cambios más importantes introducidos en las versiones recientes es la posibilidad de crear aplicaciones sin necesidad de utilizar NgModules, también conocidos como módulos de Angular.

Esta nueva forma de trabajo permite desarrollar aplicaciones más simples, fáciles de entender y con menos configuraciones innecesarias.

¿Qué eran los NgModules?

Durante muchos años, los NgModules constituyeron la base de cualquier aplicación Angular. Un módulo era una estructura encargada de organizar y registrar los distintos elementos que formaban parte de la aplicación.

Dentro de un módulo se declaraban elementos como:

  • Componentes.

  • Directivas.

  • Pipes.

  • Servicios.

  • Dependencias externas.

Por ejemplo, al crear un nuevo componente era necesario realizar dos pasos:

  1. Crear el componente.

  2. Registrarlo en un NgModule para que Angular pudiera utilizarlo.

Aunque herramientas como Angular CLI automatizaban gran parte de este proceso, los desarrolladores seguían dependiendo de los módulos para organizar y configurar sus aplicaciones.

Limitaciones de los NgModules

Si bien los módulos permitían estructurar aplicaciones grandes, también añadían cierta complejidad al desarrollo.

Entre las situaciones más comunes se encontraban:

  • Tener que declarar manualmente los componentes en un módulo.

  • Configurar importaciones adicionales para utilizar determinadas funcionalidades.

  • Navegar entre componentes y módulos para comprender cómo estaba organizada la aplicación.

  • Incrementar la cantidad de archivos y configuraciones necesarias.

En proyectos grandes, esta dependencia de los módulos podía dificultar la comprensión de la estructura de la aplicación, especialmente para nuevos integrantes del equipo.

La llegada de los Componentes Standalone

Para simplificar el desarrollo, Angular introdujo el concepto de Standalone Components o componentes independientes.

Un componente standalone puede declarar directamente las funcionalidades que necesita sin depender obligatoriamente de un NgModule.

Esto significa que el propio componente puede gestionar sus dependencias, haciendo que el código sea más explícito y fácil de mantener.

Ventajas de los componentes standalone

Trabajar con componentes independientes ofrece varios beneficios:

  • Menor complejidad en la configuración del proyecto.

  • Reducción de archivos de configuración.

  • Mayor claridad sobre las dependencias de cada componente.

  • Mejor experiencia para nuevos desarrolladores.

  • Facilita la organización y mantenimiento de la aplicación.

  • Simplifica la creación de aplicaciones modernas.

En lugar de buscar en distintos módulos para entender de qué depende un componente, la información relevante se encuentra directamente en el propio componente.

¿Han desaparecido los NgModules?

No. Angular continúa ofreciendo soporte para aplicaciones basadas en NgModules.

Esto significa que:

  • Las aplicaciones existentes siguen funcionando.

  • Es posible crear nuevos proyectos utilizando módulos si se desea.

  • Angular mantiene compatibilidad con ambos enfoques.

Sin embargo, el enfoque recomendado para los nuevos desarrollos es el uso de componentes standalone, ya que representan la dirección hacia la que evoluciona la plataforma.

Enfoque utilizado en este curso

A lo largo de este curso trabajaremos utilizando el enfoque moderno de Angular basado en Standalone Components.

Esto nos permitirá:

  • Aprovechar las características más recientes de Angular.

  • Reducir la complejidad de configuración.

  • Construir aplicaciones más limpias y fáciles de entender.

  • Aprender las prácticas actualmente recomendadas por la comunidad Angular.

Resumen

Tradicionalmente, Angular dependía de los NgModules como elemento central para organizar una aplicación. Aunque esta arquitectura fue efectiva durante muchos años, también introducía configuraciones adicionales que podían dificultar el mantenimiento y la comprensión del proyecto.

Con la llegada de los Standalone Components, Angular ofrece una alternativa más simple y moderna que reduce la necesidad de utilizar módulos y facilita el desarrollo de aplicaciones. Por esta razón, en este curso se utilizará el enfoque standalone, alineado con las mejores prácticas actuales de Angular.


Capítulo 3. Angular vs AngularJS

 

Introducción

Para comprender Angular en la actualidad, es importante conocer su origen y evolución. Aunque los nombres AngularJS y Angular suelen utilizarse de manera indistinta, en realidad se trata de tecnologías diferentes.

Angular es la evolución de AngularJS y representa una renovación completa de la plataforma, adaptada a las necesidades del desarrollo web moderno.

¿Qué era AngularJS?

En octubre de 2010 se lanzó AngularJS, un framework frontend basado en JavaScript cuyo objetivo principal era facilitar el desarrollo de aplicaciones de página única (Single Page Applications o SPA).

AngularJS introdujo conceptos que resultaron innovadores para su época, entre ellos:

  • Arquitectura MVC (Model-View-Controller).

  • Enlace bidireccional de datos (Two-Way Data Binding).

  • Desarrollo basado en plantillas HTML enriquecidas.

  • Inyección de dependencias.

  • Separación clara de responsabilidades dentro de la aplicación.

Arquitectura MVC

El patrón Modelo-Vista-Controlador (MVC) permitía dividir la aplicación en tres capas principales:

  • Modelo (Model): representa los datos y la lógica de negocio.

  • Vista (View): corresponde a la interfaz que ve el usuario.

  • Controlador (Controller): actúa como intermediario entre la vista y el modelo.

Este enfoque ayudaba a mantener una estructura organizada y facilitar el mantenimiento del código.

Two-Way Data Binding

Una de las características más populares de AngularJS fue el enlace bidireccional de datos (Two-Way Data Binding).

Gracias a este mecanismo:

  • Los cambios realizados en el modelo se reflejaban automáticamente en la interfaz de usuario.

  • Las acciones realizadas por el usuario en la interfaz actualizaban automáticamente los datos del modelo.

De esta forma, se reducía considerablemente la cantidad de código necesario para sincronizar la información entre la aplicación y la interfaz gráfica.

Popularidad de AngularJS

AngularJS alcanzó una gran popularidad dentro de la comunidad de desarrollo web y llegó a formar parte del conocido stack tecnológico MEAN, compuesto por:

  • MongoDB: base de datos NoSQL.

  • Express.js: framework para aplicaciones Node.js.

  • AngularJS: framework frontend.

  • Node.js: entorno de ejecución para JavaScript en el servidor.

Durante varios años, este conjunto de tecnologías fue ampliamente utilizado para el desarrollo de aplicaciones web completas utilizando JavaScript tanto en el frontend como en el backend.

El nacimiento de Angular

A medida que las aplicaciones web se volvieron más complejas y surgieron nuevos requerimientos de rendimiento, mantenibilidad y escalabilidad, el equipo de AngularJS decidió rediseñar completamente el framework.

En 2014 comenzaron los trabajos para desarrollar la siguiente generación de AngularJS, que posteriormente sería lanzada bajo el nombre de Angular, eliminando el sufijo JS.

Esta nueva versión no fue una simple actualización, sino una reconstrucción completa de la tecnología.

Framework vs Plataforma

Una de las diferencias fundamentales entre AngularJS y Angular es su alcance.

AngularJS: un framework

AngularJS era principalmente un framework enfocado en proporcionar bibliotecas y herramientas para desarrollar aplicaciones web mediante JavaScript.

Su alcance estaba centrado principalmente en el código de la aplicación.

Angular: una plataforma

Angular, por el contrario, se concibe como una plataforma de desarrollo completa.

Además del framework, incorpora herramientas que facilitan diversas etapas del ciclo de vida del software, entre ellas:

  • Creación de proyectos.

  • Generación automática de componentes.

  • Compilación.

  • Pruebas automatizadas.

  • Optimización para producción.

  • Despliegue de aplicaciones.

Un ejemplo de ello es Angular CLI, la herramienta oficial que permite administrar proyectos Angular desde la línea de comandos.

Diferencias arquitectónicas

AngularJS: Controladores

En AngularJS, la lógica de la aplicación se organizaba principalmente mediante controladores (Controllers).

Los controladores gestionaban la interacción entre la vista y los datos de la aplicación.

Angular: Componentes

Angular reemplaza el uso de controladores por una arquitectura basada en componentes.

Un componente encapsula:

  • La lógica de negocio.

  • La plantilla HTML.

  • Los estilos asociados.

  • La interacción con otros componentes.

Este enfoque favorece la reutilización de código, la modularidad y el mantenimiento de aplicaciones de gran tamaño.

TypeScript como lenguaje principal

Otra diferencia importante es el uso de TypeScript.

Mientras que AngularJS fue desarrollado principalmente sobre JavaScript, Angular recomienda el uso de TypeScript como lenguaje principal.

TypeScript aporta características avanzadas como:

  • Tipado estático.

  • Orientación a objetos.

  • Interfaces.

  • Decoradores.

  • Mejor soporte para herramientas de desarrollo.

Estas funcionalidades mejoran la productividad y reducen errores durante el desarrollo de aplicaciones complejas.

Versiones de Angular y AngularJS

Existe una forma sencilla de distinguir ambas tecnologías mediante su numeración de versiones:

AngularJS

Las versiones de AngularJS pertenecen a la rama:

1.x


Por ejemplo:

  • AngularJS 1.5

  • AngularJS 1.6

  • AngularJS 1.7

La última versión oficial de AngularJS fue la 1.7.

Angular

Angular utiliza una numeración independiente que comenzó desde la versión 2:

Angular 2+


Algunas versiones importantes incluyen:

  • Angular 2

  • Angular 4

  • Angular 8

  • Angular 12

  • Angular 16

  • Angular 17

  • Angular 18

  • Angular 19

Por lo tanto, todas las versiones a partir de Angular 2 pertenecen a la plataforma moderna de Angular.

Compatibilidad entre versiones

Uno de los objetivos del equipo de Angular es mantener una experiencia de actualización sencilla.

Aunque cada nueva versión incorpora mejoras y nuevas características, en general Angular procura mantener la compatibilidad con versiones anteriores siempre que sea posible.

Esto significa que:

  • No suele ser necesario reescribir una aplicación completa al actualizarla.

  • Los cambios incompatibles tienden a ser limitados y bien documentados.

  • Existen herramientas automáticas para facilitar las migraciones.

Angular CLI incluye comandos específicos que ayudan a actualizar proyectos existentes a versiones más recientes de la plataforma.

Estado actual de AngularJS

Actualmente, AngularJS se encuentra descontinuado.

Esto implica que:

  • No recibe nuevas funcionalidades.

  • No recibe soporte oficial.

  • No se corrigen errores ni vulnerabilidades de manera activa.

  • No se recomienda para nuevos proyectos.

Las organizaciones que aún utilizan AngularJS suelen planificar migraciones hacia Angular o hacia otras tecnologías modernas para garantizar la mantenibilidad y seguridad de sus aplicaciones.

¿Qué tecnología debería utilizarse hoy?

Para proyectos nuevos, la recomendación es utilizar Angular.

Angular ofrece:

  • Arquitectura moderna basada en componentes.

  • Mejor rendimiento.

  • Herramientas integradas de desarrollo.

  • Soporte activo por parte de Google y la comunidad.

  • Actualizaciones y mejoras continuas.

AngularJS, aunque fue una tecnología revolucionaria en su momento, ha llegado al final de su ciclo de vida y ya no es una opción adecuada para nuevos desarrollos.

Resumen

AngularJS fue un framework frontend basado en JavaScript que popularizó conceptos como las aplicaciones de página única (SPA), la arquitectura MVC y el enlace bidireccional de datos. Sin embargo, la evolución de las necesidades del desarrollo web impulsó la creación de Angular, una plataforma moderna basada en componentes y TypeScript.

Hoy en día, Angular es la tecnología recomendada para construir aplicaciones web empresariales, escalables y de alto rendimiento, mientras que AngularJS se considera una tecnología heredada y sin soporte oficial.

En el próximo capítulo conoceremos la arquitectura general de Angular y los elementos fundamentales que componen una aplicación moderna desarrollada con esta plataforma.


Capítulo 004. Adiós a los NgModules