¿Cuándo se trata de una aplicación web y ya no es solo un sitio web?

La línea se está difuminando hoy en día, pero generalmente una aplicación web contiene lógica de negocios tanto del lado del servidor como del lado del cliente, mientras que un sitio web simple generalmente sirve contenido estático y tiene cierta lógica del lado del cliente. (La lógica del lado del cliente significa que cualquier lógica se realiza en el navegador web y el servidor, lo que significa que hay computadoras trabajando en segundo plano).

La forma en que diferenciaría un sitio web frente a una aplicación web para un cliente sería darles ejemplos de cada uno.

Aquí hay un ejemplo:

El cliente A dirige un restaurante chino. Quieren enumerar su menú, horarios e información de contacto.

Generalmente consideraría que es un sitio web, porque toda la lógica del sitio se puede programar con anticipación. Los datos no son realmente dinámicos, lo que significa que cuando un visitante visita el sitio, generalmente verá lo mismo y no podrá cambiarlo. El propietario del sitio puede cambiar el contenido desde el servidor, pero de lo contrario cada vez que un usuario visite el sitio, mostrará básicamente exactamente lo mismo. Cualquier interactividad se realiza utilizando la lógica del lado del cliente con Javascript, lo que significa que ocurre en tiempo real en el navegador web. Por lo general, no hay un servidor que tome decisiones sobre cómo se representará el sitio.

El cliente B dirige una tienda de juguetes y desean mantener un inventario de sus artículos y permitir que las personas se registren y realicen pedidos (en techno babble, quieren que sus usuarios realicen operaciones CRUD).

Generalmente consideraría que esta es una aplicación web porque requiere datos dinámicos y vistas que cambiarán en cualquier momento. Los usuarios del sitio colocarán artículos en su carrito de compras (creando un registro en una base de datos, lo que requiere una lógica empresarial más compleja que se ejecuta en un servidor).

La arquitectura de las aplicaciones web a menudo se basa en un marco de Model View Controller (MVC para abreviar) o cualquier derivación.

Modelo, que significa los datos, Vista que significa el contenido HTML estático que ve un usuario en un momento dado y Controlador, que se encuentra entre los dos proporcionando la lógica de negocios para cambiar los datos y las vistas en función de la interacción del usuario.

La razón por la que la línea a veces se vuelve borrosa es porque hoy en día, los sitios web simples a menudo se crean utilizando un generador de sitios web estáticos, lo que permite al desarrollador aplicar la lógica de cómo se construye el sitio con anticipación. Sin embargo, ese es un tema completamente diferente y creo que he cubierto tu pregunta.

Espero que esto ayude un poco.

Saludos,

Ryan Collins – Rapport tecnológico

Desarrollo móvil y web

En última instancia, la diferenciación no es útil. Es mejor simplemente hablar de funcionalidad.

Para reiterar lo que ya se indicó en su pregunta, las aplicaciones web casi siempre son también sitios web, cualquier cosa con páginas en la web es un sitio web †.

Para comprender un poco más la diferenciación de las aplicaciones web, primero debemos comenzar nuestro viaje con un sitio web. Un sitio web simple son páginas que solo ocasionalmente cambian. Estas páginas pueden ser estáticas (servidas desde archivos) o dinámicas (generadas del lado del servidor, y algunas veces ahora del lado del cliente), por ejemplo, para aplicar una plantilla o incluir elementos comunes. Un sitio un poco más avanzado podría tener algo así como un formulario para recopilar direcciones de correo electrónico, pero sigue siendo un sitio web, solo que ahora tiene scripts (procesos del lado del servidor) que hacen cosas como recopilar y almacenar direcciones de correo electrónico.

Esto puede ser más complicado, como cuando se proporciona autenticación para acceder a algunas páginas y no a otras. A menudo, dicha funcionalidad se incluirá como parte de algo como un Sistema de gestión de contenido (CMS), al que podemos referirnos como una aplicación , ya que al igual que en el escritorio, se proporciona como un software discreto que hace algo específico … excepto que puede conectarlo arriba selectivamente en su sitio web.

Aquí es donde las opiniones pueden diferir. Si está utilizando una aplicación estándar para crear un sitio web, sigue siendo solo un sitio web, incluso si está utilizando varias de esas aplicaciones. Sin embargo, el software discreto es una aplicación web, por ejemplo, el popular CMS de WordPress, una vez instalado y configurado para su sitio web, es una aplicación que se ejecuta en su sitio web y, por lo tanto, técnicamente es una aplicación web. Pero debido a que es parte de su sitio web y, con suerte, la diferencia para un visitante no está clara, no hace que su sitio web sea una aplicación web, su sitio web solo está utilizando una aplicación web .

En un uso más amplio, un sitio web que sea en sí mismo una aplicación web debería tener una funcionalidad única proporcionada en la web que sea más que simplemente paginación de ida y vuelta entre las vistas (la funcionalidad predeterminada de la web). A medida que la tecnología crece y se expande y las funciones se vuelven estándar (incluso por defecto), lo que define algo como “funcionalidad única” se adapta al nuevo estándar.

Érase una vez que la capacidad de comentar en un sitio hubiera hecho que ese sitio fuera único (por ejemplo, un foro), pero esto ahora es común, por lo que no los llamamos aplicaciones, incluso si lo son. Entonces, la definición actual orientada al consumidor acomodaría algo como Gmail o draw.io como webapps (¿no llamas a Gmail un sitio web, verdad?).

