En el desarrollo de software, ¿cuál es la diferencia entre las aplicaciones de escritorio y las aplicaciones web?

Además del punto obvio que es, una aplicación de escritorio se ejecuta en su computadora, mientras que una aplicación web, por definición, se ejecuta en la computadora de alguien más (un servidor web), un punto más revelador es la administración del estado.

La web no tiene estado. La implicación de esto es que cada vez que hace clic en algún tipo de botón de envío o botón de guardar en un sitio web, el código del lado del navegador debe enviar algo que le diga al servidor remoto quién es usted y qué proceso está tratando de lograr. Esto generalmente se hace con sesiones o cookies. Una aplicación de escritorio mantiene el estado durante el uso, es decir, abre una ventana de edición, la interfaz gráfica de usuario “recuerda” que está editando algo debido al hecho de que la ventana de edición ahora está abierta y el archivo que está editando se almacena en la memoria RAM local. la máquina.

Aparte de eso, funcionalmente no hay mucha diferencia, la web simplemente introduce una conexión de red entre el usuario y los datos almacenados, mientras que una aplicación de escritorio se puede ejecutar en una computadora no conectada a una red.

Esto no es difícil y rápido, dependiendo de la arquitectura o el diseño del software, podría estar en cualquier parte del espectro entre ambos modelos.

Las aplicaciones web pueden ser superiores en tareas administrativas, es decir, para actualizar la aplicación, solo se necesita actualizar una instalación, mientras que para las aplicaciones de escritorio en un entorno de oficina, todas las aplicaciones de escritorio deben actualizarse.

En una aplicación web, generalmente el trabajo pesado se realiza de forma remota. Esto puede significar que una aplicación web puede ampliar sus capacidades de procesamiento con máquinas virtuales, etc., lo que significa que la mayor cantidad de datos que se pueden agrupar puede estar vinculada a la cantidad de servidores que manejan sus solicitudes.

Por supuesto, debido a esto, también hay problemas de seguridad. Todos sus datos se transmiten a través de Internet con una aplicación web. Dependiendo de qué tan paranoico seas, esto podría ser otra consideración importante. Una vez que conecta una computadora a una red, es vulnerable a los ataques, gracias a las muchas “partes móviles” involucradas con las comunicaciones basadas en la red entre varias máquinas cliente.

En las aplicaciones de escritorio, la IU nunca se basa en solicitudes HTTP. Hablas directamente con tu capa de datos.

Debido a esto, los marcos para desarrollar aplicaciones de escritorio son diferentes de los marcos para desarrollar aplicaciones web. Hay algunos cruces en términos de lo que constituye una buena arquitectura, pero las posibles dificultades son diferentes.

La mayoría del software nuevo de hoy está desarrollado para la web. Solo me han pagado para trabajar en una aplicación de escritorio en mis 10 años de hacer software.

Las aplicaciones de escritorio son aplicaciones independientes que se ejecutan en su computadora de escritorio o portátil, también se denominan aplicaciones nativas. Las aplicaciones web se ejecutan dentro de un navegador web. También tiene aplicaciones híbridas que se ejecutan en su escritorio, pero que pueden actualizarse diariamente en línea (un ejemplo) o tienen otras funciones relacionadas con Internet.