जैसा कि हम पहले से
जानते हैं , विजुअल स्टूडियो 2010 अल्टीमेट रिवर्स इंजीनियरिंग के लिए काफी सुविधाजनक सुविधाएँ प्रदान करता है। विज़ुअल स्टूडियो टूल्स का उपयोग करके, हम मौजूदा कोड के आधार पर एक यूएमएल मॉडल का निर्माण कर सकते हैं और समझ सकते हैं कि वास्तव में हमारे लिए सब कुछ कैसे काम करता है, लेकिन साथ ही साथ मैन्युअल रूप से आरेख बनाने और उन्हें अद्यतित करने के लिए बहुत प्रयास नहीं करते हैं।
सब कुछ ठीक होगा, लेकिन इस उपकरण में कोड के साथ मॉडल को सिंक्रनाइज़ करने की क्षमता का पूरी तरह से अभाव है। यही है, मॉडल को बदलने के बाद, हमें कक्षाओं को मैन्युअल रूप से बदलना होगा। बड़ी संख्या में छोटे बदलावों के मामले में, यह काफी असुविधाजनक हो जाता है, और इस कारण से वे अक्सर पूर्ण मॉडलिंग से इनकार कर देते हैं।
Microsoft ने हाल ही में Microsoft Visual Studio 2010 फ़ीचर पैक नामक ऐड जारी किया। यह टूल हमें कोड में मॉडल परिवर्तन को सिंक्रनाइज़ करने का एक शानदार अवसर प्रदान करता है। मैं संक्षेप में वर्णन करता हूं कि इसका उपयोग कैसे किया जा सकता है।
उदाहरण के लिए, मान लीजिए कि हमारे पास एक आदिम ब्लॉग है। विषय क्षेत्र को दो वर्गों द्वारा दर्शाया गया है: लेखक और अनुच्छेद। समाधान के लिए एक नया मॉडलिंग प्रोजेक्ट जोड़ें। इसमें हम यूएमएल क्लास डायग्राम बनाते हैं।

रिवर्स इंजीनियरिंग का लाभ उठाएं। आर्किटेक्चर एक्सप्लोरर से आरेख तक कक्षाएं खींचें। इस मामले में, आरेख पर विशेषताओं के साथ एक इकाई दिखाई देती है। समय-समय पर, संस्थाओं के बीच, रिश्ते बनते हैं (और यहां तक कि कनेक्शन के प्रकार को समय-समय पर सही ढंग से दिखाया गया है) होना चाहिए, लेकिन उन मामलों में जो अभी तक निर्धारित करना संभव नहीं है।

जैसा कि हम सभी जानते हैं, यूएमएल 2.0 मानक चार मानक डेटा प्रकारों को परिभाषित करता है: बुलियन, इंटेगर, स्ट्रिंग और अनलिमिटेड। शेष प्रकार स्वचालित रूप से .NET नेमस्पेस में उनके स्थान के अनुसार पैकेज में बनाए जाते हैं।
इसलिए, हम मॉडल को एक पर्याप्त स्थिति में "मरम्मत" करने की कोशिश करेंगे, और साथ ही, हम इसे थोड़ा विस्तारित करेंगे। ऐसा करने के लिए, आरेख पर एक नया वर्ग बनाएं, इसे यूएमएल मॉडल एक्सप्लोरर में वांछित पैकेज में खींचें और सी # क्लास स्टीरियोटाइप (माइक्रोसॉफ्ट ने कई .NET-विशिष्ट स्टीरियोटाइप जोड़े जो कोड पीढ़ी में उपयोग किए जाते हैं) का चयन करें।

ध्यान दें कि यह वर्ग अभी तक डोमेन असेंबली में मौजूद नहीं है। इसे वहां पंजीकृत करने के लिए, और साथ ही साथ हमारे सभी परिवर्तनों को लागू करने के लिए, आपको निम्नलिखित कार्य करने होंगे।
मॉडल एक्सप्लोरर में, डोमेन असेंबली का चयन करें, गुण पर जाएं और टेक्स्ट टेम्पलेट बाइंडिंग में "..." बटन पर क्लिक करें। एक नया तत्व जोड़ें, प्रोजेक्ट पथ फ़ील्ड में उस प्रोजेक्ट का नाम निर्दिष्ट करें जिसमें कोड उत्पन्न होगा, लक्ष्य निर्देशिका फ़ील्ड में प्रोजेक्ट के सापेक्ष फ़ोल्डर निर्दिष्ट करें (हम इसे रूट में उत्पन्न करते हैं) और टेम्पलेट का पता निर्दिष्ट करें। डिफ़ॉल्ट रूप से, वे फ़ोल्डर में स्थित हैं "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Visualization और मॉडलिंग सुविधा पैक \ 2.0 \ Templates \ पाठ"। आप सभी अवसरों के लिए कई टेम्पलेट सेट कर सकते हैं। हमारे मामले में, ClassTemplate.t4 का चयन करें।

उसके बाद, आरेख के खाली स्थान पर राइट-क्लिक करें और जेनरेट कोड आइटम का चयन करें।

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

वैसे, स्टीरियोटाइप्स की मदद से लगभग हर चीज़ को इंगित करना संभव है: सदस्यों की दृश्यता, विशेषताएँ जो किसी नेमस्पेस, आदि को बनाते समय जुड़ी होती हैं।
तो, एम $ हमें एक महान उपकरण प्रदान करता है जो आर्किटेक्ट और डेवलपर्स के लिए जीवन को आसान बनाता है। दुर्भाग्य से, यह बहुत जरूरी पैकेज केवल MSDN ग्राहकों के लिए उपलब्ध है, और किसी कारण से कंपनी इसे सभी वैध उपयोगकर्ताओं द्वारा उपयोग करने की अनुमति नहीं देती है। और यह 300 हजार रूबल के आदेश के वीएस अल्टीमेट की कीमत पर है। आइए आशा करते हैं कि निकट भविष्य में यह स्थिति बदल जाएगी।