303 words
2 minutes
1.1 Cuando Algo Debe Ser Web

27/Ago/2025

1.1 ¿Cuándo una aplicación debe ser web?#

La decisión de desarrollar una aplicación como web depende de los requisitos de acceso, seguridad y compatibilidad con dispositivos externos.

Acceso a periféricos#

  • Cuando la aplicación necesita interactuar directamente con periféricos (lectores de código de barras, puntos de venta, impresoras fiscales, etc.), lo más recomendable es no optar por una solución web.
  • Esto se debe a que los navegadores limitan el acceso directo al hardware por motivos de seguridad.

Restricciones del navegador#

  • Una aplicación web corre dentro de una pestaña del navegador y, en general, no comparte información entre pestañas, salvo casos específicos como cookies o almacenamiento local.

  • En el pasado, tecnologías como:

    • ActiveX (Internet Explorer/Edge): permitían acceso directo a recursos del sistema, pero implicaban quitar medidas de seguridad, lo que era una mala práctica.
    • Java Applets: ejecutados mediante el JRE, permitían más integración, pero consumían muchos recursos y también tenían riesgos de seguridad.
  • Actualmente, el acceso directo a periféricos desde el navegador está muy restringido para proteger al usuario.

Seguridad y multiplataforma#

  • ActiveX y Applets no eran multiplataforma y representaban riesgos de virus.
  • Hoy en día, se prioriza el desarrollo con frameworks modernos y estandarizados, evitando depender de componentes inseguros.

Frameworks y dependencias#

  • Muchos frameworks son independientes del SGBD, salvo casos donde se requiere una función específica (por ejemplo, Redis para gestión en memoria y alto rendimiento).
  • En lenguajes como Python, el ecosistema de paquetes (pip) es muy útil, pero se debe tener cuidado con librerías poco auditadas.
  • En JavaScript, especialmente en el frontend, las librerías deben elegirse con cuidado, ya que el exceso de dependencias aumenta los riesgos de seguridad.

Buenas prácticas#

  • Importar la menor cantidad de librerías posible.
  • Usar librerías y frameworks auditados y confiables.
  • Mitigar dependencias innecesarias para reducir vulnerabilidades.
  • Buscar siempre la funcionalidad y la seguridad, más que la simple comodidad en el desarrollo.

Interoperabilidad#

  • Lenguajes como Java ofrecen una fuerte interoperabilidad multiplataforma, lo que favorece el desarrollo en distintos entornos sin comprometer la portabilidad.