কোন। নেট নির্ভরতা ইনজেকশন ফ্রেমওয়ার্কগুলি মূল্যবান? [বন্ধ]


386

কোন সি # /। নেট ডিপেন্ডেন্সি ইনজেকশন ফ্রেমওয়ার্কগুলি মূল্যবান? এবং তাদের জটিলতা এবং গতি সম্পর্কে আপনি কী বলতে পারেন।


13
আইওসি কনটেইনার বেঞ্চমার্ক - পারফরম্যান্স তুলনায় 20+ পণ্যগুলির জন্য পারফরম্যান্স এবং তুলনা সারণী রয়েছে এবং সেগুলি আপ টু ডেট রাখে। এটি সাধারণ
ইনজেক্টর

আমি নিনজেক্ট এবং মাস্ত্রোর প্রশংসা করি। আমি খুশি যে শীর্ষ রেট করা উত্তর নিনটাকে "পরম আনন্দ" হিসাবে প্রকাশ করেছে
রাজ্জান ডুমিত্রু

6
আমি জোর দিয়েছি যে আইওসি পাত্রে beforeোকার আগে আপনার কোনও ব্যবস্থা ছাড়াই পরিচালনা করা উচিত। আপনার ওয়্যারিং এবং ইনজেকশনটি ম্যানুয়ালি করুন, এটি সত্যিই জটিল নয় বা আপনার কাছে কিছু জটিল বা বড় সিস্টেম না থাকলে প্রচুর কোডের প্রয়োজন হয় না। আপনি যখন মনে করেন যে আপনি এটি বুঝতে পেরেছেন এবং এটি সম্মিলিত হয়ে উঠছে আপনি কী ধরণের ফ্রেমওয়ার্ক আপনাকে সাহায্য করবে তা বোঝার জন্য আপনি আরও ভাল হয়ে উঠবেন। তবে এমন কোনও নিয়ম নেই যা বলে যে কোনও প্রকল্পের কেবলমাত্র সঠিকভাবে ডিআই করতে সক্ষম হওয়ার জন্য একটি আইওসি ধারক থাকতে হবে।
সারা

1
কারও সাথেই শুরু করবেন না। ম্যানুয়ালি প্রয়োজনীয় বস্তুগুলি গ্রাফ তৈরি করুন। বিভিন্ন ফ্রেমওয়ার্কগুলির বিভিন্ন পদ্ধতির রয়েছে যা আপনার প্রয়োজনের উপর নির্ভর করে। কোনটি চয়ন করার আগে আপনাকে কোন বৈশিষ্ট্যগুলি সবচেয়ে বেশি প্রয়োজন তা সনাক্ত করতে হবে।
ফ্যাবিও

যেহেতু ডটনেটকোর ভবিষ্যত, তাই আপনি সম্ভবত এটির ডিআইআর সমর্থনের সাথে লেগে থাকতে পারেন। এটি খুব ভাল এবং অত্যন্ত স্বনির্ধারিত।
এটিএল_ডিইভি

উত্তর:


339

