QUESTION : J’ai un problème avec le comportement asynchrone dans Silverlight.
Utiliser un modèle synchrone dans Silverlight
Toutes mes applications WinForm sont écrites pour le mode synchrone, mon modèle conceptuel (modèle logique) est à base de composants et mon MVP (Model View Presenter) utilise DTO (data transfer object), qui est généré par les composants associés (modèle logique).
Avec l’aide de Windows Communication Foundation (WCF), je pensais qu’il serait très facile de forcer mes composants à se comporter comme un service Web, juste en ajoutant certains attributs. Mais le nouveau modèle de programmation proposé par Silverlight est en mode asynchrone. Existe-t-il un moyen d’utiliser un modèle synchrone dans Silverlight ?
R : Les communications sont synchrones lorsque vous appelez une fonction (une méthode qui retourne une valeur) et que vous obtenez un résultat. Avec des communications asynchrones, vous appelez une sous-routine (une méthode qui ne retourne pas de valeur) et vous passez un délégué callback ou vous effectuez un ancrage sur un événement. Le résultat apparaît dans l’argument de l’événement ou dans les paramètres de la méthode callback. Silverlight vous impose d’utiliser les communications asynchrones pour l’accès à un service. Cela vous évite de bloquer votre application pendant une opération potentiellement longue.
La réponse courte à votre question est « non ». Vous ne pouvez pas utiliser les communications synchrones à partir de Silverlight et vous ne souhaitez probablement pas le faire. Silverlight imite un navigateur et ce type de logiciel est asynchrone. Même si votre application Silverlight sort du cadre du navigateur, elle attend des communications via une connexion du type Internet.
Tandis que les communications côté Silverlight sont asynchrones, une fois que vous arrivez sur le serveur, les autres communications sont généralement synchrones. De nombreux services sont des appels de fonctions et ont un comportement intrinsèque synchrone, même s’ils interagissent avec WCF, lequel répond au client Silverlight de manière asynchrone.
Un pipeline asynchrone peut devenir synchrone, mais l’inverse n’est pas vrai. Tous les pipelines qui retournent une valeur sont au final synchrones, car quelque chose retourne une valeur. Pour préserver l’isolation, chaque étape du pipeline asynchrone communique uniquement avec son voisin et, ainsi, chaque étape du pipeline a sa propre méthode callback ou son événement.
Cette information est pertinente pour votre question, car Silverlight ne force pas des parties significatives de votre application à passer en mode asynchrone. Le code serveur et client non lié aux communications peut rester inchangé. Pour de nombreuses applications, le passage aux communications synchrones constitue un défi, car les mêmes classes effectuent les activités liées aux communications et les autres activités.
La séparation de ces aspects constitue probablement une partie de la solution. Cela vous permet en outre de réutiliser le code sur Silverlight et sur votre serveur en sélectionnant « Add Existing Item », en accédant à l’élément, puis en sélectionnant « Add as Link » dans la liste déroulante du bouton « Add ».
Comment ajouter un service WCF ? · iTPro.fr
Faire évoluer les applications · iTPro.fr
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Afficher les icônes cachées dans la barre de notification
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Chiffrements symétrique vs asymétrique
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- Réforme de la facturation électronique : une préparation largement théorique
- Le futur de la cryptographie post-quantique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Articles les + lus
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
À la une de la chaîne Tech
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
