Je dirais que Silverlight s'intègre beaucoup mieux à la partie côté ASP.NET du modèle. Vous avez un serveur qui sert la page web. Un objet (application Silverlight) sur la page envoie une requête au service de données pour récupérer les données et les afficher.
Tout l'accès aux données se fait côté serveur et peu importe si les données sont utilisées pour créer des pages ASP.NET sur le serveur ou envoyées brutes au RIA pour affichage. Je consigne toutes les défaillances du service de données côté serveur (le journal des événements fonctionne bien) et n'autorise aucune exception à passer à WCF. Lorsque le client ne reçoit pas les données attendues (il reçoit une collection nulle ou quelque chose de similaire), il affiche un message d'erreur générique d'accès aux données à l'utilisateur. Nous devrons peut-être bientôt étendre cela pour transmettre un peu plus d'informations (faire la distinction entre l'accès refusé/base de données manquante/défaillance de l'infrastructure/erreur interne, etc.), mais nous n'avons pas prévu de transmettre les messages d'erreur d'exception au client.
Quant au côté client, parfois nous pouvons nous retrouver dans une situation où l'appel asynchrone prend trop de temps -- c'est simplement un autre message. Pour les exceptions générales du code client (généralement, des bugs dans notre code), je transmets simplement l'exception au navigateur pour l'afficher de la même manière que toute exception de script.