Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/04/2013, 21:13
HighCore
(Desactivado)
 
Fecha de Ingreso: abril-2013
Mensajes: 70
Antigüedad: 11 años, 7 meses
Puntos: 5
Respuesta: aplicaciones de escritorio y web

Aldo:

Soy programador de aplicaciones de escritorio (Windows), con lo cuál hablo con conocimiento de causa.

Programar una aplicación Web y programar una aplicación de Escritorio son 2 cosas totalmente distintas.

Para empezar, aparte de lo ya mencionado sobre seguridad, etc, en general las aplicaciones de escritorio son "distribuidas", es decir, lo que se conoce como "N-Tier".

Esto significa que hay distintos componentes de la aplicación que se ejecutan en distintas PC físicamente, o al menos en distintos procesos.

Esto es muy difererente del paradigma Web en el cuál generalmente el Server responde a un Request del browser y ejecuta el código por sí mismo. En general el 90-95% del código de una aplicación web (excepto el Javascript que se pueda llegar a agregar al HTML por cuestiones de interactividad) se ejecuta en el Server.

En una aplicación distribuida, en cambio, generalmente existe al menos un nivel de Server (el cuál se encarga del acceso a datos, y de la lógica de negocio más pesada), y un nivel de Client, el cuál se encarga de comunicarse con el Server, pedirle los datos, mostrarlos en pantalla, y manejar toda la interacción con el usuario.

Luego generalmente existe una capa intermedia, conocida como la "capa de servicios", que son componentes que se encargan de la comunicación Client <-> Server, generalmente en forma de Web Services o algún otro tipo de mecanismo de intercomunicación.

Como veras, una aplicación distribuida puede ser mas compleja a nivel arquitectura de software que una aplicación web.

Surgen entonces varias preguntas...

1 - ¿Que ventaja tiene una aplicación de escritorio a una Web?

Cabe destacar que son muchísimas las ventajas que tiene una aplicación que se ejecuta localmente en el client y se comunica con el server, por ejemplo, una aplicacion de escritorio tiene cierto nivel de autonomía con respecto al server, es decir que no necesita del server para absolutamente todo, como una apliacación web.

Implementando mecanismos como Cache Local (por ejemplo), uno puede traer mucha data del server y utilizarla localmente en el client las veces que sea necesario.... esto puede resultar en un ahorro muy grande de interacciones de red, haciendo que la aplicacion sea mas rapida (ya que no tiene que ir contra el server todo el tiempo a buscar todo).

2 - En las aplicaciones web toda la logica de negocio esta en el server. En las aplicaciones distribuidas, la logica tambien esta distribuida. Hay cuestiones que le corresponden al server, y hay otras que se pueden realizar directamente en el client, con lo cuál y debido al punto anterior es más rapido.

3 - Las aplicaciones de escritorio pueden hacer uso full de los recursos del client. Por ejemplo, WPF (que es la tecnología de .Net para hacer aplicaciones de Windows) Está basado en DirectX (como la mayoría de los juegos modernos) y hace uso de las capacidades del hardware de video. Permitiendo que las aplicaciones tengan una experiencia de usuario muchísimo mejor que otras tecnologías. WPF por ejemplo tiene soporte nativo para animaciones, 3D, Touch, y muchas otras cosas que serían mucho más trabajosas de desarrollar con Javascript en Web.

En fin.... cada mundo tiene sus ventajas. Yo creo que para aplicaciones datacentricas de uso continuo es mucho mejor una aplicación Escritorio que una web. Por otro lado obviamente para sitios web comerciales o aplicaciones más livianas conviene web.