2010-03-02 13 views
6

मैं समझता हूँ कि मैं ServiceContract (जैसे Name, Namespace) विशेषता के लिए कई विकल्प लागू कर सकते हैं और OperationContract (Action, ReplyAction)सेवा और डेटा अनुबंधों के लिए सर्वश्रेष्ठ अभ्यास - WCF

के लिए एक ही DataContract (Namespace) में जाता है और DataMember (IsRequired, Name, Order)

मैं कैसे निर्धारित करूं कि मुझे किसी विशेष विकल्प को लागू करने की आवश्यकता है या नहीं। मुझे सबसे अच्छा अभ्यास/सम्मेलन क्या करना चाहिए?

उत्तर

8

यहां कोई भी "सर्वश्रेष्ठ अभ्यास" नहीं है। बस समझें कि सभी अलग-अलग तर्कों का क्या उपयोग किया जाता है।

  • Name यदि आप "सार्वजनिक" आपकी सेवा का नाम वास्तविक वर्ग के नाम से अलग होना चाहते हैं (ज्यादातर लोगों इसे नहीं बदलते हैं) निर्दिष्ट किया जाना चाहिए। यह डेटा अनुबंधों के समान है - यदि आप एसओएपी/एमईएक्स पर खुला नाम चाहते हैं तो उस संपत्ति का नाम जो आप आंतरिक रूप से उपयोग करते हैं, से अलग होना चाहते हैं।

  • Namespace, कुछ आप चाहिए परिवर्तन है अन्यथा यह tempuri.org को चूक - यदि आप एक नाम स्थान है कि आपके आवेदन के लिए प्रासंगिक है के साथ इस प्रतिस्थापित करना चाहिए। यदि प्रकार नल है

  • IsRequired निर्दिष्ट किया जाना चाहिए (उदाहरण के लिए string), लेकिन क्षेत्र वास्तव में अनुबंध के हिस्से के रूप में की आवश्यकता है (उदाहरण के लिए, एक ग्राहक एक नाम होना आवश्यक है ... कि एक आवश्यक फ़ील्ड है)।

  • Order बस उस क्रम को बदलता है जो गुण मेटाडेटा/एक्सएमएल में दिखाई देता है; आमतौर पर ज्यादातर लोग इस से परेशान नहीं होते हैं जब तक कि यह संगतता कारणों के लिए आवश्यक न हो।

+1

@Aaronaught - क्या नेमस्पेस का URL से कोई संबंध है, सेवाओं में होस्ट किया जाएगा? मुझे पता है कि मैं किसी भी नेमस्पेस को निर्दिष्ट कर सकता हूं, लेकिन यह सुनिश्चित नहीं था कि नामस्थान समान है जहां वेब होस्ट स्थित है। – DotnetDude

+1

@DotnetDude: नहीं, वास्तव में नहीं। नेमस्पेस को एक अद्वितीय पहचानकर्ता माना जाता है जो आपके 'AwesomeService' को हर किसी के' AwesomeService 'से अलग करता है। यदि आपके पास असली उत्पादन यूआरएल होता है, तो यह आपको उपयोग करने के लिए * चोट नहीं पहुंचाएगा (मैं करता हूं), लेकिन यह एक आवश्यकता नहीं है। – Aaronaught

+0

नेमस्पेस और नाम जेनरेट किए गए एक्सएमएल के आकार को प्रभावित करते हैं और आखिरकार तार के दूसरे छोर पर deserialized वस्तुओं को प्रभावित करते हैं। –

0

आवश्यकताएं या मानक नहीं हैं।

गुण विकल्प प्रदान करते हैं, संभावना है कि एमएस द्वारा प्रदान की गई स्थिर कल्पना आपकी आवश्यकताओं के अनुरूप होगी।

तो, मैं कहूंगा कि विकल्पों को समझना और उनकी आवश्यकताओं के अनुसार उन्हें कैसे लागू करना सर्वोत्तम अभ्यास है।

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