সম্পাদনা করুন (লেখকের দ্বারা নয়): এখানে আইওসি ফ্রেমওয়ার্কের একটি বিস্তৃত তালিকা রয়েছে https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc এ উপলব্ধ :

  • ক্যাসেল উইন্ডসর - ক্যাসল উইন্ডসর .NET এবং সিলভারলাইটের জন্য উপলব্ধ কন্ট্রোল কনটেনারের প্রজনন, পরিপক্ক বিপর্যয়ের মধ্যে সেরা is
  • Ityক্য - লাইটওয়েট এক্সটেনসিবল নির্ভরতা ইনজেকশন ধারক যা কন্সট্রাক্টর, সম্পত্তি এবং পদ্ধতি কল ইনজেকশন সমর্থন করে
  • অটোফ্যাক - একটি আসক্তিযুক্ত। নেট আইওসি ধারক
  • ড্রাই আইওসি - সহজ, দ্রুত সমস্ত সম্পূর্ণ বৈশিষ্ট্যযুক্ত আইওসি ধারক।
  • নিনজ - .NET নির্ভরতা ইনজেক্টরগুলির নিনজা
  • স্ট্রাকচারম্যাপ - নেট এর মূল আইওসি / ডিআই কনটেইনার
  • স্প্রিং.নেট - স্প্রিং.নেট একটি ওপেন সোর্স অ্যাপ্লিকেশন কাঠামো যা বিল্ডিং এন্টারপ্রাইজ। নেট অ্যাপ্লিকেশনকে আরও সহজ করে তোলে
  • লাইটইনজেক্ট - একটি অতি হালকা ওজনের আইওসি ধারক
  • সিম্পল ইনজেক্টর - সিম্পল ইনজেক্টর .NET 4+ এর জন্য ব্যবহারযোগ্য একটি সহজ ডিপেন্ডেন্সি ইনজেকশন (ডিআই) লাইব্রেরি যা ইউনিভার্সাল অ্যাপস এবং মনোতে সিলভারলাইট 4+, উইন্ডোজ ফোন 8, উইন্ডোজ 8 সমর্থন করে।
  • মাইক্রোসফ্ট. এক্সটেনশনগুলি.নির্ভরতা ইনজেকশন - এএসপি.নেট কোর অ্যাপ্লিকেশনগুলির জন্য ডিফল্ট আইওসি ধারক।
  • স্ক্রুরিটর - মাইক্রোসফ্টের জন্য এসেম্বলির স্ক্যানিং এক্সটেনশনগুলি x
  • ভিএস এমইএফ - ভিজুয়াল স্টুডিও দ্বারা ব্যবহৃত এক্সটেনসিবিলিটি ফ্রেমওয়ার্ক (এমইএফ) বাস্তবায়ন।
  • টিনিআইওসি - ছোট প্রকল্প, লাইব্রেরি এবং নতুনদের জন্য একইভাবে ব্যবহার করা সহজ, ঝামেলা মুক্ত, কন্ট্রোল কনটেনারের বিবর্তন।

আসল উত্তর অনুসরণ।


আমি মনে করি আমি এখানে কিছুটা পিক হতে পারি তবে এটি লক্ষ করা গুরুত্বপূর্ণ যে ডিআই (ডিপেন্ডেন্সি ইনজেকশন) একটি প্রোগ্রামিং প্যাটার্ন এবং এটি দ্বারা সহজতর করা হয়েছে, তবে কোনও আইওসি (নিয়ন্ত্রণের বিপরীতমুখী) কাঠামোর প্রয়োজন নেই। আইওসি ফ্রেমওয়ার্কগুলি কেবল ডিআই কে আরও সহজ করে তোলে এবং তারা ডিআই ও তার চেয়েও বেশি অন্যান্য সুবিধাগুলি সরবরাহ করে।

যা বলা হচ্ছে, আমি নিশ্চিত আপনি যা চাইছিলেন তা নিশ্চিত। আইওসি ফ্রেমওয়ার্ক সম্পর্কে; আমি ব্যবহার করতে ব্যবহৃত Spring.Net এবং CastleWindsor অনেক, কিন্তু পিছনে বাস্তব ব্যথা সব যে বিরক্তিকর এক্সএমএল কনফিগ আপনি লিখতে ছিল ছিল! তারা এখন এতদূর এগিয়ে চলেছে, তাই আমি গত এক বছর ধরে স্ট্রাকচারম্যাপ ব্যবহার করে আসছি এবং যেহেতু এটি দৃ typ়ভাবে টাইপ করা জেনেরিকস এবং একটি রেজিস্ট্রি ব্যবহার করে একটি সাবলীল কনফিগারেশনে স্থানান্তরিত হয়েছে, তাই আইওসি ব্যবহারে আমার ব্যথার বাধাটি নেমে গেছে শূন্য নীচের! আমার আইওসি কনফিগারেশনটি সংকলন-সময়ে পরীক্ষা করা হয়েছে (বেশিরভাগ অংশে) এবং স্ট্রাকচার্যাপ এবং এর গতি নিয়ে আমার আনন্দ ছাড়া আর কিছুই হয়নি, তা জানতে পেরে আমি এখন এক পরম কিক পেয়েছি। আমি এটি বলব না যে রানটাইমের সময় অন্যরা ধীর ছিল, তবে আমার পক্ষে সেটআপ করা তাদের পক্ষে আরও কঠিন ছিল এবং হতাশা প্রায়শই দিনটি জিতেছিল।

