आंशिक कक्षाएं VB.NET की एक विशेषता हैं जो लगभग हर जगह उपयोग की जाती हैं, लेकिन इसके बारे में बहुत कुछ नहीं लिखा गया है। यह हो सकता है क्योंकि अभी तक इसके लिए बहुत सारे स्पष्ट "डेवलपर" एप्लिकेशन नहीं हैं। प्राथमिक उपयोग ASP.NET और VB.NET समाधान विज़ुअल स्टूडियो में बनाए जाते हैं, जहां यह उन विशेषताओं में से एक है जो सामान्य रूप से "छिपी" है।
एक आंशिक वर्ग एक वर्ग परिभाषा है जो एक से अधिक भौतिक फ़ाइल में विभाजित है। आंशिक कक्षाओं से कंपाइलर पर कोई फर्क नहीं पड़ता है क्योंकि क्लास बनाने वाली सभी फाइलें केवल कंपाइलर के लिए एकल इकाई में विलय हो जाती हैं। चूंकि कक्षाएं बस एक साथ विलय और संकलित की जाती हैं, आप भाषाओं का मिश्रण नहीं कर सकते। अर्थात, आपके पास C # में एक आंशिक वर्ग और VB में दूसरा नहीं हो सकता है। आप विधानसभाओं को आंशिक वर्गों के साथ भी नहीं जोड़ सकते। इन सभी को एक ही विधानसभा में होना है।
यह विज़ुअल स्टूडियो द्वारा स्वयं का उपयोग किया जाता है, विशेष रूप से वेब पेजों में जहां यह "कोड के पीछे" फाइलों में एक महत्वपूर्ण अवधारणा है। हम यह देखेंगे कि यह विज़ुअल स्टूडियो में कैसे काम करता है, लेकिन यह समझने के लिए कि जब इसे पेश किया गया था, तब विज़ुअल स्टूडियो 2005 में क्या बदला था।
विज़ुअल स्टूडियो 2003 में, विंडोज एप्लिकेशन के लिए "छिपा हुआ" कोड सभी एक सेक्शन में था जिसे "विंडोज फॉर्म डिजाइनर जनरेट कोड" के रूप में चिह्नित किया गया था। लेकिन यह अभी भी एक ही फ़ाइल में सब कुछ था और क्षेत्र में कोड को देखना, और बदलना आसान था। सब कोड .NET में आपके आवेदन के लिए उपलब्ध है। लेकिन चूंकि यह कुछ कोड है जो आपको चाहिए
विज़ुअल स्टूडियो 2005 (फ्रेमवर्क 2.0) में, माइक्रोसॉफ्ट ने लगभग एक ही काम किया, लेकिन उन्होंने कोड को एक अलग जगह में छिपा दिया: एक अलग फ़ाइल में एक आंशिक वर्ग। आप इसे नीचे चित्र के नीचे देख सकते हैं:
चित्रण प्रदर्शित करने के लिए यहां क्लिक करें
वापस जाने के लिए अपने ब्राउज़र पर बैक बटन पर क्लिक करें
विजुअल बेसिक और C # के बीच के सिंटैक्स अंतर में से एक यह है कि C # की आवश्यकता है सब आंशिक कक्षाएं कीवर्ड के साथ योग्य हैं आंशिक लेकिन वीबी नहीं करता है। VB.NET में आपके मुख्य फॉर्म में कोई विशेष क्वालिफायर नहीं है। लेकिन खाली Windows अनुप्रयोग के लिए डिफ़ॉल्ट क्लास स्टेटमेंट C # का उपयोग करके ऐसा दिखता है:
सार्वजनिक आंशिक वर्ग फॉर्म 1: फॉर्म
इस तरह की चीजों पर माइक्रोसॉफ्ट के डिजाइन के विकल्प दिलचस्प हैं। जब Microsoft के VB डिज़ाइनर पॉल विक ने अपने ब्लॉग में इस डिज़ाइन की पसंद के बारे में लिखा पानोप्टीकॉन सेंट्रलटिप्पणियों में इसके बारे में बहस पन्नों और पन्नों पर चली गई।
देखते हैं कि अगले पृष्ठ पर वास्तविक कोड के साथ यह सब कैसे काम करता है।
पिछले पृष्ठ पर, आंशिक कक्षाओं की अवधारणा को समझाया गया था। हम इस पृष्ठ पर एक एकल वर्ग को दो आंशिक वर्गों में बदलते हैं।
यहां एक उदाहरण वर्ग एक विधि और एक VB.NET परियोजना में एक संपत्ति के साथ है
पब्लिक क्लास कम्बाइंडक्लास। निजी m_Property1 स्ट्रिंग के रूप में। सार्वजनिक उप नया (स्ट्रिंग के रूप में मूल्य) m_Property1 = मान। अंत उप। सार्वजनिक उपविधि 1 () संदेश बॉक्स। दिखाएँ (m_Property1) समाप्ति उप। संपत्ति Property1 () स्ट्रिंग के रूप में। प्राप्त। M_Property1 लौटें। अंत मिलता है। सेट करें (स्ट्रिंग के रूप में मूल्य) m_Property1 = मान। अंतिम सेट। अंतिम संपत्ति। एंड क्लास
इस वर्ग को (उदाहरण के लिए, बटन ऑब्जेक्ट के लिए क्लिक करें कोड में) कोड कहा जा सकता है:
डिम ClassInstance As New _। CombinedClass ("विज़ुअल बेसिक पार्टिकल क्लासेस के बारे में") ClassInstance। Method1 ()
हम परियोजना में दो नए वर्ग फ़ाइलों को जोड़कर वर्ग के गुणों और विधियों को अलग-अलग भौतिक फ़ाइलों में अलग कर सकते हैं। पहली भौतिक फ़ाइल को नाम दें Partial.methods.vb और दूसरे का नाम बताइए Partial.properties.vb. भौतिक फ़ाइल नाम अलग-अलग होने चाहिए, लेकिन आंशिक वर्ग के नाम समान होंगे इसलिए विज़ुअल बेसिक कोड को संकलित करने पर उन्हें मर्ज कर सकता है।
यह एक वाक्यविन्यास आवश्यकता नहीं है, लेकिन अधिकांश प्रोग्रामर इन वर्गों के लिए "बिंदीदार" नामों के उपयोग के विज़ुअल स्टूडियो में उदाहरण का अनुसरण कर रहे हैं। उदाहरण के लिए, Visual Studio डिफ़ॉल्ट नाम का उपयोग करता है Form1.Designer.vb Windows प्रपत्र के लिए आंशिक वर्ग के लिए। प्रत्येक वर्ग के लिए आंशिक खोजशब्द जोड़ना और उसी नाम से आंतरिक वर्ग नाम (फ़ाइल का नाम नहीं) बदलना याद रखें। मैंने आंतरिक वर्ग नाम का उपयोग किया है: PartialClass.
नीचे दिया गया उदाहरण उदाहरण के लिए सभी कोड और कार्रवाई में कोड दिखाता है।
चित्रण प्रदर्शित करने के लिए यहां क्लिक करें
वापस जाने के लिए अपने ब्राउज़र पर बैक बटन पर क्लिक करें
विज़ुअल स्टूडियो आंशिक कक्षाएं जैसे कि Form1.Designer.vb को "छुपाता है"। अगले पृष्ठ पर, हम सीखते हैं कि हम अभी बनाए गए आंशिक वर्गों के साथ कैसे करें।
पिछले पृष्ठ आंशिक कक्षाओं की अवधारणा की व्याख्या करते हैं और बताते हैं कि उन्हें कैसे कोडित किया जाए। लेकिन Microsoft Visual Studio द्वारा उत्पन्न आंशिक वर्गों के साथ एक और चाल का उपयोग करता है। उन्हें उपयोग करने का एक कारण यूआई (उपयोगकर्ता इंटरफ़ेस) कोड से एप्लिकेशन लॉजिक को अलग करना है। एक बड़ी परियोजना में, ये दो प्रकार के कोड अलग-अलग टीमों द्वारा भी बनाए जा सकते हैं। यदि वे अलग-अलग फ़ाइलों में हैं, तो उन्हें बहुत अधिक लचीलेपन के साथ बनाया और अद्यतन किया जा सकता है। लेकिन Microsoft एक और कदम बढ़ाता है और आंशिक रूप से समाधान एक्सप्लोरर में भी कोड छुपाता है। मान लीजिए कि हम इस परियोजना में आंशिक वर्गों के तरीकों और गुणों को छिपाना चाहते थे? एक तरीका है, लेकिन यह स्पष्ट नहीं है और Microsoft आपको नहीं बताता कि कैसे।
Microsoft द्वारा अनुशंसित आंशिक कक्षाओं का उपयोग न करने का एक कारण यह है कि यह वास्तव में अभी तक Visual Studio में बहुत अच्छी तरह से समर्थित नहीं है। Partial.methods.vb और Partial.properties.vb वर्गों को छिपाने के लिए जिन्हें हमने अभी बनाया है, उदाहरण के लिए, परिवर्तन की आवश्यकता है vbproj फ़ाइल। यह एक XML फ़ाइल है जो प्रदर्शित भी नहीं है समाधान एक्सप्लोरर में। आप इसे अपनी अन्य फ़ाइलों के साथ विंडोज एक्सप्लोरर के साथ पा सकते हैं। एक vbproj फ़ाइल नीचे चित्रण में दिखाई गई है।
चित्रण प्रदर्शित करने के लिए यहां क्लिक करें
वापस जाने के लिए अपने ब्राउज़र पर बैक बटन पर क्लिक करें
जिस तरह से हम ऐसा करने जा रहे हैं वह एक "रूट" वर्ग जोड़ना है जो पूरी तरह से खाली है (केवल क्लास हेडर और एंड क्लास स्टेटमेंट बचे हैं) और हमारे दोनों आंशिक वर्गों को इस पर निर्भर बनाते हैं। इसलिए नाम का एक और वर्ग जोड़ें PartialClassRoot.vb और पहले दो का मिलान करने के लिए फिर से आंतरिक नाम को PartialClass में बदलें। इस बार, मेरे पास है नहीं विजुअल स्टूडियो ने जिस तरह से किया है उससे मिलान करने के लिए आंशिक कीवर्ड का उपयोग किया।
यहाँ जहाँ XML का थोड़ा ज्ञान बहुत काम आएगा। चूंकि इस फ़ाइल को मैन्युअल रूप से अपडेट करना होगा, इसलिए आपको XML सिंटैक्स सही करना होगा। आप किसी भी ASCII पाठ संपादक में फ़ाइल को संपादित कर सकते हैं - नोटपैड ठीक काम करता है - या XML संपादक में। यह पता चला है कि आपके पास विज़ुअल स्टूडियो में एक महान है और नीचे दिए गए चित्रण में यही दिखाया गया है। लेकिन आप vbproj फ़ाइल को उसी समय संपादित नहीं कर सकते हैं जब आप उस प्रोजेक्ट को संपादित कर रहे हैं, जिसमें वह है। इसलिए प्रोजेक्ट को बंद करें और केवल vbproj फ़ाइल खोलें। आपको संपादन विंडो में प्रदर्शित फ़ाइल को नीचे दिए गए चित्रण में दिखाया गया है।
(ध्यान दें संकलन प्रत्येक वर्ग के लिए तत्व। पर निर्भर उप-तत्वों को ठीक उसी तरह जोड़ा जाना चाहिए जैसा कि नीचे दिए गए चित्रण में दिखाया गया है। यह चित्रण VB 2005 में बनाया गया था लेकिन इसका परीक्षण VB 2008 में भी किया गया है।)
चित्रण प्रदर्शित करने के लिए यहां क्लिक करें
वापस जाने के लिए अपने ब्राउज़र पर बैक बटन पर क्लिक करें
हम में से कई लोगों के लिए, शायद यह जानना पर्याप्त है कि आंशिक कक्षाएं हैं, बस हमें पता है कि वे क्या हैं जब हम भविष्य में बग को ट्रैक करने की कोशिश कर रहे हैं। बड़े और जटिल प्रणालियों के विकास के लिए, वे एक छोटा चमत्कार हो सकते हैं क्योंकि वे उन तरीकों से कोड को व्यवस्थित करने में मदद कर सकते हैं जो पहले असंभव थे। (आपके पास आंशिक संरचनाएं और आंशिक इंटरफेस भी हो सकते हैं!) लेकिन कुछ लोगों ने निष्कर्ष निकाला है कि माइक्रोसॉफ्ट ने उन्हें केवल आंतरिक कारणों से आविष्कार किया है - उनकी कोड पीढ़ी को बेहतर बनाने के लिए। लेखक पॉल किमेल ने यहां तक कहा कि यह सुझाव देने के लिए कि Microsoft ने वास्तव में दुनिया भर में विकास कार्यों को आउटसोर्स करना आसान बनाकर अपनी लागत को कम करने के लिए आंशिक कक्षाएं बनाईं।
शायद। यह इस तरह की चीज है जो वे कर सकते हैं।