2011-09-19 17 views
11

तो ऐसा लगता है जैसे मैं प्रमुख विकल्पों में से एक जोड़ी है जब दृश्य स्टूडियो में एक परियोजना में WCF सेवा प्रॉक्सी कोड हो रही:मुझे svcutil पर विजुअल स्टूडियो सेवा संदर्भों का उपयोग क्यों करना चाहिए?

  1. उपयोग दृश्य स्टूडियो के अंतर्निहित टूलींग के लिए Service References

  2. उपयोग सरल svcutil कमांड, svcutil http://[my endpoint] /namespace:[my namespace] /noconfig जैसे कुछ (क्योंकि मैं प्रोजेक्ट में काफी काफी मानक बाइंडिंग का उपयोग करता हूं), और परिणामस्वरूप फ़ाइल को मेरे प्रोजेक्ट (या स्थान पर अपग्रेड) में खींचें।

स्पष्ट है कि, विकल्प 2 यद्यपि अद्यतन करने के लिए कोई बिल्ट-इन टूलींग के साथ, सबसे अच्छा एक तरह लगता है। लेकिन सेवा संदर्भ संवाद एक अरब फाइलों की तरह उत्पन्न करता है। क्या वीएस सेवा संदर्भों के लिए कोई अस्पष्ट लाभ है जो मुझे याद आ रही है?

+3

वे मूल रूप से वही बात हैं। –

+1

विजुअल स्टूडियो मूल रूप से दृश्यों के पीछे svcutil कहते हैं। हालांकि प्रोग्रामर के बहुत सारे कमांड प्रॉम्प्ट खोलने और कमांड लाइन उपकरण चलाने से डरते हैं - यही कारण है कि विजुअल स्टूडियो में 'सेवा जोड़ें संदर्भ' संवाद है .... –

+0

हाँ मुझे पता था कि वे कवर के नीचे समान थे, लेकिन है यह उन सभी एक्सएसडी और अन्य फ़ाइलों को कुछ लाभ के लिए उत्पन्न करने के लिए कुछ/भयानक स्विच का उपयोग कर रहा है? –

उत्तर

14

आप भी सेवा के मालिक हैं, मैं कहेंगे नहीं है एक का प्रयोग करें। इसके बजाय, विभिन्न अनुबंधों में अपने अनुबंध, संस्थाएं और ग्राहक प्रॉक्सी को तोड़ दें जिन्हें आप सेवा और ग्राहक दोनों पर उपयोग कर सकते हैं।

किंडा जैसे WCF The Manual Way... The Right Way में वर्णित है।

+0

मैं पूरी तरह से सहमत हूं! –

+0

मैंने इसे कई स्थानों पर सुना है, और मुझे लगता है कि यह कहीं भी एक iDesign दस्तावेज़ में है (और शायद एक अलग सवाल है), लेकिन क्या मुझे उन असेंबली को डाउनलोड करने और अपडेट करने के लिए हेवीवेट प्रबंधन रणनीति की भी आवश्यकता नहीं है? मैंने svn किया है: बाहरी और इसके लिए NuGet के बारे में सोचा, लेकिन आसानी से अद्यतन के अलावा (और svn: बाहरी अप्रत्याशित रूप से निर्माण में कोड को छीनने के लिए बाहरी है), मुझे यकीन नहीं है कि मैं अन्य के अलावा क्या खरीदता हूं थोड़ा और अधिक DRY कोड। –

+1

यदि आपके पास सभी कोड हैं, तो यह कोई समस्या नहीं होनी चाहिए। आपको असेंबली का संदर्भ नहीं देना है; आप सेवा संदर्भों के समान परियोजनाओं का संदर्भ दे सकते हैं। हर बार जब आप निर्माण करते हैं, तो आपका ग्राहक भी अपडेट किया जाएगा। –

21

वही कारण है कि आप वीएस के साथ एक .NET प्रोजेक्ट क्यों बनाते हैं और कमांड लाइन से हाथ से कंपाइलर को कॉल नहीं करते हैं। आईडीई का I एकीकृत है, यह आपके लिए चीजें करता है ताकि आपको उन चीजों को मैन्युअल रूप से कई अलग-अलग स्थानों और प्रक्रियाओं से करने की आवश्यकता न हो।

आम तौर पर हाथ से या किसी पाठ संपादक और शीघ्र आदेश उन चीजों में से कई करने के लिए एक तरीका है, लेकिन सुविधा देता हो उत्पादक :-)

+2

के खिलाफ सेवा संदर्भ जोड़ें यूआई टूलींग वी। कमांड लाइन पर सहमत है। तो क्या आप कह रहे हैं कि उपयोगिता ही एकमात्र लाभ है? –