হালনাগাদ

আমি আমার সর্বশেষ প্রকল্পে নিনজেক্ট ব্যবহার করছি এবং এটি ব্যবহারে পরম আনন্দ হয়েছে। শব্দগুলি এখানে আমাকে কিছুটা ব্যর্থ করে, কিন্তু (আমরা যুক্তরাজ্যে যেমন বলেছি) এই কাঠামোটি 'কুকুর'। আপনি যে কোনও সবুজ ক্ষেত্রের প্রকল্পের জন্য খুব তাড়াতাড়ি সুপারিশ করব যেখানে আপনি উঠে যেতে এবং দ্রুত চালাতে চান। জাস্টিন ইথেরডেজের নিনজেক্ট স্ক্রিনকাস্টগুলির দুর্দান্ত সেট থেকে আমার যা কিছু প্রয়োজন তা পেয়েছি । আমি দেখতে পাচ্ছি না যে বিদ্যমান কোডগুলিতে রেট্রো-ফিটিং নিিনজেক্ট মোটেও সমস্যা হয়ে দেখা হচ্ছে, তবে তারপরে স্ট্রাকচারম্যাপের ক্ষেত্রেও আমার অভিজ্ঞতায় একই কথা বলা যেতে পারে । এই দু'জনের মধ্যে এগিয়ে যাওয়া শক্ত বিকল্প হবে, তবে স্থবিরতার চেয়ে আমার প্রতিযোগিতা হবে এবং সেখানে বেশ কিছুটা স্বাস্থ্যকর প্রতিযোগিতা রয়েছে।

অন্যান্য আইওসি স্ক্রিনকাস্টগুলি এখানে ডাইমকাস্টে পাওয়া যাবে


1
এটি একটি লাইন সম্পর্কে ভাল মানের চিন্তাভাবনা করা উত্তর দেখতে দুর্দান্ত। আপনি আমাকে স্ট্রাকচারম্যাপ চেক করতে রাজি করলেন।
ক্রিস মারাস্তি-জর্জি

7
সুন্দর তবে সুষ্ঠু হতে পারে - উইন্ডসর এখন খুব সুন্দর একটি সম্পূর্ণ সাবলীল সাবলীল ইন্টারফেস আছে।
ক্রিজিসটফ কোজমিক

আইওসি ফ্রেমওয়ার্কগুলি ডিআইয়ের সহজ বাস্তবায়ন ছাড়াও "অন্যান্য সুবিধাগুলির হোস্ট" কী কী তা আপনি ব্যাখ্যা করতে পারেন?
fearofawhackplanet

আইওসি কন্টেইনারটি কেবলমাত্র একটি কাজই করতে পারে না যা ফায়ারওফ্যাকহ্যাকপ্ল্যানেট দরিদ্র মানুষের ডিআই হ'ল ইন্টারসেপশন । এখানে ভাল সারসংক্ষেপ: kenneth-truyers.net/2013/05/16/…
ম্যাথিউ

1
আমি বেশ কয়েকটি উত্স পড়েছি যেগুলি বলে যে নিনজেক্ট হ'ল ধীরে ধীরে পামমিডিয়া / / ব্লগ / ২০১১ / ৮ / ৩০ /… এবং stackoverflow.com/questions/4581791/...
লুক টি ও'ব্রায়েন

77

