التي .صافي حقن التبعية الأطر يستحق النظر فيه ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/21288

سؤال

والتي C#/.صافي حقن التبعية الأطر يستحق النظر فيه ؟ و ماذا يمكنك أن تقول عن التعقيد والسرعة.

هل كانت مفيدة؟

المحلول

تحرير (وليس الكاتب):هناك قائمة شاملة من اللجنة الاولمبية الدولية الأطر المتاحة في https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc:

  • قلعة وندسور - قلعة وندسور هي أفضل من سلالة, ناضجة انعكاس مراقبة الحاويات المتاحة .صافي و Silverlight
  • الوحدة - خفيفة الوزن الموسعة حقن التبعية حاوية مع دعم منشئ والممتلكات استدعاء أسلوب الحقن
  • Autofac - الادمان .صافي الحاويات اللجنة الاولمبية الدولية
  • DryIoc - بسيطة وسريعة جميع واردة تماما الحاويات اللجنة الاولمبية الدولية.
  • Ninject - النينجا من .صافي التبعية عن طريق الحقن
  • StructureMap - الأصلي IoC/دي حاوية .صافي
  • Spring.Net - Spring.NET هو تطبيق مفتوح المصدر الإطار الذي يجعل بناء المؤسسة .صافي التطبيقات أسهل
  • LightInject - الترا خفيفة الوزن الحاويات اللجنة الاولمبية الدولية
  • بسيطة Injector - بسيطة حاقن هو وسيلة سهلة لاستخدام حقن التبعية (دي) مكتبة .صافي 4+ يدعم Silverlight 4+, هاتف ويندوز 8, ويندوز 8 بما في ذلك تطبيقات عالمية أحادية.
  • مايكروسوفت.امتداد.DependencyInjection - الافتراضي الأولمبية الدولية حاوية ASP.NET التطبيقات الأساسية.
  • Scrutor - الجمعية المسح امتداد لـ Microsoft.امتداد.DependencyInjection.
  • مقابل MEF - تمكنت التمدد إطار (MEF) تنفيذ يستخدمها Visual Studio.
  • TinyIoC - وسيلة سهلة الاستخدام ، خالية من المتاعب ، انعكاس السيطرة حاوية صغيرة مشاريع المكتبات والمبتدئين على حد سواء.

الجواب الأصلية يلي.


أعتقد أنني قد يكون قليلا من الصعب إرضاءه هنا ولكن من المهم أن نلاحظ أن دي (حقن التبعية) هو نمط البرمجة و يسر, ولكن لا تتطلب ، الأولمبية الدولية (انعكاس السيطرة) إطار.اللجنة الاولمبية الدولية أطر فقط جعل دي أسهل بكثير وأنها توفر مجموعة من المزايا الأخرى فوق دي.

أن يقال, أنا متأكد من أن هذا ما كنت تسأل.عن اللجنة الاولمبية الدولية الأطر ؛ اعتدت على استخدام Spring.Net و CastleWindsor الكثير, ولكن الألم الحقيقي في وراء كل هذا المزعجة التكوين XML كان عليك أن تكتب!انهم الى حد كبير كل شيء يتحرك بهذه الطريقة الآن, لذا تم استخدام StructureMap في العام الماضي أو نحو ذلك ، ومنذ ذلك انتقلت إلى بطلاقة التكوين باستخدام بقوة كتبته الأدوية و التسجيل ألمي حاجز في استخدام الأولمبية الدولية قد انخفض إلى أقل من الصفر!أحصل على المطلق ركلة من معرفة أن اللجنة الأولمبية الدولية التكوين هو فحص في وقت التحويل البرمجي (بالنسبة للجزء الاكبر) و لدي سوى الفرح مع StructureMap و سرعته.لن أقول أن الآخرين كانت بطيئة في وقت التشغيل ، ولكنها كانت أكثر صعوبة بالنسبة لي لإعداد والإحباط غالبا ما فاز اليوم.

التحديث

لقد تم استخدام Ninject في أحدث مشروع بلدي وقد تم مطلقة متعة للاستخدام.تعجز الكلمات لي قليلا هنا ولكن (كما نقول في المملكة المتحدة) من هذا الإطار هو 'الكلاب'.وأود أن أوصي به لأي الحقول الخضراء المشاريع حيث كنت تريد أن تكون وتشغيلها بسرعة.لدي كل ما يلزم من مجموعة رائعة من Ninject قطات للشاشة جاستن Etheredge.لا أستطيع أن أرى أن الرجعية-تركيب Ninject في التعليمات البرمجية الموجودة كونها مشكلة على الإطلاق, ولكن بعد ذلك يمكن أن يقال من StructureMap في تجربتي.سيكون خيارا صعبا تسير إلى الأمام بين هذين ، ولكن أود أن يكون بدلا المنافسة من الركود و هناك مبلغ محترم من المنافسة الصحية هناك.

غيرها من اللجنة الاولمبية الدولية قطات للشاشة يمكن أيضا أن تكون موجودة هنا على Dimecasts.

نصائح أخرى

