Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

RSS et .Net

4 réponses
Avatar
Oriane
Bonjour,

je dois réaliser une appli Web qui permet de contrôler l'éclairage de son
bureau. Un serveur déjà écrit communique avec la lampe d'un quidam, et est
capable de remonter l'info ON/OFF sur cette lampe, et de basculer de ON à
OFF ert réciproquement.

Ma page Web aura donc un contrôle de genre bascule qiu sera mis à jour
régulièrement par le serveur, et qui permettre à l'utilisateur d'agir sur sa
lampe.

Pour la première partie, je pensais (mais pour moi c'est encore assez
obscur) utiliser RSS pour que le serveur Web mette à jour la page. Ou alors,
utiliser un composant timer dans la page Web ?

Vos avis m'intéresse !

Oriane

4 réponses

Avatar
Laurent Bugnion, MVP
Salut,

Oriane wrote:
Bonjour,

je dois réaliser une appli Web qui permet de contrôler l'éclairage de
son bureau. Un serveur déjà écrit communique avec la lampe d'un quidam,
et est capable de remonter l'info ON/OFF sur cette lampe, et de basculer
de ON à OFF ert réciproquement.

Ma page Web aura donc un contrôle de genre bascule qiu sera mis à jour
régulièrement par le serveur, et qui permettre à l'utilisateur d'agir
sur sa lampe.

Pour la première partie, je pensais (mais pour moi c'est encore assez
obscur) utiliser RSS pour que le serveur Web mette à jour la page. Ou
alors, utiliser un composant timer dans la page Web ?

Vos avis m'intéresse !

Oriane



C'est un projet privé? Dans le domaine de l'automation de bâtiments, il
y a des applications web pas mal poussées (j'ai participé au
développement d'un tel produit ces années passées).

Cela dit, même avec RSS, le server web est incapable de mettre à jour
une page sur un browser. C'est en contradiction avec le principe même de
HTTP, qui est un protocole basé sur Request/Response.

Dans ton cas, si tu ne veux pas travailler avec un applet Java (ce que
je déconseille de toute manière), le meilleur moyen c'est d'implémenter
un timer en JavaScript (utiliser setTimeout pour cela) pour mettre à
jour la page de manière régulière. Pour plus de confort pour
l'utilisateur, ne pas rafraichir la page si ca n'est pas nécessaire, on
utilise AJAX pour communique avec le server web. Sur le server, tu crées
un service tout simple qui renvoie l'état de la lampe. Voir un example
d'un tel service super simple ici:
http://geekswithblogs.net/lbugnion/archive/2006/10/06/93357.aspx

Sur le client, utiliser XmlHttpRequest pour solliciter le service de
manière régulière. Si tu veux je peux t'aider (je veux de toute manière
écrire la deuxième partie de l'article ci-dessus, à savoir le client,
mais WPF me prend tout mon temps en ce moment).

HTH,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering, Blog: http://www.galasoft.ch
PhotoAlbum: http://www.galasoft.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Avatar
Oriane
Bonjour Laurent,

"Laurent Bugnion, MVP" a écrit dans le message de
news:%
Salut,


C'est un projet privé? Dans le domaine de l'automation de bâtiments, il y
a des applications web pas mal poussées (j'ai participé au développement
d'un tel produit ces années passées).


Non c'est pour ma société. Mais c'est bien un projet dans le domaine de
l'automation de bâtiments... Sur quel produit as-tu travaillé si ce n'est
pas indiscret ?

Cela dit, même avec RSS, le server web est incapable de mettre à jour une
page sur un browser. C'est en contradiction avec le principe même de HTTP,
qui est un protocole basé sur Request/Response.


Oui je suis vraiment "débutant" en RSS...

Dans ton cas, si tu ne veux pas travailler avec un applet Java (ce que je
déconseille de toute manière), le meilleur moyen c'est d'implémenter un
timer en JavaScript (utiliser setTimeout pour cela) pour mettre à jour la
page de manière régulière.


J'ai reçu une réponse, sur un NG américain, qui me suggère de mettre un
méta-tag
What you *can* do is add this line to the <head> section of your page:
<meta http-equiv="refresh" content="5">





Pour plus de confort pour l'utilisateur, ne pas rafraichir la page si ca
n'est pas nécessaire, on utilise AJAX pour communique avec le server web.
Sur le server, tu crées un service tout simple qui renvoie l'état de la
lampe. Voir un example d'un tel service super simple ici:
http://geekswithblogs.net/lbugnion/archive/2006/10/06/93357.aspx


Oui c'est justement une contrainte que l'on a: ne pas rafraichir l'état
d'une lampe si celui-ci ne change pas, ce qui veut dire en gros ne pas
regénérer tout le HTML de la page. J'ai téléchargé l'extension Atlas hier
soir, avec un exemple de code. Mais je n'arrive pas à le faire marcher. Il y
a entre autres des erreurs signalés sur le fichier web.config par mon IIS
(je suis sur Vista, et d''ailleurs je ne sais pas quelle version d'IIS c'est
!).

Sur le client, utiliser XmlHttpRequest pour solliciter le service de
manière régulière. Si tu veux je peux t'aider (je veux de toute manière
écrire la deuxième partie de l'article ci-dessus, à savoir le client, mais
WPF me prend tout mon temps en ce moment).


