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. p>
à 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 ... P>
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? P>
3 Réponses :
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. P>
Le repos a été défini en observant la caractéristique des applications Web réussies, GUI et M2M. Par conséquent, par définition, il devrait être approprié pour ces cas. P>
J'ai également remarqué que vous avez également posé une question concernant Desktops par rapport aux applications Web a >. Vous voudrez peut-être savoir que le repos est une excellente architecture pour la construction d'applications client de bureau. J'ai écrit quelques clients de bureau qui obtiennent toutes leurs données d'un serveur de repos. P>
Je peux imaginer que le repos est un bon niveau pour une application de bureau, mais il est facile de gérer l'état dans une telle application. ATTENDU QUE la direction de l'État dans le navigateur n'est pas triviale aujourd'hui. (PS: Je n'ai pas posé la question mentionnée)
Mes excuses, je me suis confus entre vous et dimitre.
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? p> blockQuote>
Ma réponse est subjective, mais à mon avis, deux obstacles majeurs entravent le développement reposant: P>
- Changer - il est très différent de la manière dont les sites sont traditionnellement conçus li>
- Challenge - Conception d'une API de serveur de solide pur et d'un client riche et robuste correspondant, n'est pas facile Li> ol>
Guis complexes nécessitera un JavaScript application sur le client dans beaucoup cas. p> blockQuote>
À 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. P>
Vous devez rester sur la même page et Recharger uniquement des pièces, P> blockQuote>
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. P>
Un serveur reposant avec un client épais: p>
- Balance BIFFRES: Les informations de session pour chaque utilisateur ne sont pas stockées dans la mémoire Server Server LI>
- 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 code> S LI>
- URL propres réutilisables: Fournissez une API de serveur propre et découplée pouvant prendre en charge plusieurs UIS LI>
- pure: une adhésion stricte à la spécification HTTP (ne provoque aucun effet secondaire, etc.) li>
- Expérience client: RICHER, plus réactif avec les transactions asynchrones li> ul>
Cependant, comme vous avez mentionné des clients épais, des inconvénients: P>
- plus vulnérable aux attaques XSS, des URL reposantes ont vraiment besoin d'une sécurité minutieuse li>
- Le complexe JavaScript peut être difficile de développer, de maintenir et de déboguer (utiliser Oo JavaScript peut aider à la médialiser) li>
- Il est nécessaire d'indiquer à l'utilisateur que les demandes asynchrones traitent en arrière-plan li>
- plus de logique de manutention de panne côté client est requise li>
- 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) li> ul>
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"?