2009-02-23 45 views
12

Trong ASP.NET, tôi thường đăng nhập ngoại lệ ở phía máy chủ, Trong các hình thức cửa sổ tôi có thể đăng nhập ngoại lệ phía máy chủ hoặc ghi vào một tập tin đăng nhập trên máy khách. Silverlight dường như phù hợp với một nơi nào đó ở giữa.Thực tiễn tốt nhất cho xử lý ngoại lệ trong Silverlight là gì?

Tôi muốn biết mọi người khác đang làm gì để xử lý ngoại lệ Silverlight của họ và tôi đã tò mò nếu có bất kỳ phương pháp hay nhất nào xuất hiện cho điều này.

Trả lời

5

Để ghi nhật ký thực sự bạn có thể lưu trữ theo dõi &, bạn sẽ cần thực hiện trên máy chủ vì bạn không thể đảm bảo bất kỳ điều gì trên máy khách sẽ được duy trì.

tôi sẽ đề nghị lộ một "LogEvent (..)" phương pháp trên một dịch vụ web phía máy chủ (có thể bạn đã có một) mà sau đó sẽ làm cùng một loại đăng nhập bạn làm trong ASP.net

Dưới đây là video về các cuộc gọi dịch vụ web cơ bản trong Silverlight nếu bạn chưa thực hiện điều đó, tuy nhiên, http://silverlight.net/learn/learnvideo.aspx?video=66723

Tôi không chắc chắn về bất kỳ thực tiễn tốt nhất ghi nhật ký nào, phỏng đoán đầu tiên của tôi là thực hành tốt nhất để đăng nhập web sevice trên máy chủ và hiển thị nó cho khách hàng.

Hy vọng điều này sẽ hữu ích!

4

Tôi có thể nói rằng Silverlight phù hợp hơn nhiều với phía ASP.NET của mô hình. Bạn có máy chủ phục vụ trang web. Một đối tượng (ứng dụng Silverlight) trên trang ping dịch vụ dữ liệu để tìm nạp dữ liệu và hiển thị nó.

Tất cả truy cập dữ liệu xảy ra ở phía máy chủ và không quan trọng nếu dữ liệu được sử dụng để tạo trang ASP.NET trên máy chủ hoặc được gửi thô tới RIA để hiển thị. Tôi đăng nhập bất kỳ thất bại trong dịch vụ dữ liệu trên phía máy chủ (sự kiện đăng nhập hoạt động tốt) và không cho phép bất kỳ ngoại lệ để vượt qua để WCF. Khi khách hàng không nhận được dữ liệu dự kiến ​​(nó sẽ thu thập null hoặc một cái gì đó tương tự), nó hiển thị lỗi truy cập dữ liệu chung cho người dùng. Chúng tôi có thể cần phải mở rộng sớm để vượt qua một chút thông tin (phân biệt giữa truy cập bị từ chối/thiếu cơ sở dữ liệu/cơ sở hạ tầng thất bại/lỗi nội bộ/etc), nhưng chúng tôi không có kế hoạch truyền thông báo lỗi ngoại lệ cho khách hàng.

Đối với phía khách hàng, đôi khi chúng tôi có thể gặp phải trong trường hợp thời gian gọi không đồng bộ - đó chỉ là một thông báo khác. Đối với trường hợp ngoại lệ chung từ mã máy khách (thông thường, các lỗi trong mã của chúng tôi), tôi chỉ chuyển ngoại lệ cho trình duyệt để hiển thị theo cách tương tự như bất kỳ ngoại lệ nào của tập lệnh.

4

Sử dụng Isolated Storage available for Silverlight application. Bạn nên lưu trữ ở đây nhật ký của bạn.

Sau đó, bạn có thể phát triển mecanism để gửi nhật ký người dùng tới dịch vụ web như dịch vụ báo cáo lỗi Windows.

0

Nó phụ thuộc rất nhiều vào loại ứng dụng mà bạn đang phát triển.

nếu kiến ​​trúc dựa trên mvc/mvp của nó thì mô hình của bạn hoặc ít nhất là trên máy chủ và đây là nơi mà hầu hết các ngoại lệ của bạn sẽ được ném, tôi sẽ tưởng tượng, để bạn có thể đăng nhập và chọn hiển thị tin nhắn cho người dùng hay không.

cho trường hợp ngoại lệ từ khách hàng mà bạn có thể muốn biết chi tiết để chỉ gửi lại cho họ.

4

Ngoài ra, hãy xem Silverlight Integration Pack for Enterprise Library mới từ Microsoft patterns & practices. Nó cung cấp hỗ trợ cho việc ghi nhật ký ngoại lệ cho các lưu trữ riêng biệt hoặc các dịch vụ từ xa và được cấu hình thông qua các chính sách trong cấu hình bên ngoài hoặc lập trình.Ghi nhật ký hàng loạt và thử lại tự động (trong trường hợp các kịch bản đôi khi được kết nối) cũng được hỗ trợ.

+0

Phiên bản cuối cùng được phát hành tuần trước. Tất cả các thành phần có sẵn thông qua NuGet. Dưới đây là thông báo: http://bit.ly/jDscwl –

+0

Ngoài ra, hãy xem màn hình Channel9 gần đây thể hiện việc sử dụng Khối ứng dụng xử lý ngoại lệ cho Silverlight: https://channel9.msdn.com/posts/Enterprise-Library- for-Silverlight-Exception-handling-demo –

Các vấn đề liên quan