এটি আপনি যা খুঁজছেন তার উপর নির্ভর করে যেমন তাদের প্রত্যেকের পক্ষে মতামত রয়েছে।

  1. Spring.NETজাভা বিশ্ব থেকে স্প্রিংয়ের আগমনটি সবচেয়ে পরিপক্ক। স্প্রিংয়ের ফ্রেমওয়ার্ক লাইব্রেরির একটি খুব সমৃদ্ধ সেট রয়েছে যা এটি ওয়েব, উইন্ডোজ ইত্যাদি সমর্থন করতে প্রসারিত করে extend
  2. Castle Windsor.NET প্ল্যাটফর্মে সর্বাধিক ব্যবহৃত হয় এবং এর বৃহত্তম বাস্তুতন্ত্র রয়েছে, অত্যন্ত কনফিগারযোগ্য / এক্সটেনসিবল, কাস্টম আজীবন পরিচালনা, এওপি সমর্থন, অন্তর্নিহিত এনএইচবারনেট সমর্থন রয়েছে এবং এটি হ'ল ভয়ঙ্কর ধারক। উইন্ডসর পুরো স্ট্যাকের একটি অংশ যার মধ্যে মনোরেল, অ্যাক্টিভ রেকর্ড ইত্যাদি অন্তর্ভুক্ত থাকে N
  3. Structure Map একটি অভ্যন্তরীণ ডিএসএল এর মাধ্যমে খুব সমৃদ্ধ এবং সূক্ষ্ম দানযুক্ত কনফিগারেশন রয়েছে।
  4. Autofacএটি সমস্ত সহজাত কার্যকরী প্রোগ্রামিং সমর্থন সহ নতুন যুগের একটি আইওসি ধারক। এটি অন্যদের তুলনায় আজীবন পরিচালনার ক্ষেত্রে পৃথক পদ্ধতি গ্রহণ করে। অটোফ্যাকটি এখনও খুব নতুন, তবে এটি আইওসির মাধ্যমে কী সম্ভব তা বারকে চাপ দেয়।
  5. Ninject আমি শুনেছি কম খালি আরও হাড় হ'ল কম পদ্ধতির (শুনেছি অভিজ্ঞ নয়)।
  6. এর বৃহত্তম বৈষম্যমূলক Unity: এটি মাইক্রোসফ্ট (পি ও পি) দ্বারা এবং সমর্থন করে। Ityক্যের খুব ভাল পারফরম্যান্স, এবং দুর্দান্ত ডকুমেন্টেশন রয়েছে। এটি অত্যন্ত কনফিগারযোগ্যও। এটিতে ক্যাসল / স্ট্রাকচার মানচিত্র বলার সমস্ত ঘণ্টা এবং হুইসেল নেই।

সুতরাং সংক্ষেপে, এটি আপনার পক্ষে কী গুরুত্বপূর্ণ তা নির্ভর করে। আমি অন্যের সাথে যেতে এবং মূল্যায়ন করতে এবং কোনটি ফিট করে তা দেখার সাথে একমত হব। সুন্দর জিনিস হ'ল আপনার কাছে একটি জেলি থাকার চেয়ে ডোনটগুলির একটি দুর্দান্ত নির্বাচন রয়েছে।


4
অটোফ্যাক আসলে তেমন নতুন নয়, এটি ইউনিটির চেয়ে পুরনো :)
নিকোলাস ব্লুমহার্ট

1
আমি কি বলেছিলাম এটি Unক্যের চেয়ে নতুন ছিল? আমি বলেছিলাম এটি নতুন যুগের ... অর্থাৎ আমি বোঝাতে চাইছি এটি কার্যকরী প্রকৃতি। ঠিক আছে, আমি যা বলেছিলাম এটি এখনও খুব নতুন, আমি কী বোঝাতে চাইছি এটি প্রকৃতি ছিল না যে এটি আইটি নতুন ছিল। :-)
গ্লেন ব্লক

2
@ ক্রিজিস্ফটফ - আমি ইউনিটির মৃতদেহকে সহজ (কমপক্ষে কোডে সাবলীলভাবে কনফিগার করার সময়) খুঁজে পাই। আপনি কি বেদনাদায়ক পেয়েছেন?
ট্রুউইল