ذلك يعتمد على ما كنت تبحث عنه ، كما أنها تمتلك كل مزاياها وعيوبها.

  1. Spring.NET هو الأكثر نضجا كما أنه يخرج من الربيع من جافا العالم.الربيع مجموعة غنية جدا من إطار المكتبات التي تمتد إلى دعم ويب, ويندوز, الخ.
  2. Castle Windsor هي واحدة من الأكثر استخداما على نطاق واسع في .صافي منصة أكبر البيئي هو شكلي للغاية / الموسعة ، وقد عرف عمر إدارة اوب دعم الكامنة NHibernate دعم جميع أنحاء رهيبة الحاوية.وندسور هي جزء من كومة كامل والذي يتضمن الكهربائي, السجل النشط ، إلخ.NHibernate نفسه يبني على رأس وندسور.
  3. Structure Map وقد غنية جدا و غرامة الحبيبات التكوين الداخلي DSL.
  4. Autofac هو حاوية اللجنة الأولمبية الدولية العصر الجديد مع كل من هو الأصيل البرمجة الوظيفية الدعم.كما يأخذ نهجا مختلفا في إدارة الحياة من الآخرين.Autofac لا تزال جديدة جدا, لكنه يدفع شريط على ما هو ممكن مع اللجنة الأولمبية الدولية.
  5. Ninject لقد سمعت أكثر عظام مع أقل هو أكثر من ذلك النهج (سمعت ليس من ذوي الخبرة).
  6. أكبر من الممي Unity هو:إنه من معتمد من قبل Microsoft (p&p).الوحدة لديها أداء جيد جدا و وثائق كبيرة.كما شكلي للغاية.أنه ليس لديه كل أجراس وصفارات من قول القلعة / هيكل الخريطة.

لذا باختصار, انها حقا يتوقف على ما هو مهم بالنسبة لك.وأود أن نتفق مع الآخرين على الذهاب تقييم ورؤية واحد الذي يناسب.الشيء الجميل هو أن يكون لديك مجموعة جميلة من الكعك بدلا من مجرد وجود هلام واحد.

Autofac. https://github.com/autofac/Autofac هو حقا سريعة و جيدة.هنا هو ارتباط مع مقارنات (بعد Ninject إصلاح تسرب الذاكرة المسألة).

http://www.codinginstinct.com/2008/05/ioc-container-benchmark-rerevisted.html

Ninject كبيرة.يبدو سريع حقا ، ولكن أنا لم أفعل أي مقارنات.أنا أعرف نيت, المؤلف, فعلت بعض المقارنات بين Ninject وغيرها من دي الأطر و هو يبحث عن مزيد من السبل لتحسين سرعة Ninject.

لقد سمعت الكثير من الناس أنا أحترم أقول أشياء جيدة عن StructureMap و CastleWindsor.هذه في رأيي هي الثلاثة الكبار أن ننظر إلى الآن.

يمكنني استخدام بسيطة Injector:

بسيطة حاقن هو وسيلة سهلة ومرنة وسريعة حقن التبعية المكتبة التي تستخدم أفضل الممارسات لتوجيه الحلول نحو حفرة من النجاح.

أنا مروحة ضخمة من القلعة.أنا أحب المرافق كما يوفر خارج الحاويات اللجنة الاولمبية الدولية القصة.حقا simplfies باستخدام NHibernate, تسجيل, اوب ، إلخ.أود أيضا أن استخدام Binsor التكوين مع بو حقا سقطت في الحب مع بو كلغة بسبب ذلك.

يمكنني أن أوصي Ninject.إنه سريع بشكل لا يصدق وسهلة الاستخدام ولكن فقط إذا كنت لا تحتاج إلى تكوين XML, آخر يجب عليك استخدام وندسور.

لقد قضيت أفضل جزء من اليوم تكافح دون جدوى للحصول على أبسط Spring.NET على سبيل المثال العمل.لا يمكن أبدا معرفة كيفية الحصول على العثور على الجمعية من ملف XML.في حوالي 2 ساعة ، من ناحية أخرى ، كنت قادرا على الحصول على Ninject العمل ، بما في ذلك اختبار التكامل مع كل NUnit و MSTest.

لقد استعملت Spring.NET في الماضي كان نجاحا كبيرا مع ذلك.لم ألاحظ أي أحمال كبيرة مع ذلك ، على الرغم من المشروع اعتدنا عليه الثقيلة إلى حد ما من تلقاء نفسها.استغرق الأمر سوى القليل من الوقت من خلال القراءة الوثائق الحصول على اقامة.

أن الشيء العظيم حول C# هو أن تتبع طريق للضرب من قبل سنوات من مطوري جافا قبل ذلك.لذلك, نصيحتي, عموما عندما تبحث عن أدوات من هذا النوع ، هو البحث عن الصلبة جافا الإجابة ومعرفة ما إذا كان هناك وجود .صافي التكيف حتى الآن.

حتى عندما يتعلق الأمر دي (و هناك الكثير من الخيارات هناك ، هذا هو حقا مسألة ذوق) ، Spring.NET.بالإضافة إلى ذلك, دائما أنه من الحكمة أن البحوث الناس وراء المشاريع.لا يوجد لدي أي مشكلة مما يشير SourceGear المنتجات التحكم في مصدر (خارج باستخدام لهم) لأن لدي احترام إريك الحوض.لقد رأيت علامة بولاك الكلام و ماذا يمكنني أن أقول, الرجل لم يحصل ذلك.

في النهاية هناك الكثير من دي أطر أفضل رهان هو أن تفعل بعض مشاريع العينة مع عدد قليل منهم وجعل خيار المتعلمين.

حظا سعيدا!

أعتقد مكان جيد للبدء هو مع Ninject ، وقد أخذت في الاعتبار الكثير من ضبط و هو سريع حقا.نيت, المطور, حقا له موقع كبير ودعم كبير.

Spring.Net هو صلبة جدا, لكن الوثائق استغرق بعض الوقت إلى واد من خلال.Autofac جيدة ، و حين .Net 2.0 معتمد ، تحتاج VS 2008 تجميع أو استخدام آخر سطر الأوامر لبناء التطبيق الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top