Por lo tanto, mi definición de consumidor es: una aplicación web ofrece una funcionalidad intencional que generalmente no se encuentra de la misma manera en otros sitios .

Para una definición de desarrollo , si hay más de unas pocas vistas o procesos a medida (no de otra aplicación) que necesitan comunicarse con cualquier otra cosa (una base de datos, otra vista, usuario o proceso), podría describirse como una aplicación web porque es cada vez más generado dinámicamente y ‘conectado’ en la naturaleza.

† Para ser pedante, incluso un servidor / sitio FTP con una vista accesible desde la web, sería un sitio web ya que sus contenidos se representan como una colección de páginas web. Por el contrario, se podría llamar razonablemente a un servidor web que aloja una aplicación de dibujo que se ejecuta en su navegador y no tiene páginas ‘tradicionales’, una aplicación web pero no un sitio web, ya que no hay paginación hacia atrás / adelante entre vistas (aunque puede ser emulada).

Parte si es cuando puedes hacer cosas con él, excepto para ver. El sitio web de Facebook es una aplicación web. Aunque puede simplemente navegar por el contenido, también puede crear contenido, interactuar con el contenido (como, compartir), modificar su perfil, etc. Aunque lo que ve es un sitio web típico ya que muchos sitios web son complejos en estos días, sabe que hay muchos cosas sucediendo detrás de escena. Otro ejemplo conocido es la parte del navegador del producto Google Drive, Dropbox, etc.

Aparte de eso, hay un punto donde la diferenciación se vuelve confusa. Por ejemplo, desde mi punto de vista, incluso algo así como un sitio web de noticias donde puedes comentar noticias es una aplicación web, aunque la funcionalidad es limitada y / o es proporcionada por un marco. Cuento los sitios web de WordPress como aplicaciones web, aunque de una manera muy ligera, ya que tienen un estado (mantenido por la base de datos), su contenido no es estático, puede interactuar con él y puede extenderse extendiendo WordPress con complementos o personalizados código. El punto principal es que si puede interactuar con éxito con un sitio web de una manera que lo cambie, y no solo para su visualización, puede considerarse una aplicación web.

Cuando la página obtiene y muestra información que es específica para usted (a menudo lo obliga a iniciar sesión porque se requiere autenticación), y puede actuar sobre esa información para crear algo nuevo, como contenido o solicitudes (comprar acciones, crear publicaciones de blog o otras entradas de medios, guarde fotos editadas, genere informes personalizados desde un tablero, etc.

No se trata de tecnología, se trata de una mayor complejidad de los viajes de los usuarios (en una página web el usuario es un consumidor de contenido, pero para una aplicación web, el usuario también es un creador ) y un alto nivel de personalización .

Una analogía fácil sería comparar un archivo exe / bin / apk con un archivo txt / doc / pdf.

En una aplicación puedes interactuar con el usuario.

En un documento solo puede leerlo o (a veces) editarlo.

Lo mismo con las aplicaciones web frente a los sitios web, una aplicación tiene interacción y servicios, los sitios web no, solo están allí para leer contenido y solo proporcionar contenido.

Entonces, en términos cortos, un sitio web termina siendo una aplicación cuando necesitas interacción con alguien.

Cuando es más que informativo y tiene algún tipo de funcionalidad, lo consideraría una aplicación web. Si extrae datos de una API, los muestra en un gráfico, o algo por el estilo.

Pero, para contradecir lo que acabo de decir, incluso los sitios web informativos pueden ser aplicaciones dependiendo de cómo se hagan.

More Interesting

Si tomas un trabajo de desarrollador front-end, ¿puedes obtener un puesto completo de Rails o JavaScript algún día, o te encasillaría para hacer principalmente front-end a menos que hicieras un estudio sustancial?

¿Qué marco de desarrollo de aplicaciones web prefiere para Node.js?

¿Cuáles son las diferencias clave entre jQuery y AngularJS?

¿La descarga y la ejecución de aplicaciones reemplazarán el uso de un navegador web?

Cómo automatizar el proceso de construcción de una aplicación web completa

¿Cuál es un buen marco para crear aplicaciones web móviles?

¿Qué se entiende por un servicio web asíncrono?

¿Cuál es la práctica estándar para que un servidor notifique a un equilibrador de carga que no está disponible?

¿Podemos implementar una aplicación web existente en AWS Lambda?

Si quiero crear una aplicación web escalable en 2017 (un sitio web de redes sociales) y el rendimiento es crítico, ¿debería elegir JavaEE o Spring o Node.js?

Quiero construir una aplicación web. ¿Es mejor aprender primero sobre las tecnologías de back-end o front-end?

¿Qué tan avanzadas pueden ser las notificaciones push con aplicaciones web progresivas?

¿Cuándo debo usar la Aplicación de página única (SPA) y cuándo debo usar la Aplicación de página múltiple (MPA)?

¿Cuáles son los pros y los contras de permitir que los usuarios elijan entre una selección de diseños predeterminados?

¿Cuáles son las cosas que debo considerar para desarrollar aplicaciones web de ALTA VELOCIDAD (en cualquier idioma)?