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.