6
এখানে একটি আকর্ষণীয় পারফরম্যান্সের মানদণ্ড রয়েছে: پامমিডিয়া.ডে
স্টিভেন

35

Autofac। https://github.com/autofac/Autofac এটি সত্যিই দ্রুত এবং সুন্দর। এখানে তুলনার সাথে একটি লিঙ্ক দেওয়া হয়েছে (নিনজেক্ট একটি মেমরি ফাঁসের বিষয়টি ঠিক করার পরে তৈরি করা হয়েছে)।

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


আমি অটোফ্যাক পছন্দ করি তবে এটি অবশ্যই দ্রুত নয়। স্টিভেন উপরোক্তভাবে
সাগান

18

নিনজেক্ট দুর্দান্ত। এটি সত্যিই দ্রুত বলে মনে হচ্ছে, তবে আমি কোনও তুলনা করি নি। আমি জানি নাট, লেখক, নিনজেক্ট এবং অন্যান্য ডিআই ফ্রেমওয়ার্কগুলির মধ্যে কিছু তুলনা করেছেন এবং নিনজেক্টের গতি উন্নত করার আরও উপায়ের সন্ধান করছেন।

আমি স্ট্রাকচারম্যাপ এবং ক্যাসেলওয়াইন্ডসর সম্পর্কে ভাল কথা বলার প্রচুর লোককে শুনেছি। আমার মনে যারা এই মুহূর্তে তাকানোর জন্য বড় তিন।


1
নিনজেক্ট জনপ্রিয় তবে এটি অবশ্যই দ্রুত নয়। এটি আসলে সেখানে ধীর গতির মধ্যে একটি: پامমিডিয়া.ডে
সাগান

13

আমি সাধারণ ইনজেক্টর ব্যবহার করি :

সিম্পল ইনজেক্টর হ'ল একটি সহজ, নমনীয় এবং দ্রুত নির্ভরতা ইনজেকশন লাইব্রেরি যা সাফল্যের গর্তের দিকে আপনার সমাধানগুলিতে গাইড করতে সেরা অনুশীলন ব্যবহার করে।



4
স্টিভেন সিম্পল ইনজেক্টর এর স্রষ্টাও ... সুতরাং এটি একটি স্প্যামি জবাবের মতো ... বিশেষত যে এটি কোনও ওয়েল অ্যাকাউন্ট ব্যবহার করেছিল ... সাধারণ ইনজেক্টর যদিও খুব দ্রুত: ইনজেক্টর পামমেডিয়া.ডি ব্লগ ২০১১ /
8/30

8

আমি ক্যাসেলের বিশাল ফ্যান। আইওসি কনটেইনার গল্পের বাইরেও যে সুবিধা সরবরাহ করে তা আমি পছন্দ করি। এটি এনএইচবারনেট, লগিং, এওপি ইত্যাদি ব্যবহার করে সত্যই সরল করে দেয় আমিও বুয়ের সাথে কনফিগারেশনের জন্য বিনসরকে ব্যবহার করি এবং এর কারণে একটি ভাষা হিসাবে সত্যই বো এর প্রেমে পড়েছি


5

আমি নিনজেক্টের প্রস্তাব দিতে পারি। এটি অবিশ্বাস্যভাবে দ্রুত এবং সহজেই ব্যবহারযোগ্য তবে কেবল যদি আপনার এক্সএমএল কনফিগারেশন প্রয়োজন না হয় তবে অন্যথায় আপনার উইন্ডসর ব্যবহার করা উচিত।


1
এটি দ্রুত নয়! এটি বাইরে ধীরে ধীরে ডিআই ফ্রেমওয়ার্কগুলির মধ্যে একটি! پامমিডিয়া.ডে
সাগান

@ সেরজ সাগান ন্যায্য হওয়ার জন্য, এই ফলাফলগুলি প্রাচীন (এখন old বছর বয়সী)
টিমোথি কানস্কি


5

