Powiedziałbym, że Silverlight pasuje znacznie lepiej do strony ASP.NET modelu. Masz serwer, który obsługuje stronę internetową. Obiekt (aplikacja Silverlight) na stronie pinguje usługę danych, aby pobrać dane i wyświetlić je.
Wszystkie dostęp do danych odbywa się po stronie serwera i nie ma znaczenia, czy dane są używane do tworzenia stron ASP.NET na serwerze, czy wysyłane na surowo do RIA w celu wyświetlenia. Rejestruję wszelkie błędy w usłudze danych po stronie serwera (dziennik zdarzeń działa poprawnie) i nie zezwalam na żaden wyjątek przekazywany do WCF. Gdy klient nie odbiera oczekiwanych danych (pobiera kolekcję zerową lub coś podobnego), wyświetla użytkownikowi ogólny błąd dostępu do danych. Być może będziemy musieli rozszerzyć to wkrótce, aby przekazać nieco więcej informacji (rozróżnienie między odmową dostępu/brakującą awarią bazy danych/infrastruktury/błędu wewnętrznego/itp.), Ale nie planujemy przekazywania klientom komunikatów o błędach wyjątku.
Co do strony klienta, czasami możemy dostać się do sytuacji, w której asynchroniczne wywołanie przekracza limit czasu - jest to po prostu kolejna wiadomość. W przypadku ogólnych wyjątków od kodu klienta (zazwyczaj błędy w naszym kodzie), po prostu przekazuję wyjątek do przeglądarki, aby wyświetlał się w ten sam sposób jak każdy wyjątek skryptu.
Ostateczna wersja została wydana w zeszłym tygodniu. Wszystkie składniki są dostępne za pośrednictwem NuGet. Oto zapowiedź: http://bit.ly/jDscwl –
Ponadto zobacz najnowszy screencast Channel9 demonstrujący użycie bloku aplikacji do obsługi wyjątków dla Silverlight: https://channel9.msdn.com/posts/Enterprise-Library- for-Silverlight-Exception-handling-demo –