7

मैं हमारे विकास समूह में डि/आईओसी प्रोग्रामिंग पद्धति लागू करने के लिए कोशिश कर रहा हूँ, लेकिन डेवलपर से एक में डि/आईओसी हो रही निम्नलिखित प्रश्न पूछा? क्या कोई ठोस उदाहरण है जो मुझे विंडसर महल जैसे डीआई/आईओसी फ्रेमवर्क का उपयोग करने का लाभ दिखा सकता है?सहायता घर

इसलिए, मैं पूछ रहा हूं कि क्या कोई केस स्टडी या आलेख है जो साबित करता है कि डीआई/आईओसी एंटरप्राइज़-स्तर .NET वेबसाइट में लाभ उठा सकता है?

अग्रिम धन्यवाद

अद्यतन: मैं की डि/आईओसी लाता है सभी लाभ के बारे में पता कर रहा हूँ, लेकिन मैं अभी तक वेब है कि एक एप्लिकेशन डि उपयोग बनाने की एक पूरी प्रक्रिया के माध्यम से चला जाता है पर पूर्ण उदाहरण देखना है/आईओसी और इससे लाभ। फिर, किसी लेख या लिंक की सराहना की जाएगी।

+3

यदि आप मेरी परियोजना में प्रोग्रामिंग पद्धति पेश करने की कोशिश कर रहे थे तो मैं उस डेवलपर के रूप में सावधान रहूंगा और उस प्रश्न का उत्तर नहीं दे सका। – JoshJordan

+0

जोश के साथ सहमत, अगर यह लगता है और सांप के तेल की तरह दिखता है, तो शायद यह है ... (जब तक कि मैं टीम में टीडीडी को पढ़ाने की कोशिश नहीं कर रहा हूं, एलओएल) – dferraro

उत्तर

6

मैं एक परियोजना जहाँ मैं निर्भरता इंजेक्शन और नियंत्रण के उलट करने के लिए कम से कम तीन लाभ देख सकते हैं पर काम कर रहा हूँ:

  1. लचीलापन डि और कुछ हद तक, आईओसी के रूप में यह से संबंधित है की अनुमति देते हैं इकाई का परीक्षण। हम कोड के किसी विशेष पहलू (या परीक्षण के तहत सिस्टम) पर शून्य कर सकते हैं और डेटाबेस तालिका तैयार करने की आवश्यकता के बिना कार्यक्षमता के इस बिट का परीक्षण कर सकते हैं या कोड के अनुभागों की सनकी के अधीन हो सकते हैं, हम इस समय से चिंतित नहीं हैं।

  2. आईओसी के माध्यम से निर्भरता इंजेक्शन एक काफी निर्बाध, स्वचालित चीज है, और यह लोगों को तर्कसंगत समर्थन कक्षाओं को पूरा करने के बिना तर्क पर काम करने की अनुमति देता है। उदाहरण के लिए, मैं एक वेब पेज लिख सकता हूं जो डेटाबेस से उस जानकारी को पुनर्प्राप्त करने के लिए किसी भी कोड को लिखे बिना उपयोगकर्ताओं की एक सूची दिखाता है। यह किसी और के द्वारा संभवतः समांतर में लिखा जा सकता है, इसलिए कम समय में अधिक काम किया जा सकता है।

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

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

6

कुछ विशेष लाभ के नाम करने के लिए:

  • क्लीनर कोड, उस में अपने व्यापार तर्क, नहीं ढांचागत मोटाई का सार किया जाता है कि
  • डि आप एक तंत्र प्रदान करके अधिक मॉड्यूलर अनुप्रयोगों बनाने की अनुमति देता आपके ऐप परतों को डीकॉप्लिंग करने के लिए
  • आईओसी आवेदन तारों/बूटस्ट्रैपिंग को बाहरी करने की अनुमति देता है और केंद्रीकृत (प्रकार) संसाधन प्रबंधन (कुछ हद तक) प्रदान करता है।निहितार्थ - आप वास्तविक कार्यक्षमता/व्यापार तर्क

पर ध्यान केंद्रित करने और अधिक समय है आईओसी और डि के बारे में कुछ अच्छी जानकारी यहाँ पढ़ा जा सकता: http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25

दी यह स्प्रिंग फ्रेमवर्क के बारे में है, सामान्य डि अवधारणाओं अभी भी लागू ।

संबंधित मुद्दे