2010-03-06 8 views
2

la question est ....WebServices SYNCRHONES ET Dialogues modaux!

L'application peut-être dans Silverligth.

Il est possible d'implémenter l'appel SYNChonous WebService?

J'essaie de réaliser n'importe quelle application RIA, avec Grids, Edits et en utilisant WebServices dans SL, mais je ne comprends pas comment rendre cela possible sans un appel SYNC.

Et j'ai aussi besoin d'utiliser MODAL DIALOGS pour certaines tâches.

J'ai étudié le travail de Daniel Vaughan qui parvient à exécuter des appels de service Web de manière synchrone, au sein d'un ThreadPool, mais comment puis-je faire cette interface graphique, attendre les appels aux services Web?

Daniel Vaughan Web: http://danielvaughan.orpius.com/post/Synchronous-Web-Service-Calls-with-Silverlight-2.aspx

La combinaison de ces choses de base pour d'autres langues, à mon humble avis est possible de construire véritable application.

suggestions Entendre ...

Cheva.

Répondre

1

Il est préférable d'analyser l'objectif réel qui, puisque vous voulez le faire dans l'interface graphique, est d'empêcher l'activité de l'utilisateur jusqu'à ce que des ressources appropriées aient été récupérées ou traitées. Une façon d'atteindre cet objectif serait d'avoir un appel synchrone mais le verrouillerait simplement l'interface utilisateur d'une manière hostile pour l'utilisateur. Ce que nous voulons vraiment, c'est verrouiller l'interface utilisateur mais de manière informative. En fait, nous voulons que le fil de l'interface utilisateur libre affiche un tel "Veuillez patienter, je suis occupé à traiter votre demande" de préférence d'une manière UI riche (animation ou progrès en cours).

Pour cela, vous pouvez utiliser le contrôle BusyIndicator (à l'intérieur duquel vous placez tout ou partie de votre interface utilisateur actuelle). Vous trouverez le BusyIndicator dans la boîte à outils Silverligt. Si vous utilisez VS2010 et Silverlight 4, un contrôle similaire fait maintenant partie du SDK Ria Services et peut s'appeler Activity. Maintenant, lorsque vous voulez faire quelque chose de «synchrone», vous définissez la propriété BusyIndicator.IsBusy sur true (dans SL4, vous définissez Activity.IsActive sur true). Ensuite, effectuez une requête asynchrone, à la fin de la requête, définissez la propriété sur false.

0

Pour le meilleur ou pour le pire, Silverlight ne prend pas en charge les appels synchrones aux services Web. Votre meilleur pari est d'aller avec quelque chose de similaire à ce que Anthony a proposé afin d'obtenir le résultat final souhaité dans votre interface utilisateur sans réellement verrouiller le fil de l'interface utilisateur.