2012-03-25 12 views
6

मेरी टीम इस जून में एक नई परियोजना शुरू करने की योजना बना रही है। इस एप्लिकेशन का उपयोग 2,000 समवर्ती उपयोगकर्ताओं द्वारा किया जाता है। अब हम तकनीकी निर्णय के बारे में चर्चा कर रहे हैं - आईओसी कंटेनर जो हम अपने प्रोजेक्ट में उपयोग करेंगे। मेरी टीम के सभी सदस्यों को आईओसी के साथ अनुभव नहीं है, हम में से कुछ पढ़ते हैं और जानते हैं कि यह क्या है। हमारी आवश्यकताएँ हैं:मध्य आकार के लिए .NET IoC कंटेनर एएसपी.नेट एमवीसी

  1. प्रदर्शन - हमारे प्रबंधन का कहना है कि आईओसी आवेदन धीमा हो सकता है और वे उम्मीद करते हैं कि आईओसी कंटेनर उपयोग हम प्रदर्शन में कमी नहीं होगी। वे उम्मीद करते हैं कि आईओसी कंटेनर के पास छोटी या बड़ी या रिजॉल्वर प्रक्रिया के लिए अच्छा प्रदर्शन होगा।
  2. फ़ीचर सेट - मैं अपने सहकर्मियों की अपेक्षा करता हूं कि इसमें समृद्ध फीचर सेट हों। मुझे इस समय पता नहीं है कि हम किस सुविधा का उपयोग करेंगे लेकिन मुझे अनुभव है कि कुछ घटक आसान शुरू कर सकते हैं लेकिन कुछ और अग्रिम नहीं कर सकते हैं।
  3. दस्तावेज़ या पुस्तकें - मैं आईओसी का अध्ययन करने की योजना बना रहा हूं जिसे हमने ऑनलाइन दस्तावेजों या पुस्तकों से पढ़कर चुना है।
  4. ASP.NET MVC 4
+1

कृपया http://stackoverflow.com/questions/1140730/net-ioc-container-comparisons जांचें। एक आईओसी कंटेनर का चयन करते समय भी सुनिश्चित करें कि कोड के चारों ओर बहुत अधिक पदचिह्न छोड़ दिए बिना इसका उपयोग किया जा सकता है। – Chandermani

+0

@Chandermani लिंक के लिए धन्यवाद। मैंने उस सवाल को पढ़ा लेकिन यह लगभग तीन साल पहले पूछा गया था। मुझे यकीन नहीं है, क्या यह दिनांकित है या नहीं? – Anonymous

+2

http://www.iocbattle.com/ और गिट टेस्ट दोहन देखें और आप अपडेट किए गए आईओसी कंटेनर के साथ स्वयं बेंचमार्क कर सकते हैं। SO से इस धागे को भी पढ़ें। इन लोगों ने सबसे अच्छा http://stackoverflow.com/questions/5315562/di-ioc-container-performance-benchmark-comparison – Chandermani

उत्तर

7

मैं का उपयोग किया है StructureMap, Autofac और Ninject के साथ काम करें। वे सब बहुत अच्छे हैं।

मैं आपके कार्यान्वयन के हिस्से के रूप में CommonServiceLocator [http://commonservicelocator.codeplex.com] का उपयोग करने की सलाह दूंगा। इस तरह बाद में अपने दिमाग को बदलना आसान है।

मुझे व्यक्तिगत रूप से ऑटोफ़ैक सबसे अच्छा लगता है। इसमें सुविधाओं और सादगी का अच्छा संतुलन है।

  • आसान एकाधिक अनुरोध प्रकार
  • नाम समर्थित है या बंद (Enum द्वारा नामित) पंजीकरण
  • के एक कार्यान्वयन रजिस्टर करने के लिए Autowiring और विधानसभा स्कैनिंग का समर्थन करता है
  • लाइफटाइम Scoping (इस तरह के सिंगलटन के रूप में या HttpRequest)
  • यह तेज़ है

http://code.google.com/p/autofac/wiki/MvcIntegration http://nuget.org/packages/Autofac.CommonServiceLocator-unofficial

+0

उत्तर दिया क्योंकि जो भी आपको वोट दिया गया है, उसके पास सौजन्य नहीं है कि क्यों, मैं जा रहा हूं ऐसा लगता है क्योंकि आम सेवा लोकेटर को यहाँ चारों ओर एक विरोधी पैटर्न माना जाता है, उर्फ ​​बुरा अभ्यास। –

+0

मैं यह देखने में असफल रहा कि क्यों CommonServiceLocator एक बुरा विचार है कि पूछा गया सवाल एक एमवीसी परियोजना में आईओसी कंटेनर के बारे में था। निर्भरताResolver.SetResolver विधि भी CommonServiceLocator को अधिभारित तरीकों में से एक के रूप में स्वीकार करता है। –

+0

यह एक बुरा अभ्यास है क्योंकि यह आपके द्वारा उपयोग किए जाने वाले किसी भी कंटेनर को सबसे कम आम संप्रदाय में ले जाता है। कंटेनर प्रदान करता है कि आप बहुत सी विशेष कार्यक्षमता खो देते हैं। –

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