2009-03-30 15 views
7

वर्तमान में सी # में वेब सेवा (मैं wcf पर जा रहा हूं लेकिन सिद्धांत अभी भी लागू होते हैं) को डिज़ाइन करने का कार्य है। समस्या यह है कि विधियों का कोई अधिभार नहीं है जिसे मैं जानता हूं इसलिए मुझे विभिन्न तरीकों से वेब विधियों का नाम देने की आवश्यकता है।वेब सेवा/डब्ल्यूसीएफ के साथ नामकरण सम्मेलन और कोई अधिभार

मुझे वास्तव में नामकरण सम्मेलनों पर कुछ इनपुट पसंद आएगा, उदाहरण के लिए वहां कुछ भी नहीं लगता है - उदाहरण के लिए।

मेरा मुख्य तरीका GetMortgages() है - जो सभी बंधक लौटाता है। मुझे एक और की आवश्यकता है जहां यह एक निश्चित मूल्य सीमा के भीतर बंधक वापस कर देगा, तो आप इस GetMorgagesPriceRange, InPriceRange, WithPriceRange के लिए क्या अनुशंसा करेंगे।

मैं थोड़ा इधर-उधर वेब तरीकों नामकरण सर्वोत्तम प्रथाओं के बारे में उलझन में हूँ, मैं सिर्फ वेब सेवाओं मैं नहीं कर सकता साथ GetMortgages लेकिन निश्चित रूप से ओवरलोड प्यार होता ...

तो यह बेहतर होगा GetNounDesciption करने के लिए ??

किसी को भी वहाँ बाहर एक विधि है कि एक ही है कि किसी भी अच्छे webservices के बारे में पता है, लेकिन प्रत्येक विधि से पारित कर दिया विभिन्न मापदंडों है - वास्तव में कुछ यहाँ

बारे में जानना चाहते हैं, तो यह मिलता है के साथ मेरी webmethod शुरू करने के लिए अभ्यास मिल यह कुछ ऐसा है जो कुछ देता है ??

कुछ बचाता है और कुछ भेजता है, क्या यहां कोई मानक है ?? यानी रखो या बचाओ ???

नियमों का पालन करने के लिए किसी प्रकार की पुस्तक होनी चाहिए ??

सच चाहते हैं कुछ इनपुट किसी को भी किसी भी

है धन्यवाद मार्क

+0

मैं क्या मैं सच में अगर मैं 5 तरीकों कि मैं विभिन्न मापदंडों के पारित करने के लिए की जरूरत है प्रदान करने की आवश्यकता है, लेकिन सभी एक ही स्वरूपित डेटा लेकिन विभिन्न मापदंडों है कि तब से पारित कर दिया क्या से निपटने के लिए सबसे अच्छा तरीका है पर निर्भर करता है लौटने के लिए, यह है पूछ रहा हूँ लगता है इस? –

+0

मैं आपकी सेवा से लौट रहे हैं और अपेक्षित पैरामीटर के सुझाव देने के लिए वर्णनात्मक होने के लिए GetAllMortgages() और GetMortgagesByPriceRange() का सुझाव दूंगा। – ManoDestra

उत्तर

5

वास्तव में नामकरण की परंपरा के लिए किसी भी "नियम पुस्तक" नहीं है। आपको वह मिल जाता है जो आपके लिए काम करता है।

नेट के साथ सबसे आम गोद लेने के लिए माइक्रोसॉफ्ट नेट नामकरण सम्मेलनों का पालन करना है, और वेब सेवाओं के साथ, बस उन्हें एक विशेष मामले के रूप में नहीं, बल्कि अपनी असेंबली के विस्तार के रूप में व्यवहार करें।

http://msdn.microsoft.com/en-us/library/ms229045.aspx

तो, GetMortgages(), GetMortgagesInPriceRange (startPrice, endPrice), आदि ... ठीक है।

जहां तक ​​"बचत" है, बहुत से लोग "SubmitNoun" का उपयोग करेंगे।

0

मुझे लगता है कि आप ठीक कर रहे हैं। उन्हें बताएं कि वे क्या कर रहे हैं। GetAllMortgages(), GetMortgagesInPriceRange(), आदि

किसी भी डोमेन-विशिष्ट शब्दावली को ध्यान में रखें। उदाहरण के लिए, यदि बंधक की कीमत सीमा के लिए बंधक-उद्योग शब्द "जनसांख्यिकीय" था, तो GetMortgagesForDemographic बेहतर नाम होगा, भले ही आप जानते हों कि केवल "जनसांख्यिकीय" विशेषताएं मूल्य सीमा हैं।

0

अगर आप भंडार की तरह सेवा है (के रूप में मैं अपने उदाहरण से मान लें कि आपके पास है) आप भंडार-पैटर्न के साथ जा सकते हैं सम्मेलन

GetXByY(params) 
+0

यदि हमारे पास 10 पैरामीटर हैं तो यह GetXByYByZByWByWByS पसंद करेगा ...... है ना? क्या यह सही है? –

4

इसके अलावा, आप शायद वेब सेवा तरीकों अधिक भार से बचना चाहिए। विशिष्ट विधि नामों का प्रयोग करें।

+4

+1 webservice निर्माण –

+0

में नए लोगों के लिए एक आम गड़बड़ी बताते हुए +1 यह एक टिप्पणी है, भले ही इसे ऊपर उठाया गया हो। – theMayer

3

आप GetMortgages() सेवा विधि भी पैरामीटर के बजाय 'दस्तावेज़' ले सकते हैं और दस्तावेज़ में वैकल्पिक फ़िल्टर मानदंड तैयार कर सकते हैं। इस तरह आपके पास केवल एक ही विधि है जो सभी 'ओवरलोड' को संभालती है।

<GetMortgages> 
    <filter> .... </filter> 
    <sort> .... </sort> 
    <group> .... </group> 
</GetMortgages> 
+0

एकाधिक ओवरलोड से निश्चित रूप से बेहतर; यह आपको अभी तक अधिक ओवरलोड बनाने के बिना 'दस्तावेज़' पर पैरामीटर की संख्या बढ़ाने की अनुमति देता है। –

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