2009-02-23 13 views
12

W środowisku ASP.NET zazwyczaj rejestruję wyjątki po stronie serwera. W formularzach systemu Windows można rejestrować wyjątki po stronie serwera lub zapisywać do pliku dziennika na kliencie. Silverlight wydaje się pasować gdzieś pomiędzy.Jaka jest najlepsza praktyka w obsłudze wyjątków w silverlight?

Chciałem wiedzieć, co wszyscy robią, aby poradzić sobie z wyjątkami Silverlight i byłem ciekawy, czy pojawiły się jakieś najlepsze praktyki.

Odpowiedz

5

Dla prawdziwego logowania, które można przechowywać na ścieżce &, trzeba to zrobić na serwerze, ponieważ nie można zagwarantować, że nic na kliencie będzie się utrzymywać.

proponuję wystawienie „LogEvent (..)” metoda na serwis WWW po stronie serwera (może już masz jeden), które następnie zrobić tego samego rodzaju zalogowaniu zrobić w ASP.net

Oto film wideo na temat podstawowych wywołań usług internetowych w Silverlight, jeśli jeszcze tego nie zrobiłeś http://silverlight.net/learn/learnvideo.aspx?video=66723

Nie mam pewności co do najlepszych praktyk w zakresie rejestrowania, ale moim pierwszym założeniem byłaby najlepsza metoda logowania do sieci. sevice na serwerze i narazić to klientowi.

Mam nadzieję, że to pomoże!

4

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.

0

To bardzo zależy od rodzaju aplikacji, którą tworzysz.

jeśli jest to architektura oparta na mvc/mvp, to twój model, lub przynajmniej większość, będzie na serwerze, i to tutaj wyskakuje większość twoich wyjątków, które możesz sobie wyobrazić, abyś mógł je tam zarejestrować i wybrać wyświetlanie wiadomości użytkownikowi lub nie.

w przypadku wyjątków od klienta możesz poznać szczegóły, więc po prostu je odeślij.

4

Zobacz także nowy Silverlight Integration Pack for Enterprise Library z Microsoft patterns & practices. Zapewnia obsługę wyjątków rejestrowania do izolowanych usług pamięci masowej lub usług zdalnych i jest konfigurowalna za pomocą zasad w zewnętrznej konfiguracji lub programowo.Rejestrowane są również rejestrowanie partii i automatyczne ponawianie próby (w przypadku przypadkowo połączonych scenariuszy).

+0

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 –

+0

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 –

Powiązane problemy