আমি সবচেয়ে সহজ স্প্রিং.এনইটি উদাহরণ কাজ করার জন্য সাফল্য ছাড়াই লড়াইয়ের দিনের আরও ভাল অংশ ব্যয় করেছি। এক্সএমএল ফাইল থেকে আমার সমাবেশটি এটি কীভাবে পাবেন তা কখনই অনুমান করতে পারিনি। প্রায় ২ ঘন্টার মধ্যে, অন্যদিকে, আমি নুনজিট এবং এমএসটিস্ট উভয়ের সাথে পরীক্ষার সংহতকরণ সহ নিনজেক্টের কাজ করতে সক্ষম হয়েছি।


4

আমি অতীতে স্প্রিং.নেট ব্যবহার করেছি এবং এর সাথে দুর্দান্ত সাফল্য পেয়েছি । আমি এটির সাথে কোনও তাত্পর্যপূর্ণ ওভারহেড কখনই লক্ষ্য করিনি, যদিও আমরা যে প্রকল্পটি এটি ব্যবহার করেছিলাম এটি তার নিজের থেকে বেশ ভারী। এটি সেট আপ পেতে ডকুমেন্টেশনের মাধ্যমে পড়তে কেবল একটু সময় নিয়েছিল ।


2

সি # এর দুর্দান্ত জিনিসটি এটি বছরের আগে জাভা বিকাশকারীদের দ্বারা পরাজিত একটি পথ অনুসরণ করছে। সুতরাং, আমার পরামর্শ, সাধারণত এই প্রকৃতির সরঞ্জামগুলির সন্ধান করার সময় বলা হয়, শক্ত জাভা উত্তরের সন্ধান করা এবং এখনও কোনও নেট নেট রূপান্তর আছে কিনা তা দেখুন।

সুতরাং এটি যখন ডিআই এর কথা আসে (এবং সেখানে প্রচুর বিকল্প রয়েছে, এটি সত্যই স্বাদের বিষয়) স্প্রিং.নেট । অতিরিক্তভাবে, প্রকল্পগুলির পিছনে থাকা লোকদের সম্পর্কে গবেষণা করা সর্বদা বুদ্ধিমানের কাজ। উত্স নিয়ন্ত্রণের জন্য সোর্সগিয়ার পণ্যগুলি প্রস্তাব করার কোনও সমস্যা নেই (সেগুলি ব্যবহারের বাইরে) কারণ আমার এরিক সিঙ্কের প্রতি শ্রদ্ধা রয়েছে। আমি মার্ক পোল্যাককে কথা বলতে দেখেছি এবং আমি কী বলতে পারি, লোকটি কেবল এটি পেয়েছে।

শেষ পর্যন্ত, অনেকগুলি ডিআই ফ্রেমওয়ার্ক রয়েছে এবং আপনার সেরা বেট হ'ল কয়েকটিগুলির সাথে কয়েকটি নমুনা প্রকল্প করা এবং শিক্ষিত পছন্দ করা।

শুভকামনা!


2

আমি মনে করি যে শুরু করার জন্য একটি ভাল জায়গা নিনজেক্টের সাথে রয়েছে, এটি নতুন এবং এটি খুব সূক্ষ্ম সুরের বিষয়টি বিবেচনায় নিয়েছে এবং সত্যিই দ্রুত। নেট, বিকাশকারী, সত্যিই একটি দুর্দান্ত সাইট এবং দুর্দান্ত সমর্থন রয়েছে।


আপনি কেন তাড়াতাড়ি বলছেন ??? এটি যে ধীরতম একটি এটি! پامমিডিয়া.ডে
সাগান

2

স্প্রিং.নেট বেশ শক্ত, তবে ডকুমেন্টেশনটি কিছুটা সময় নেয়। অটোফ্যাক ভাল, এবং। নেট 2.0 সমর্থিত হওয়ার সময় এটি সংকলনের জন্য আপনার ভিএস 2008 দরকার, অন্যথায় আপনার অ্যাপ্লিকেশনটি তৈরি করতে কমান্ড লাইনটি ব্যবহার করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.