c# एंटरप्राइज लाइब्रेरी का उपयोग करने के लाभ और नुकसान




.net enterprise-library (3)

Im सिर्फ एक परियोजना शुरू करने और जब से यह परियोजना निजी है मैं सोच रहा था एंटरप्राइज पुस्तकालय का उपयोग करने के क्या फायदे हैं? हम कार्यालय में कई प्रोजेक्ट्स के लिए संस्करण 2 का उपयोग करते हैं, लेकिन इसके विशेष रूप से डेटाबेस घटक के फायदे के बारे में मुझे यकीन नहीं है (इसके अच्छे अभ्यासों के अलावा)। कोई सलाह? धन्यवाद


डेटा एप्लीकेशन ब्लॉक के बारे में पॉल द्वारा उल्लिखित मदों के अलावा मैं यह भी कहना चाहूंगा कि मेरे अनुभव में डेटा एप्लीकेशन ब्लॉक भी आवश्यक डेटाबेस कोड को लिखने के लिए बहुत तेज तरीका प्रदान करता है, जो मददगारों के साथ मौजूद हैं। मैं इसे इसके अनुरूप दिखने / अनुभव और विकास की गति के लिए उपयोग करता हूं।


मेरी टीम ने हमारे उत्पाद लाइन के दोबारा इंजीनियरिंग के भाग के रूप में माइक्रोसॉफ्ट पैटर्न और प्रैक्टिस एंटरप्राइज लाइब्रेरी का मूल्यांकन दो साल पहले किया था। हम जिस डेटाबेस का उपयोग करते हुए समाप्त हो चुके थे वह केवल डेटाबेस ब्लॉक था। हमने भी कुछ वर्गों में लपेट लिया था, जिसे हम इन्स्तांत कर सकते थे ताकि हम यूनिट परीक्षण के लिए डीएएल का मजाक उड़ा सके; माइक्रोसॉफ्ट कोड ब्लॉक डेटाबेस काम के लिए स्थिर कॉल का इस्तेमाल किया मुझे यकीन नहीं है कि माइक्रोसॉफ्ट ने डीबी ब्लॉक में किसी भी LINQtoSQL या इकाई फ़्रेमवर्क सामान को एकीकृत किया है। अब डीबी ब्लॉक का उपयोग करने में मुझे संकोच नहीं होने चाहिए, अगर उनमें से किसी एक का लाभ उठाना नहीं है।

जहां तक ​​प्रवेश हो रहा है, हमने पाया है कि Log4Net एक अधिक मजबूत और लचीला समाधान है जो कि माइक्रोसॉफ्ट लॉगिंग हम इसके साथ हमारे प्रवेश की जरूरतों के लिए गए।

अपवाद से निपटने के लिए, हमने अपना अपना लुढ़का दिया माइक्रोसॉफ्ट कोड रिमोटिंग मामलों को संभाल नहीं सकता था, जिन्हें हमने संभालना चाहते थे, और जब से हम एक 3 पार्टी लॉगिंग ढांचे का इस्तेमाल कर रहे थे, तब यह हमारी स्वयं की अपवाद पुस्तकालय लिखने और उसके साथ एकीकृत करने के लिए अधिक समझ में आया। मैंने पाया है कि अपवाद ढांचे में लॉगिंग ढांचे के एकीकरण का कुछ स्तर बहुत उपयोगी हो सकता है हमने Log4Net के आसपास कुछ हल्के आवरण वर्गों को लिखा था और उनसे हमारे अपवाद लॉगिंग से कहा था, इसलिए हमने Log4Net पर निर्भरताओं को लागू नहीं किया था


डेटाबेस अनुप्रयोग ब्लॉक के लिए, मुख्य लाभ यह है कि यह डेटाबेस-अज्ञेयवादी कोड का निर्माण करना आसान बनाता है। डेवलपर मुख्य रूप से जेनेरिक डाटाबेस और डीबी कॉमांड ऑब्जेक्ट्स के साथ इंटरैक्ट करता है, उदाहरण के लिए एसक्यूएलकॉन्नेक्शन, एसक्यूएल कॉमांड, आदि। इसलिए, एक अलग डाटाबेस (यानी ओरेकल) पर स्विच करना अधिक व्यवहार्य हो जाता है। आपके व्यवसाय की जरूरतों के मुताबिक, यह एक निश्चित फायदा हो सकता है। EntLib भी धीरे-धीरे क्वेरी पैरामीटर के लिए DbParameter का उपयोग करने की दिशा में डेवलपर को बढ़ावा देता है, जो एसक्यूएल इंजेक्शन हमलों के जोखिम को कम करता है।

जैसा कि एक और पोस्टर का उल्लेख है, डेटा एप ब्लॉक सीधे एडीओ। नेट वर्गों की तुलना में कुछ हद तक उच्च स्तर है, इसलिए यह एक ही बात करने के लिए कोड की कम लाइन की आवश्यकता होती है।

मेरे दृष्टिकोण से, डेटा, अपवाद और लॉगिंग ब्लॉकों सबसे उपयोगी हैं। अपवाद और एक साथ लॉगिंग करने के लिए कई स्थानों पर लॉग इन करने के लिए और कई स्वरूपों में अपवाद (डुह) बहुत आसान बनाते हैं। उदाहरण के लिए, वे संपूर्ण अपवाद लॉग प्रविष्टि डाल सकते हैं, जिसमें स्टैक ट्रेस शामिल है, Windows इवेंट लॉग में यह एक समस्या का निदान करना अपेक्षाकृत आसान है।

EntLib का एक नुकसान यह है कि कुछ ऐप ब्लॉकों को कॉन्फ़िगरेशन फ़ाइलों में तर्क के काफी थोड़े स्थान पर हैं। तो आपका तर्क अधिक फैल गया है; उनमें से कुछ कोड में है, कुछ कॉन्फ़िग फाइलों में। उल्टा यह है कि कॉन्फ़िगरेशन पोस्ट-बिल्ड और पोस्ट-तैनाती के बाद भी संशोधित किया जा सकता है।





enterprise-library