2009-02-23 13 views
12

एएसपी.नेट में, मैं आमतौर पर सर्वर-साइड पर अपवाद लॉग करता हूं, विंडोज़ फॉर्म में मैं या तो सर्वर-साइड अपवाद लॉग कर सकता हूं या क्लाइंट पर लॉग फ़ाइल लिख सकता हूं। सिल्वरलाइट कहीं बीच फिट बैठता प्रतीत होता है।चांदी की रोशनी में अपवाद हैंडलिंग के लिए सबसे अच्छा अभ्यास क्या है?

मैं जानना चाहता था कि हर कोई अपने सिल्वरलाइट अपवादों को संभालने के लिए क्या कर रहा है और मैं उत्सुक था कि अभी तक कोई भी सर्वोत्तम प्रथा उभरी है।

उत्तर

5

वास्तविक लॉगिंग के लिए कि आप & ट्रैक स्टोर कर सकते हैं, आपको सर्वर पर ऐसा करने की आवश्यकता होगी, क्योंकि ग्राहक पर कुछ भी गारंटी नहीं दी जा सकती है।

मैं एक "LogEvent (..)" विधि उजागर एक सर्वर साइड वेब सेवा (शायद आपके पास पहले से), जो आपको लॉग इन उसी तरह करते हैं तो हैं पर सुझाव है ASP.net

में क्या

यहाँ सिल्वरलाइट में बुनियादी वेब सेवा कॉल के बारे में एक वीडियो अगर आप ऐसा नहीं किया है कि अभी तक http://silverlight.net/learn/learnvideo.aspx?video=66723

मैं नहीं किसी भी प्रवेश के बारे में निश्चित सर्वोत्तम प्रथाओं हालांकि हूँ, मेरा पहला अनुमान एक वेब में प्रवेश के लिए सबसे अच्छा practicies क्या करना होगा सर्वर पर sevice और ग्राहक को बेनकाब।

आशा है कि इससे मदद मिलती है!

4

मैं कहूंगा कि सिल्वरलाइट मॉडल के एएसपी.नेट पक्ष के लिए बहुत बेहतर फिट बैठता है। आपके पास सर्वर है जो वेब पेज परोसता है। पृष्ठ पर एक ऑब्जेक्ट (सिल्वरलाइट ऐप) डेटा लाने और इसे प्रदर्शित करने के लिए डेटा सेवा पिंग करता है।

सर्वर डेटा पर सभी डेटा एक्सेस होता है और इससे कोई फर्क नहीं पड़ता कि सर्वर पर ASP.NET पृष्ठों को बनाने के लिए डेटा का उपयोग किया जाता है या प्रदर्शन के लिए आरआईए को कच्चा भेजा जाता है। मैं सर्वर पक्ष पर डेटा सेवा में किसी भी विफलता को लॉग करता हूं (इवेंट लॉग ठीक काम करता है) और डब्ल्यूसीएफ को पास करने के लिए किसी भी अपवाद की अनुमति न दें। जब ग्राहक अपेक्षित डेटा प्राप्त नहीं करता है (यह शून्य संग्रह या कुछ समान हो जाता है), तो यह उपयोगकर्ता को सामान्य डेटा पहुंच त्रुटि प्रदर्शित करता है। हमें जल्द ही थोड़ी अधिक जानकारी (पहुंच अस्वीकृत/अनुपलब्ध डेटाबेस/आधारभूत संरचना विफलता/आंतरिक त्रुटि/आदि) के बीच अंतर करने के लिए विस्तार करने की आवश्यकता हो सकती है, लेकिन हम ग्राहक को अपवाद त्रुटि संदेशों को पारित करने की योजना नहीं बनाते हैं।

ग्राहक पक्ष के लिए, कभी-कभी हम ऐसी स्थिति में आ सकते हैं जहां एसिंक कॉल टाइम आउट हो - यह सिर्फ एक और संदेश है। क्लाइंट कोड (आमतौर पर, हमारे कोड में बग) से सामान्य अपवादों के लिए, मैं ब्राउज़र को अपवाद पास करता हूं ताकि किसी भी स्क्रिप्ट अपवाद के रूप में प्रदर्शित किया जा सके।

4

Isolated Storage available for Silverlight application का उपयोग करें। आपको अपना लॉग यहां स्टोर करना चाहिए।

फिर आप उपयोगकर्ता बग रिपोर्ट सेवा जैसे उपयोगकर्ता सेवा को उपयोगकर्ता सेवा भेजने के लिए एक मीनवाद विकसित कर सकते हैं।

0

यह आपके द्वारा विकसित किए जा रहे एप्लिकेशन के प्रकार पर निर्भर करता है।

यदि यह एक एमवीसी/एमवीपी आधारित आर्किटेक्चर है तो आपका मॉडल, या अधिकतर कम से कम, सर्वर पर होगा, और यह वह जगह है जहां आपके अधिकांश अपवाद फेंक दिए जाएंगे, मैं कल्पना करूंगा, ताकि आप उन्हें वहां लॉग कर सकें और उपयोगकर्ता को संदेश प्रदर्शित करना चुनते हैं या नहीं।

क्लाइंट से अपवादों के लिए आप विवरण जानना चाहेंगे ताकि उन्हें वापस भेज दें।

4

Microsoft patterns & practices से नए Silverlight Integration Pack for Enterprise Library पर भी नज़र डालें। यह पृथक भंडारण या दूरस्थ सेवाओं के अपवाद लॉगिंग के लिए समर्थन प्रदान करता है और बाहरी कॉन्फ़िगरेशन या प्रोग्रामेटिक रूप से नीतियों के माध्यम से कॉन्फ़िगर करने योग्य है।बैच लॉगिंग और स्वचालित पुनः प्रयास (कभी-कभी जुड़े परिदृश्यों के मामले में) भी समर्थित हैं।

+0

अंतिम संस्करण पिछले सप्ताह जारी किया गया था। सभी घटक NuGet के माध्यम से उपलब्ध हैं। यहां घोषणा की गई है: http://bit.ly/jDscwl –

+0

इसके अलावा, सिल्वरलाइट के लिए अपवाद हैंडलिंग एप्लिकेशन ब्लॉक के उपयोग का प्रदर्शन करने वाले हालिया चैनल 9 स्क्रीनकास्ट को देखें: https://channel9.msdn.com/posts/Enterprise-Library- के लिए-सिल्वरलाइट-अपवाद-हैंडलिंग-प्रदर्शन –

संबंधित मुद्दे