6
votes

Repose-t-il un bon choix pour les applications Web GUI?

Les applications Web basées sur l'interface graphique pourraient être construites sur un composant d'interface graphique, un cadre d'état indiquant comme guichet ou ils pourraient s'appuyer sur une manière reposante et apatride avec l'état de l'interface graphique uniquement sur le client.

à partir d'un point de vue technique, le repos ressemble à la bonne façon, car il exploite la pleine puissance de HTTP et conduit à des applications hautement évolutives. Mais cela vient à un prix. Les GIIS complexes nécessiteront une application JavaScript sur le client dans de nombreux cas. Vous devez rester sur la même page et recharger uniquement des pièces, si l'état doit être maintenu sur le client. Ou vous devez utiliser des tours avec des iframes cachés. Parfois, il y a de Pseudo Resource comme des paniers d'achat sur le serveur pour permettre une conception reposante. Vous devez conserver l'état intermédiaire de dialogues multi-étapes et ainsi de suite ...

Si je regarde autour de lui, il y a très peu de webapplications de GUI reposant. Est-ce à cause des raisons historiques ou est une conception ré-improductive dans des scénarios communs?


4 commentaires

Quelle est votre définition d'une "application Web GUI"? Yahoo.com? Stackoverflow? Google Maps? eyeos.org?


Ou pour transformer le commentaire de @ Decez autour de: quand n'est-ce pas une interface graphique?


GUI est une application d'interaction directe avec les humains, alors qu'un service est un côté d'une machine à la communication de la machine.


Alors ... une page Web alors? Compte-t-il si c'est [principalement] statique, ou doit-il "faire quelque chose"?


3 Réponses :


1
votes

Designs d'interface graphique reposant sont très productifs, IMHO. Vous pouvez tirer parti de beaucoup de fonctionnalités sans travailler supplémentaire pour prendre en charge les cas d'angle, tels que l'utilisateur à nouveau à la suite d'informations, historique du navigateur (retour et transfert) Plusieurs onglets et fenêtres. Si je ne me trompe pas, ce site utilise une interface utilisateur reposante.


0 commentaires


9
votes

Si je regarde autour de moi, il y a très peu WebApplications de GUI reposant. Est-ce à cause des raisons historiques ou est une Design reposant improductif en commun scénarios?

Ma réponse est subjective, mais à mon avis, deux obstacles majeurs entravent le développement reposant:

  1. Changer - il est très différent de la manière dont les sites sont traditionnellement conçus
  2. Challenge - Conception d'une API de serveur de solide pur et d'un client riche et robuste correspondant, n'est pas facile

    Guis complexes nécessitera un JavaScript application sur le client dans beaucoup cas.

    À mon avis, une expérience complexe, une riche expérience client exigera un JavaScript approfondi, quelle que soit la mise en œuvre côté serveur.

    Vous devez rester sur la même page et Recharger uniquement des pièces,

    Ceci est un design très différent de la conception traditionnelle de la demande / réponse à la page à pages à pages à la page. Chaque conception a son propre commerce. Les conceptions de repos travaillent particulièrement bien avec les appels AJAX, mais le code côté client nécessite une conception prudente à maintenir et robuste.

    Un serveur reposant avec un client épais:

    • Balance BIFFRES: Les informations de session pour chaque utilisateur ne sont pas stockées dans la mémoire Server Server
    • Moins de données de requête / réponse sur le fil: ne pas envoyer à chaque page en totalité, ne pas envoyer d'ID de session ou Viewstate S
    • URL propres réutilisables: Fournissez une API de serveur propre et découplée pouvant prendre en charge plusieurs UIS
    • pure: une adhésion stricte à la spécification HTTP (ne provoque aucun effet secondaire, etc.)
    • Expérience client: RICHER, plus réactif avec les transactions asynchrones

      Cependant, comme vous avez mentionné des clients épais, des inconvénients:

      • plus vulnérable aux attaques XSS, des URL reposantes ont vraiment besoin d'une sécurité minutieuse
      • Le complexe JavaScript peut être difficile de développer, de maintenir et de déboguer (utiliser Oo JavaScript peut aider à la médialiser)
      • Il est nécessaire d'indiquer à l'utilisateur que les demandes asynchrones traitent en arrière-plan
      • plus de logique de manutention de panne côté client est requise
      • Les structures et les outils IDE ont été traditionnellement plus faibles pour le développement côté client, par rapport au serveur (cela s'améliore lentement)

0 commentaires