6

मैंने अभी डब्लूसीएफ वेब सेवा का एक नया संस्करण लिखा है और मैं यह सुनिश्चित करना चाहता हूं कि मैंने सेवा और डेटा अनुबंधों के संबंध में कोई तोड़ने में बदलाव नहीं किए हैं।डब्ल्यूसीएफ सेवा पिछड़ा संगतता जांच

वीबी 6 कॉम एपीआई डेवलपर के रूप में मेरे दिनों के बारे में सोचकर मुझे याद है कि संकलन समय पर घटक के पिछले रिलीज़ संस्करण को निर्दिष्ट करना कितना आसान था, और कंपाइलर जांचें कि बाइनरी संगतता बनाए रखा जा रहा है।

मैं कुछ "उम्मीदवार)" अनुबंध संगतता "चेक पर विचार करता हूं। यह मेटाडेटा का उपयोग उसी प्रकार की जांच करने के लिए करेगा जो VB6 dev env ने किया था। यह एक अलग निर्माण चरण के रूप में किया जा सकता है जो एक उपयोगिता निष्पादित करेगा।

मैं यह स्वीकार करने के लिए तैयार हूं कि वहां ऐसी कोई उपयोगिता मौजूद नहीं है। यदि ऐसा है, तो क्या किसी के पास इस बारे में कोई विचार है कि एल्गोरिदम इसे कैसे प्राप्त करेगा?

  1. वर्तमान लाइव सेवा संस्करण
  2. से मेटाडाटा को पुनः प्राप्त नई सेवा संस्करण
  3. चेक सेवा अनुबंध और अनुकूलता के लिए प्रत्येक डेटा अनुबंध से मेटा डेटा प्राप्त करें। केवल ब्रेकिंग परिवर्तन की रिपोर्टिंग।

चरण 3 लगता है जैसे कि यह जटिल लेकिन निश्चित रूप से automatable होगा ...

+2

यदि संगतता समस्याएं हैं, तो आप संस्करण अनुबंध के लिए सेवा अनुबंध के नामस्थान का उपयोग कर सकते हैं, और दोनों संस्करणों को तब तक उपलब्ध रख सकते हैं जब तक कि आप सुनिश्चित न हों कि पुराने का उपयोग नहीं किया जा रहा है। –

उत्तर

1

कुछ भी नहीं है उस तरह से मौजूद है एंडी लेकिन अगर आप कुछ और चलाने के लिए आप 2 DLLs (एक वर्ष और एक नया) है जिसके तहत, फिर आप तुलना करने के लिए बिट डिफफर जैसे कुछ का उपयोग कर सकते हैं।

कोडप्लेक्स पर एक प्रोजेक्ट था जिसने डब्ल्यूसीएफ रिलीज में मदद की, लेकिन मुझे याद नहीं है कि इसे क्या कहा जाता है, क्षमा करें।

गुड लक,

+0

इसके अलावा आप ApiChange, LibCheck या NDepend टूल का उपयोग करके 2 डीएलएल की तुलना करने का प्रयास कर सकते हैं। – aponomarenko

4

इन स्थितियों एकीकरण/प्रतिगमन परीक्षण द्वारा हल कर रहे हैं -Keith। आप प्रारंभिक संस्करण के लिए एकीकरण परीक्षण लिखते हैं और नए संस्करण में सेवा को संशोधित करने के बाद आप पुराने क्लाइंट का उपयोग करके एकीकरण परीक्षण चलाते हैं। अगर वे सफलता करते हैं तो आपने कुछ तोड़ नहीं दिया। अगर वे असफल होते हैं तो आप वास्तव में क्या समस्याएं उत्पन्न करते हैं।

+1

अच्छा बिंदु। वह चाल करेगा। यदि एक स्थिर जांच संभव नहीं है तो एक रनटाइम चेक अगली सबसे अच्छी बात होगी। धन्यवाद –

0

कोशिश पुराने इंटरफ़ेस अनुबंध के लिए "Codeplex WCF Load Test" का उपयोग कर इकाई परीक्षण पैदा करते हैं और एक नया एक पर उन्हें चलाने के लिए:

यह उपकरण एक WCF ट्रेस फ़ाइल और WCF ग्राहक प्रॉक्सी, या एक WCF इंटरफ़ेस अनुबंध लेता है, और उत्पन्न करता है एक सी # इकाई परीक्षण जो ट्रेस फ़ाइल में मिली कॉल के समान अनुक्रम को दोहराता है। यूनिट टेस्ट का उपयोग लक्ष्य को लोड-टेस्ट करने के लिए किया जा सकता है।