मैंने क्लासिक एएसपी काम (लगभग 2001) कर रहे थे जब मैंने अपने जेनरेटर (डेटा एक्सेस, स्पॉक्स, आदि) को वापस शुरू करना शुरू किया। मैं धीरे-धीरे कोडस्मिथ चले गए, क्योंकि इससे निपटना बहुत आसान था। मैं अभी भी मुख्य रूप से बस अपने .NET कोड के लिए सभी डेटा एक्सेस परत प्रकार सामग्री (sprocs सहित) उत्पन्न कर रहा था।
कुछ साल पहले, मैंने मैक्रो कोड जनरेशन (यानी कोडस्मिथ) से माइक्रो कोड जनरेशन में कूद किया था।
अंतर यह है कि कोडस्मिथ के साथ मैं अपने ऐप, सभी सामान्य, और सभी के लिए कोड के विशाल स्वार्थ उत्पन्न कर रहा था। यह किनारे के मामलों के लिए समस्याग्रस्त हो गया और टेम्पलेट के लिए स्रोत बदलते समय पुन: उत्पन्न हुआ (यानी तालिका संरचना)। मैं उन मामलों में भी भाग गया जहां कोड का उपयोग करने की एक उच्च सूची थी जिसका मैं उपयोग नहीं कर रहा था, लेकिन मेरे टेम्पलेट से उत्पन्न हुआ था। क्या ये सभी विधियां काम करती हैं? शायद शायद नहीं। जेनरेट कोड में जाकर सफाई करना बहुत अधिक काम होता है (यानी एक ही कोडबेस पर एक वर्ष से अधिक के बाद)।
माइक्रो कोड जनरेशन, इसके विपरीत, मुझे बिल्कुल सही परिदृश्य में, मुझे आवश्यक कक्षाएं उत्पन्न करने की अनुमति देता है। ऐसा करने के लिए मैं प्राथमिक उपकरण का उपयोग करता हूं ReSharper। जिस तरह से मैं अपना उत्पादन कोड लिखने से पहले अपने यूनिट परीक्षण लिख रहा हूं। उस परिदृश्य में, ReSharper उत्पादन कोड के लिए कंकाल को स्वत: उत्पन्न करने के लिए टेम्पलेट के रूप में मेरे यूनिट टेस्ट का उपयोग करता है। तो यह सिर्फ रिक्त स्थान भरने की बात है।
डेटा एक्सेस के लिए, अब मैं कुछ भी उत्पन्न नहीं कर रहा हूं।मैंने पाया है कि एक अच्छा ओ/आर एम मेरे डेटा एक्सेस लेयर (यानी एनएचबीरनेट) में डालने वाली हर चीज़ को प्रतिस्थापित करता है। यह देखते हुए, मैं अपने जीवन में एक और डेटा एक्सेस लेयर कभी नहीं लिखूंगा या उत्पन्न नहीं करूंगा (मैं इनकार करता हूं)।
इसके अलावा, मैं एक बड़ी इकाई परीक्षण सूट, अन्य बातों के
आपके पास एक बहुत ही रोचक परिप्रेक्ष्य है। मैं वर्तमान में उस परियोजना के साथ उसी स्रोत नियंत्रण समस्याओं से निपट रहा हूं जो मैं वर्तमान में काम कर रहा हूं। हम इन-हाउस कोड-जेन टूल का उपयोग करते हैं। हर बार एक स्कीमा बदलता है, हम संग्रहित प्रक्रियाओं से सबकुछ फिर से उत्पन्न करने के लिए मजबूर होते हैं। आपके पास क्या समाधान है? – Micah
उस मामले में, समाधान ओआरएम और कोड जनरेटर को पूरी तरह से छोड़ना था। हमने पाया कि यह एक प्रणाली के लिए एन-स्तरीय डिज़ाइन का उपयोग करने के लिए प्रतिकूल था जो इसकी आवश्यकताओं को खोज रहा था क्योंकि इसे विकसित किया जा रहा था। –
या एनएचबीर्नेट के मामले में, स्पॉक्स को छोड़ दें और पूरी तरह से डीएएल उत्पन्न करें .. यह मेरे लिए सबसे अच्छा काम करता है – therealhoff