11

आईओसी कंटेनर क्या है?आईओसी, एओपी और अधिक

आईओसी/डी ढांचा क्या है?

हमें आईओसी/डीआई के लिए ढांचे की आवश्यकता क्यों है?

क्या आईओसी/डीआई और एओपी के बीच कोई संबंध है?

आईओसी और एओपी के संबंध में Spring.net/ninject क्या है?

+0

यह भी जांचें: http://stackoverflow.com/questions/15675331/difference-between-spring-ioc-and-spring-aop – NoNaMe

उत्तर

4

JMSA,

जेम्स कोवाक्स एक शानदार लेख जो आपके प्रश्नों के कई मैं पढ़ सिफारिश करेंगे शामिल किया गया है ने लिखा कि यह Here

Spring.Net, Ninject, एकता, महल विंडसर, Autofac सभी आईओसी कंटेनर हैं जो कर रहे हैं विभिन्न तरीकों से विन्यास योग्य, उनमें से कई एओपी का भी समर्थन करते हैं।

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

मुझे बताएं कि क्या लेख में से कोई भी प्रश्न और उपरोक्त उत्तर पढ़ने के बाद आपके किसी भी प्रश्न का अनुत्तरित नहीं है और मैं आगे सहायता प्रदान करने के लिए अपनी पूरी कोशिश करूंगा।

+0

धन्यवाद पीटर! यह वास्तव में मदद की! –

+0

आईओसी/डीआई और एओपी के बीच कोई संबंध है? –

+0

कुछ डिग्री के लिए वहाँ एक रिश्ता है। यदि आप एओपी में देखते हैं तो यह ज्यादातर लॉगिंग, और क्रॉस कटिंग चिंताओं की सुरक्षा अनुमतियों की शैली के लिए लागू होता है। लॉगिंग के मामले में बहुत सारे डेवलपर्स डीआई/आईओसी के साथ इसका उपयोग करेंगे ताकि वे लॉगिंग प्रदाताओं को स्विच कर सकें (एंटरप्राइज़ लाइब्रेरी लॉगिंग में स्वैप लॉग 4नेट कहें)। लेकिन सही जवाब यह है कि आपको एओपी लागू करने और डीआई या आईओसी लागू करने के लिए डीआई या आईओसी की आवश्यकता नहीं है, आपको एओपी का उपयोग करने की आवश्यकता नहीं है। – Peter

2

मार्टिन फाउलर का नियंत्रण और निर्भरता इंजेक्शन के उलझन के अर्थ पर here का अच्छा लेख है।

स्प्रिंग.NET उपयोग एओपी विस्तार से here में वर्णित है। मैं वसंत के जावा-आधारित संस्करण से अधिक परिचित हूं, इसलिए मैं बिल्कुल निश्चितता से नहीं कह सकता कि Spring.NET वर्तमान में केवल प्रॉक्सी-आधारित एओपी का समर्थन करता है।

यही है कि सलाह दी जाने वाली कक्षा को एक इंटरफेस को लागू करना होगा। वसंत एक गतिशील प्रॉक्सी तैयार करेगा जो इस इंटरफेस को लागू करता है और मूल लक्ष्य उदाहरण के लिए प्रतिनिधियों को लागू करता है।

हालांकि यह करता है राज्य:

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

3

देखने के एक अर्थ विज्ञान की दृष्टि से ...

निर्भरता इंजेक्शन अपने आप में एक निर्भरता है, यानी कुछ है कि है आवश्यक निर्माण/उपयोग (आवेदन के "मूल चिंताओं") के लिए निकलता है। उदाहरण के लिए, एक कार इंजन के बिना कार नहीं है।

पहलुओं पार काटने जा रहा है आवेदन के मुख्य चिंताओं के रूप में वर्णित हैं। इसका मतलब है कि मुख्य चिंताओं से अलग और गैर-महत्वपूर्ण दोनों (आप उन्हें "अच्छे-से-गुफाओं" के रूप में सोच सकते हैं)। चूंकि एप्लिकेशन बिना पहलुओं के चला सकता है, क्या वे वास्तव में निर्भरताएं हैं? उदाहरण के लिए, एक कार अभी भी एक immobilizer के बिना एक कार है।

(बेशक, यह एक सैद्धांतिक दृष्टिकोण से है।असली दुनिया में सुरक्षा जैसे बाजारों के बाजार के अस्तित्व के लिए अक्सर महत्वपूर्ण होते हैं क्योंकि मूल चिंताएं स्वयं होती हैं।)

इसलिए अभ्यास में जबकि डी को पहलुओं को लागू करने के लिए उपयोग किया जा सकता है, मैं उस प्रक्रिया को सही डी नहीं कहूंगा । यह किसी ऐसे व्यक्ति से आ रहा है जो विशेष रूप से कन्स्ट्रक्टर इंजेक्शन का उपयोग करता है।

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