web-applications - moviles - aplicaciones corporativas ejemplos
¿Por qué prevalecen las aplicaciones web para las aplicaciones corporativas internas? (11)
De acuerdo, me doy cuenta de que a las personas no les gusta instalar cosas en sus PC si no tienen que hacerlo y esa es la principal ventaja de las aplicaciones web sobre "escritorio" que se ejecutan localmente.
Pero para las aplicaciones internas corporativas donde la seguridad no es un problema, si una aplicación es tal que su base de usuarios tiene la aplicación el 100% del tiempo, usándola exclusivamente como su herramienta principal, ¿no sería una mejor opción una aplicación de escritorio?
No tengo experiencia / sé mucho acerca de las aplicaciones web de WPF, pero mi impresión es que es esencialmente una aplicación que se ejecuta localmente en su PC con Windows. Estoy más familiarizado con lo que probablemente sea una tecnología más antigua, WinForms, específicamente, la implementación de una aplicación WinForm a través de la tecnología ClickOnce.
Me parece que Click-Once (y presumiblemente las aplicaciones web de WPF) resolvieron los problemas de implementación de dll hell del pasado, pero me parece que el atractivo de usar aplicaciones web internamente era evitar el dll hell asociados a instalaciones locales. Sin embargo, con este problema resuelto, ¿por qué las empresas aún evitan o temen las aplicaciones que involucran la instalación local y se inclinan tan rápidamente hacia las aplicaciones web?
Me parece que las ventajas de las aplicaciones de escritorio son
1) COSTO: las aplicaciones de escritorio son conceptualmente más simples porque tiene los recursos completos de la máquina local y tiene el estado. Como resultado, las aplicaciones de escritorio TIENEN QUE SER mucho más baratas de desarrollar para la misma funcionalidad. Solo mire todo el complicado código del lado Ajax del lado del cliente / servidor que tiene que pasar para hacer cosas que serían triviales en una aplicación de escritorio. Me imagino personas disputando este punto, pero para mí es obvio y está fuera de discusión.
2) Las aplicaciones de escritorio suelen ser más ricas. Las aplicaciones web son, en el mejor de los casos, comparables a expensas de desarrollar un código más complicado / más costoso. (un corolario a 1)
Puedo listar más, pero esto debería ser suficiente ...
Obviamente, las aplicaciones de escritorio no serían apropiadas para todos los sitios web internos. Pero tome esto como un ejemplo y dígame si cree que una aplicación de escritorio implementada en la web es la mejor opción:
Una aplicación de la Mesa de Ayuda que los usuarios usan 8 horas diarias todos los días y es la única aplicación que se ejecuta en sus PC. Además, la aplicación es parcheada rara vez.
Mi sensación es que las personas se vuelven locas y una vez que saben algo (por ejemplo, las aplicaciones web) es la solución para todo. ¿Qué dices?
Edición n. ° 1: Here''s un ejemplo de una aplicación de escritorio Click Once (un front-end integrado para Rational Clearquest / Sharepoint / PVCS / Mercury para administrar tickets de problemas) que aprovecha la capacidad informática del cliente para almacenar información localmente y dejar que el usuario divida y corte los datos de diferentes maneras sin golpear el servidor cada vez y al mismo tiempo permita al usuario vincular en tiempo real a los datos en vivo para actualizar registros individuales. Es como una descarga de hoja de cálculo que mantiene enlaces a los datos del servidor si el usuario desea realizar una actualización.
Claro que puedes imitar esta funcionalidad en la web, pero creo que el esfuerzo del desarrollador sería mucho mayor y no obtendrías este tipo de capacidad de respuesta que sería importante para un usuario que pasa mucho tiempo en la aplicación.
¿Por qué prevalecen las aplicaciones web para las aplicaciones corporativas internas?
Principalmente porque el modelo de implementación centralizada de la aplicación web resolvió la pesadilla de la implementación de las antiguas aplicaciones de cliente pesado (especificaciones de la máquina, bibliotecas disponibles, controladores, etc.). He visto compañías donde, cuando terminaron con el despliegue, la última máquina instalada ya tenía dos versiones por delante de la primera. Con un navegador en el lado del cliente (es decir, un entorno de ejecución multiplataforma) y una implementación centralizada, simplemente elimine estos problemas. Bienvenido a la era del cliente ligero .
Ahora, no estoy convencido de que las aplicaciones de escritorio sean generalmente más baratas (no sé si el desarrollo es más barato, pero estoy seguro de que el mantenimiento, el soporte, ... no lo son).
Sin embargo, estoy de acuerdo en que las aplicaciones de escritorio suelen ser más ricas. Independientemente de lo que diga la gente, esto no era discutible antes del advenimiento de AJAX y esto todavía se aplica en algunas áreas específicas donde un navegador no es apropiado, con o sin AJAX (pida a un operador que use un navegador y verá). Algunas personas no desean un paradigma de flujo de páginas, otras sí necesitan widgets avanzados (por ejemplo, un componente de cuadrícula con filtrado avanzado, agrupación, características similares a Excel como fórmulas básicas, etc.) o baja latencia o tiempo real, etc. La aplicación de Internet enriquecida, o RIA, no está realmente diseñada para, y por lo tanto no es la herramienta correcta para elegir.
Y también estoy de acuerdo en que tecnologías como Java WebStart o Microsoft ClickOnce resuelven el viejo problema de implementación y permiten el desarrollo de las llamadas aplicaciones de escritorio enriquecidas (RDA) (IU de escritorio enriquecida en el cliente, negocio en el servidor, protocolo estándar entre ellos y implementación centralizada, por lo que aún es un cliente ligero ) que parece ser un excelente compromiso (mejor experiencia de usuario pero sin dolor de cabeza).
Entonces, ¿por qué las personas omiten sistemáticamente la opción RDA? Bueno, yo creo que:
- Nosotros (los profesionales de TI) hemos enseñado a las personas a crear aplicaciones de Internet para que solo (re) lo hagan.
- Ya es lo suficientemente complicado como para explicar Internet, thin client, AJAX, RIA, etc. y no hay mucho evangelismo en RDA. Así que la mayoría de la gente simplemente no sabe qué son las RDA.
- Nosotros (profesionales de TI) decimos constantemente algo y su contrario: no use un cliente gordo, apesta, use un cliente ligero, rige, no usa javascript, apesta (era anterior a AJAX), usa javascript, rige (después de la era AJAX), no use un cliente ligero (!), apesta, usa una aplicación de escritorio enriquecida, gobierna y así sucesivamente. Incluso si hay lógica en esto, esto hace que algunos conceptos (como RDA) sean difíciles de vender a los no técnicos al final.
- La gente no olvida las malas experiencias tan fácilmente (cliente gordo) incluso si las cosas han cambiado desde entonces.
- La gente realmente no necesita RDA, digamos en el 95% de las situaciones.
- Hay más desarrolladores de RIA que desarrolladores de RDA.
Así que es culpa nuestra (nosotros, profesionales de TI) :)
- Las aplicaciones web son mucho más fáciles de actualizar. El equipo de desarrollo interno puede actualizar el sitio sin que los usuarios lo noten.
- Las aplicaciones web normalmente usan menos ancho de banda que los clientes gordos. Si tiene varias oficinas o una fuerza de ventas en la carretera, el ancho de banda es importante. Intente usar (en el peor de los casos) MS Access para conectarse a una base de datos remota a través de una línea de 1 mb, no funciona.
Consideremos su respuesta 1) COSTO: las aplicaciones de escritorio son conceptualmente más simples porque tiene todos los recursos de la máquina local y tiene el estado. Como resultado, las aplicaciones de escritorio TIENEN QUE SER mucho más baratas de desarrollar para la misma funcionalidad. Solo mire todo el complicado código del lado Ajax del lado del cliente / servidor que tiene que pasar para hacer cosas que serían triviales en una aplicación de escritorio. Me imagino personas disputando este punto, pero para mí es obvio y está fuera de discusión.
Usted no tiene en cuenta los costos de implementación y mantenimiento. Las aplicaciones de escritorio deben mantenerse en cada máquina en la que estén instaladas. En la mayoría de los casos, esto requiere configuración en cada sistema. Los dólares se acumulan rápidamente.
Con aplicaciones web la aplicación es un navegador. Cada máquina se configura fácilmente con un navegador que se mantiene a un costo menor.
2) Las aplicaciones de escritorio suelen ser más ricas. Las aplicaciones web son, en el mejor de los casos, comparables a expensas de desarrollar un código más complicado / más costoso. (un corolario a 1)
No puedo estar de acuerdo con que las aplicaciones de escritorio suelen ser más ricas. Con las tecnologías más nuevas, las aplicaciones web pueden contener una interfaz de usuario enriquecida y características, con costos de desarrollo mínimos.
En mi experiencia, ha sido principalmente por la facilidad de distribución. Trabajé en el empaquetado, la logística de distribución y la depuración individual del sistema de una aplicación de Win32 considerable que debía entregarse a miles de personas en múltiples ubicaciones. La palabra dolor de cabeza no hace justicia a la experiencia.
Después de eso, creé una aplicación web para la misma compañía. También fue utilizado por miles de personas. Una vez que terminamos de desarrollar y probar la aplicación, todo el proceso de distribución consistió en 1) implementación y 2) envío de la URL a todos. Es mucho más fácil dar a todos el acceso a la aplicación web, y una fracción diminuta de problemas de soporte.
Estoy de acuerdo en que las aplicaciones web no son más rápidas de desarrollar, a menos que tenga más de un sistema operativo para admitir, o una conexión de base de datos, que se aplica básicamente a todo lo que hago.
- El 20% de mis usuarios no están ejecutando Windows.
- El 100% de mis usuarios quieren usar las aplicaciones de intranet desde casa.
- El 100% de mis usuarios quieren ver sus datos personales sin importar desde dónde se conecten.
- A nadie le gusta que le digan "espere mientras lo actualizamos a la versión 3.0.1"
Los programas de creación de documentos (incluidos los programas de gráficos) son claramente más apropiados para el escritorio, a pesar de lo que Google Docs piense. No querría que un editor de sonido o video se ejecute de forma remota. Pero cuanto menos personal es el trabajo, más colaborativo (corporativo), más aplicaciones web tienen sentido.
La independencia de la plataforma / navegador es muy incorrecta para una respuesta a la pregunta.
Lo que muchas respuestas no mencionaron es que muchas organizaciones crearán y utilizarán aplicaciones web que se dirigen a una determinada versión de un determinado navegador. Más fácil de desarrollar algo que funciona y se ve correctamente solo en 1 navegador web. Ejemplo: IE5, IE7, etc ...
Veo esto en todas partes, por lo que decir que las aplicaciones web pueden ejecutarse en cualquier plataforma / navegador en un entorno de intranet es falso en muchos casos, ya que las aplicaciones web internas se suelen usar solo dentro de la empresa y, por lo tanto, la política interna de la compañía está estandarizada. Una determinada plataforma y navegador.
Por este motivo, los desarrolladores escribirán y probarán sus aplicaciones web solo en un determinado navegador / plataforma.
Creo que este comentario niega los comentarios anteriores que explican por qué las aplicaciones web se usan en intranets corporativos.
La mayoría de las aplicaciones de tipo "corporativo" realmente no se beneficiarían mucho de ser locales. Por lo general, no necesitarán video acelerado, etc. En su mayoría son datos que se ven y se ingresan. Realmente, los puntos de fácil implementación, administración central, etc. están superando los beneficios de una aplicación de escritorio local.
Las aplicaciones web son prevalentes por muchas razones:
- Es fácil de asegurar
- Crea un punto de referencia estándar al que todos pueden acceder:
- No bloquea a las personas utilizando diferentes plataformas.
- Más fácil para que la gente acceda desde fuera de la red (pone los problemas de seguridad en los enrutadores / vpn, etc.)
- Menos soporte técnico (plataforma de ejecución estándar)
- Más fácil de soportar (si se cae, entonces tiene un equipo de respuesta crítica que puede solucionarlo, en lugar de miles de máquinas que se caen al azar)
- Punto central de almacenamiento de datos (más fácil de copia de seguridad y acceso)
- Puede escalar mejor
- Es más fácil crear o reutilizar un marco empresarial que encontrar / crear un conjunto de componentes distribuidos para trabajar con un entorno cambiante (LDAP, dbs diferentes, copias de seguridad diferentes, sincronización)
- Menos sujetos a atacantes (gusanos, personas que modifican el cliente, etc.)
- Los clientes de escritorio a veces pueden tener entornos codificados, o requerir ciertos conjuntos de herramientas que dificultan la configuración de los nuevos usuarios
- Es más barato tratar con un servidor en lugar de miles de clientes. Puede configurar los sistemas para que sean reductores y tener un ahorro rápido de fallos. Sí, el equipo del servidor cuesta más por un factor, pero cuesta menos mantenerlo a largo plazo.
También permite una escalabilidad y confiabilidad más fácil para la aplicación. Al ponerlo en un servidor respaldado (posiblemente en un clúster), permite una única fuente para implementaciones (@Gabriel) y tiene menos de qué preocuparse en el mantenimiento del sistema. No tiene que preocuparse de que la PC de Mary en el pasillo sea demasiado lenta para ejecutar la aplicación. También reduce los requisitos de acceso / seguridad a las fuentes de datos. Con el nuevo desarrollo de sitios web de MVC, n-tier, etc., el acceso a los datos se asigna a una capa singular en lugar de molestar a cada tom / dick / harry que tiene acceso de lectura a la misma.
- Porque la web es una plataforma universal, y los sistemas operativos de los clientes no lo son.
- Porque desarrollar y mantener el código del lado del servidor es más fácil que desarrollar y mantener el código del lado del servidor Y del lado del cliente.
- Debido a que la web es estable y basada en estándares, mientras que los sistemas operativos de los clientes son propietarios y evolucionan.
- Porque la web durará más que su actual política de TI y su estructura corporativa. (Cuando se fusiona con la compañía B, y 5,000 empleados se presentan con sus Chromebooks, sus aplicaciones inteligentes de Windows no se verán tan inteligentes).
- Porque el 99% de las aplicaciones corporativas son aplicaciones CRUD. Si necesita manipulación de datos del lado del cliente, voltee a Excel.
- Porque buena suerte encontrando desarrolladores de clientes Windows. El dinero, la acción y el talento están todos en la web y en el móvil.
- Tiempo de desarrollo más rápido
- Facilidad de implementación (probablemente implementará algunas veces)
- Algunos grupos de TI corporativos no permiten a los usuarios instalar aplicaciones
****Editar****
- Más fácil garantizar el rendimiento de la red de la aplicación a la base de datos
- La base de datos es más segura
- Más fácil de explicar cómo lanzar la aplicación.
- No es necesario almacenar o instalar bibliotecas adicionales (generalmente)
- Más fácil de mantener (tanto por desarrolladores como por TI)