Ah ben absolument !! Je connais ASP.Net 2.0 surtout théoriquementn, et j'ai
un peu de mal à mettre le pied à l'étrier. En plus comme je dois plus ou
moins utiliser Atlas, ca complique les choses. Il y a aussi quelque chose
que je souhaite mettre en place (peu être dans un second temps !), c'est de
constuirte des Web Parts intégrable dans SharePoint.


HTH,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering, Blog: http://www.galasoft.ch
PhotoAlbum: http://www.galasoft.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch


Avatar
Laurent Bugnion, MVP
Salut,

Oriane wrote:
Bonjour Laurent,

C'est un projet privé? Dans le domaine de l'automation de bâtiments,
il y a des applications web pas mal poussées (j'ai participé au
développement d'un tel produit ces années passées).


Non c'est pour ma société. Mais c'est bien un projet dans le domaine de
l'automation de bâtiments... Sur quel produit as-tu travaillé si ce
n'est pas indiscret ?



Je bosse pour Siemens Building Automation, notre "management station"
s'appelle DESIGO INSIGHT, et j'ai coordonné le développement de la
partie web de ce produit.


Cela dit, même avec RSS, le server web est incapable de mettre à jour
une page sur un browser. C'est en contradiction avec le principe même
de HTTP, qui est un protocole basé sur Request/Response.


Oui je suis vraiment "débutant" en RSS...



Pas de soucis. RSS est adapté si tu as plusieurs clients que tu veux
rafraichir, comme par exemple les clients RSS (justement) pour les
blogs. Pour ce que tu veux faire, je ne pense pas que c'est nécessaire.

J'ai reçu une réponse, sur un NG américain, qui me suggère de mettre un
méta-tag
What you *can* do is add this line to the <head> section of your page:
<meta http-equiv="refresh" content="5">







Ca, c'est la pire chose que tu puisses faire. D'abord les META tags ne
marchent pas sur tous les browsers (mais bon, AJAX non plus), mais
surtout cela va rafraichir toute ta page toutes les 5 secondes, ce que
tu veux justement éviter. Pas une bonne idée donc.


Oui c'est justement une contrainte que l'on a: ne pas rafraichir l'état
d'une lampe si celui-ci ne change pas, ce qui veut dire en gros ne pas
regénérer tout le HTML de la page. J'ai téléchargé l'extension Atlas
hier soir, avec un exemple de code. Mais je n'arrive pas à le faire
marcher. Il y a entre autres des erreurs signalés sur le fichier
web.config par mon IIS (je suis sur Vista, et d''ailleurs je ne sais pas
quelle version d'IIS c'est !).



L'extension "Atlas" (c'était un nom de code qui n'est plus utilisé
maintenant, mais au moins on sait de quoi on parle ;-) est assez
compliquée à mettre en oeuvre surtout au début. Pour ton exemple, ca
n'est pas forcément obligatoire, parce que le client est assez simple.


Sur le client, utiliser XmlHttpRequest pour solliciter le service de
manière régulière. Si tu veux je peux t'aider (je veux de toute
manière écrire la deuxième partie de l'article ci-dessus, à savoir le
client, mais WPF me prend tout mon temps en ce moment).


Ah ben absolument !! Je connais ASP.Net 2.0 surtout théoriquementn, et
j'ai un peu de mal à mettre le pied à l'étrier. En plus comme je dois
plus ou moins utiliser Atlas, ca complique les choses.



C'est une contrainte du projet?Il ne faut pas confondre Atlas et AJAX.
Atlas est l'implémentation par Microsoft de AJAX pour ASP.NET, mais on
peut faire du AJAX sans Atlas.


Il y a aussi
quelque chose que je souhaite mettre en place (peu être dans un second
temps !), c'est de constuirte des Web Parts intégrable dans SharePoint.



Je vais essayer de faire un exemple simple de client JavaScript pour un
service XML, et le publier. Si seulement les jours avaient 36 heures...

Amitiés,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering, Blog: http://www.galasoft.ch
PhotoAlbum: http://www.galasoft.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Avatar
Oriane
"Laurent Bugnion, MVP" a écrit dans le message de
news:
Salut,

Oriane wrote:
Ah ben absolument !! Je connais ASP.Net 2.0 surtout théoriquementn, et
j'ai un peu de mal à mettre le pied à l'étrier. En plus comme je dois
plus ou moins utiliser Atlas, ca complique les choses.



C'est une contrainte du projet?Il ne faut pas confondre Atlas et AJAX.
Atlas est l'implémentation par Microsoft de AJAX pour ASP.NET, mais on
peut faire du AJAX sans Atlas.


La seule contrainte que j'ai est de rafraichir à la demande certains elts de
la page, mais pas tous en même temps.

Il y a aussi quelque chose que je souhaite mettre en place (peu être dans
un second temps !), c'est de constuirte des Web Parts intégrable dans
SharePoint.



Je vais essayer de faire un exemple simple de client JavaScript pour un
service XML, et le publier. Si seulement les jours avaient 36 heures...


Ben en fait j'ai pris la doc Atlas, et l'article de MSDN de janvier 2007 sur
l'appel de Web sServices, et je pense que dans peu de temps je vais avoir à
peu près ce que je souhaite. Mais continue quand même !!

Bye