मुझे याद है कि VB4 सीखना और एक फॉर्म पर एक बटन खींचना, उस बटन पर डबल-क्लिक करना और उस ईवेंट हैंडलर में टाइपिंग कोड जो मैं अभी-अभी जादुई रूप से धन्य था। QBASIC I से "VB" में "V" के साथ रोमांचित था, दृश्य डिजाइनर सचमुच कटा हुआ ब्रेड के बाद से सबसे अच्छी बात थी।
बेशक आप यह सब प्रोग्रामेटिक रूप से कर सकते हैं लेकिन "वी" का जादू इतना आकर्षक था कि आप सिर्फ मदद नहीं कर सकते बल्कि उस बटन को खींच सकते हैं। हमें वह मार्ग अपनाने के लिए प्रोत्साहित किया गया।
लेकिन फिर कुछ साल पहले मैंने C # और .net फ्रेमवर्क के बारे में सीखना शुरू किया और जिस तरह से मुझे लगा कि मुझे पता था कि खिड़की से बाहर चला गया था, उस पर मोहित था। VB6 में बहुत सारा जादू चल रहा है जो कि पूरी तरह से .net में अनावरण किया गया है: कंस्ट्रक्टर ले लो और InitializeComponents
उदाहरण के लिए विधि। बाद में आपको टूलबॉक्स से खींचे गए सभी नियंत्रण उदाहरण मिल जाएंगे, आपके द्वारा पंजीकृत सभी ईवेंट और डिज़ाइनर में आपके द्वारा सेट किए गए गुण।
और यह ठीक है ... मुझे लगता है। यह सिर्फ है, मुझे लगता है कि मैं "खुद" नहीं करता हूं क्या चल रहा है, यह कोड जिसे मैं केवल डिजाइनर के माध्यम से संशोधित कर सकता हूं, मुझे बाहर निकाल दिया। हर बार जब आप एक बटन को कॉपी करते हैं जो "ओके" को एक रूप से दूसरे रूप में कहता है (कभी-कभी अपने भाई के साथ "रद्द करें"), तो आप वास्तव में कोड की नकल कर रहे हैं, और यह एक पाप नहीं है? DRY, खुद को नहीं दोहराता, पोप कहते हैं ।
सभी निष्पक्षता में एक तरफ विचार करने वाले धर्म और स्कूल, क्या हमें आधार के रूपों को इसके स्थान से प्राप्त नहीं करना चाहिए, और आधार फॉर्म पर "ओके" बटन (और उसके सभी दोस्तों) का लाइव होना चाहिए? कुछ ऐसा FormBase
है जिसमें से एक व्युत्पन्न है DialogFormBase
; कुछ ही समय में बनाई गई सभी कक्षाएं ... कोड लिखकर। बटन किस प्रकार से निकाले जाते हैं, इस आधार पर बनाया जाता है (यानी एक कंस्ट्रक्टर एनम तर्क यह निर्धारित करता है कि कौन से बटन बनाए जाने हैं), नियंत्रणों को विभाजित पैनलों और फ्लो लेआउट पैनलों की एक व्यवस्था के अंदर सेट किया जाता है, जैसा कि फॉर्म में इंजेक्ट किया जाता है।Content
यह मुख्य सामग्री पैनल में फिट बैठता है। क्या यह ASP.net मास्टर पृष्ठ और सामग्री प्लेसहोल्डर्स के साथ नहीं करता है? जब मुझे एक नए "मास्टर पेज" की आवश्यकता होती है, तो मैं एक फॉर्म प्राप्त करूंगा, लेकिन यह नया "मास्टर पेज" अभी भी एक बेस फॉर्म क्लास से प्राप्त होता है, इसलिए दृश्य पूरे एप्लिकेशन के अनुरूप होते हैं।
मेरे लिए वह बहुत कुछ और मैंने कभी WinForms में डिजाइनर के साथ किया है और अधिक से अधिक कोड पुन: उपयोग, और यह भी मुश्किल नहीं था, और कोड 200 लाइनों विधि से भरा हुआ नहीं है मैं कोई नियंत्रण नहीं है, मैं कर सकते हैं कि जहां मुझे पसंद हो, वहां टिप्पणी करें, वे एक डिजाइनर द्वारा अधिलेखित नहीं होंगे। मुझे लगता है कि यह केवल पैटर्न और वास्तुकला की बात है, जो मुझे इस लिंक पर लाया है: विंडोज रूपों के लिए सबसे अच्छा डिज़ाइन जो सामान्य कार्यक्षमता को साझा करेगा , जहां मुझे एहसास हुआ कि मैं मौके पर था, वहां जवाब के अलावा , सुझाव देता हूं कि वास्तव में मैं क्या हूं कर रहा है, लेकिन यह डिजाइनर विचारों की वजह से फार्म विरासत के खिलाफ सलाह दे रहा है । यही वह हिस्सा है जो मुझे नहीं मिलता है ।कोड संरचना के कारणों की वजह से, विशेष रूप से फॉर्म और नियंत्रण विरासत के संबंध में, जो कि मुझे डिजाइनर को तोड़ने के अलावा अन्य से बचने का कोई कारण नहीं दिखता है ।
हम सभी सिर्फ आलसी नहीं हो सकते हैं, इसलिए मुझे क्या हिस्सा याद आ रहा है?