কোন সি # /। নেট ডিপেন্ডেন্সি ইনজেকশন ফ্রেমওয়ার্কগুলি মূল্যবান? এবং তাদের জটিলতা এবং গতি সম্পর্কে আপনি কী বলতে পারেন।
কোন সি # /। নেট ডিপেন্ডেন্সি ইনজেকশন ফ্রেমওয়ার্কগুলি মূল্যবান? এবং তাদের জটিলতা এবং গতি সম্পর্কে আপনি কী বলতে পারেন।
উত্তর:
সম্পাদনা করুন (লেখকের দ্বারা নয়): এখানে আইওসি ফ্রেমওয়ার্কের একটি বিস্তৃত তালিকা রয়েছে https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc এ উপলব্ধ :
আসল উত্তর অনুসরণ।
আমি মনে করি আমি এখানে কিছুটা পিক হতে পারি তবে এটি লক্ষ করা গুরুত্বপূর্ণ যে ডিআই (ডিপেন্ডেন্সি ইনজেকশন) একটি প্রোগ্রামিং প্যাটার্ন এবং এটি দ্বারা সহজতর করা হয়েছে, তবে কোনও আইওসি (নিয়ন্ত্রণের বিপরীতমুখী) কাঠামোর প্রয়োজন নেই। আইওসি ফ্রেমওয়ার্কগুলি কেবল ডিআই কে আরও সহজ করে তোলে এবং তারা ডিআই ও তার চেয়েও বেশি অন্যান্য সুবিধাগুলি সরবরাহ করে।
যা বলা হচ্ছে, আমি নিশ্চিত আপনি যা চাইছিলেন তা নিশ্চিত। আইওসি ফ্রেমওয়ার্ক সম্পর্কে; আমি ব্যবহার করতে ব্যবহৃত Spring.Net এবং CastleWindsor অনেক, কিন্তু পিছনে বাস্তব ব্যথা সব যে বিরক্তিকর এক্সএমএল কনফিগ আপনি লিখতে ছিল ছিল! তারা এখন এতদূর এগিয়ে চলেছে, তাই আমি গত এক বছর ধরে স্ট্রাকচারম্যাপ ব্যবহার করে আসছি এবং যেহেতু এটি দৃ typ়ভাবে টাইপ করা জেনেরিকস এবং একটি রেজিস্ট্রি ব্যবহার করে একটি সাবলীল কনফিগারেশনে স্থানান্তরিত হয়েছে, তাই আইওসি ব্যবহারে আমার ব্যথার বাধাটি নেমে গেছে শূন্য নীচের! আমার আইওসি কনফিগারেশনটি সংকলন-সময়ে পরীক্ষা করা হয়েছে (বেশিরভাগ অংশে) এবং স্ট্রাকচার্যাপ এবং এর গতি নিয়ে আমার আনন্দ ছাড়া আর কিছুই হয়নি, তা জানতে পেরে আমি এখন এক পরম কিক পেয়েছি। আমি এটি বলব না যে রানটাইমের সময় অন্যরা ধীর ছিল, তবে আমার পক্ষে সেটআপ করা তাদের পক্ষে আরও কঠিন ছিল এবং হতাশা প্রায়শই দিনটি জিতেছিল।
হালনাগাদ
আমি আমার সর্বশেষ প্রকল্পে নিনজেক্ট ব্যবহার করছি এবং এটি ব্যবহারে পরম আনন্দ হয়েছে। শব্দগুলি এখানে আমাকে কিছুটা ব্যর্থ করে, কিন্তু (আমরা যুক্তরাজ্যে যেমন বলেছি) এই কাঠামোটি 'কুকুর'। আপনি যে কোনও সবুজ ক্ষেত্রের প্রকল্পের জন্য খুব তাড়াতাড়ি সুপারিশ করব যেখানে আপনি উঠে যেতে এবং দ্রুত চালাতে চান। জাস্টিন ইথেরডেজের নিনজেক্ট স্ক্রিনকাস্টগুলির দুর্দান্ত সেট থেকে আমার যা কিছু প্রয়োজন তা পেয়েছি । আমি দেখতে পাচ্ছি না যে বিদ্যমান কোডগুলিতে রেট্রো-ফিটিং নিিনজেক্ট মোটেও সমস্যা হয়ে দেখা হচ্ছে, তবে তারপরে স্ট্রাকচারম্যাপের ক্ষেত্রেও আমার অভিজ্ঞতায় একই কথা বলা যেতে পারে । এই দু'জনের মধ্যে এগিয়ে যাওয়া শক্ত বিকল্প হবে, তবে স্থবিরতার চেয়ে আমার প্রতিযোগিতা হবে এবং সেখানে বেশ কিছুটা স্বাস্থ্যকর প্রতিযোগিতা রয়েছে।
অন্যান্য আইওসি স্ক্রিনকাস্টগুলি এখানে ডাইমকাস্টে পাওয়া যাবে ।
এটি আপনি যা খুঁজছেন তার উপর নির্ভর করে যেমন তাদের প্রত্যেকের পক্ষে মতামত রয়েছে।
Spring.NET
জাভা বিশ্ব থেকে স্প্রিংয়ের আগমনটি সবচেয়ে পরিপক্ক। স্প্রিংয়ের ফ্রেমওয়ার্ক লাইব্রেরির একটি খুব সমৃদ্ধ সেট রয়েছে যা এটি ওয়েব, উইন্ডোজ ইত্যাদি সমর্থন করতে প্রসারিত করে extendCastle Windsor
.NET প্ল্যাটফর্মে সর্বাধিক ব্যবহৃত হয় এবং এর বৃহত্তম বাস্তুতন্ত্র রয়েছে, অত্যন্ত কনফিগারযোগ্য / এক্সটেনসিবল, কাস্টম আজীবন পরিচালনা, এওপি সমর্থন, অন্তর্নিহিত এনএইচবারনেট সমর্থন রয়েছে এবং এটি হ'ল ভয়ঙ্কর ধারক। উইন্ডসর পুরো স্ট্যাকের একটি অংশ যার মধ্যে মনোরেল, অ্যাক্টিভ রেকর্ড ইত্যাদি অন্তর্ভুক্ত থাকে NStructure Map
একটি অভ্যন্তরীণ ডিএসএল এর মাধ্যমে খুব সমৃদ্ধ এবং সূক্ষ্ম দানযুক্ত কনফিগারেশন রয়েছে।Autofac
এটি সমস্ত সহজাত কার্যকরী প্রোগ্রামিং সমর্থন সহ নতুন যুগের একটি আইওসি ধারক। এটি অন্যদের তুলনায় আজীবন পরিচালনার ক্ষেত্রে পৃথক পদ্ধতি গ্রহণ করে। অটোফ্যাকটি এখনও খুব নতুন, তবে এটি আইওসির মাধ্যমে কী সম্ভব তা বারকে চাপ দেয়।Ninject
আমি শুনেছি কম খালি আরও হাড় হ'ল কম পদ্ধতির (শুনেছি অভিজ্ঞ নয়)।Unity
: এটি মাইক্রোসফ্ট (পি ও পি) দ্বারা এবং সমর্থন করে। Ityক্যের খুব ভাল পারফরম্যান্স, এবং দুর্দান্ত ডকুমেন্টেশন রয়েছে। এটি অত্যন্ত কনফিগারযোগ্যও। এটিতে ক্যাসল / স্ট্রাকচার মানচিত্র বলার সমস্ত ঘণ্টা এবং হুইসেল নেই।সুতরাং সংক্ষেপে, এটি আপনার পক্ষে কী গুরুত্বপূর্ণ তা নির্ভর করে। আমি অন্যের সাথে যেতে এবং মূল্যায়ন করতে এবং কোনটি ফিট করে তা দেখার সাথে একমত হব। সুন্দর জিনিস হ'ল আপনার কাছে একটি জেলি থাকার চেয়ে ডোনটগুলির একটি দুর্দান্ত নির্বাচন রয়েছে।
Autofac। https://github.com/autofac/Autofac এটি সত্যিই দ্রুত এবং সুন্দর। এখানে তুলনার সাথে একটি লিঙ্ক দেওয়া হয়েছে (নিনজেক্ট একটি মেমরি ফাঁসের বিষয়টি ঠিক করার পরে তৈরি করা হয়েছে)।
http://www.codinginstinct.com/2008/05/ioc-container-benchmark-rerevisted.html
নিনজেক্ট দুর্দান্ত। এটি সত্যিই দ্রুত বলে মনে হচ্ছে, তবে আমি কোনও তুলনা করি নি। আমি জানি নাট, লেখক, নিনজেক্ট এবং অন্যান্য ডিআই ফ্রেমওয়ার্কগুলির মধ্যে কিছু তুলনা করেছেন এবং নিনজেক্টের গতি উন্নত করার আরও উপায়ের সন্ধান করছেন।
আমি স্ট্রাকচারম্যাপ এবং ক্যাসেলওয়াইন্ডসর সম্পর্কে ভাল কথা বলার প্রচুর লোককে শুনেছি। আমার মনে যারা এই মুহূর্তে তাকানোর জন্য বড় তিন।
আমি সাধারণ ইনজেক্টর ব্যবহার করি :
সিম্পল ইনজেক্টর হ'ল একটি সহজ, নমনীয় এবং দ্রুত নির্ভরতা ইনজেকশন লাইব্রেরি যা সাফল্যের গর্তের দিকে আপনার সমাধানগুলিতে গাইড করতে সেরা অনুশীলন ব্যবহার করে।
আমি ক্যাসেলের বিশাল ফ্যান। আইওসি কনটেইনার গল্পের বাইরেও যে সুবিধা সরবরাহ করে তা আমি পছন্দ করি। এটি এনএইচবারনেট, লগিং, এওপি ইত্যাদি ব্যবহার করে সত্যই সরল করে দেয় আমিও বুয়ের সাথে কনফিগারেশনের জন্য বিনসরকে ব্যবহার করি এবং এর কারণে একটি ভাষা হিসাবে সত্যই বো এর প্রেমে পড়েছি ।
আমি নিনজেক্টের প্রস্তাব দিতে পারি। এটি অবিশ্বাস্যভাবে দ্রুত এবং সহজেই ব্যবহারযোগ্য তবে কেবল যদি আপনার এক্সএমএল কনফিগারেশন প্রয়োজন না হয় তবে অন্যথায় আপনার উইন্ডসর ব্যবহার করা উচিত।
আমি সবচেয়ে সহজ স্প্রিং.এনইটি উদাহরণ কাজ করার জন্য সাফল্য ছাড়াই লড়াইয়ের দিনের আরও ভাল অংশ ব্যয় করেছি। এক্সএমএল ফাইল থেকে আমার সমাবেশটি এটি কীভাবে পাবেন তা কখনই অনুমান করতে পারিনি। প্রায় ২ ঘন্টার মধ্যে, অন্যদিকে, আমি নুনজিট এবং এমএসটিস্ট উভয়ের সাথে পরীক্ষার সংহতকরণ সহ নিনজেক্টের কাজ করতে সক্ষম হয়েছি।
আমি অতীতে স্প্রিং.নেট ব্যবহার করেছি এবং এর সাথে দুর্দান্ত সাফল্য পেয়েছি । আমি এটির সাথে কোনও তাত্পর্যপূর্ণ ওভারহেড কখনই লক্ষ্য করিনি, যদিও আমরা যে প্রকল্পটি এটি ব্যবহার করেছিলাম এটি তার নিজের থেকে বেশ ভারী। এটি সেট আপ পেতে ডকুমেন্টেশনের মাধ্যমে পড়তে কেবল একটু সময় নিয়েছিল ।
সি # এর দুর্দান্ত জিনিসটি এটি বছরের আগে জাভা বিকাশকারীদের দ্বারা পরাজিত একটি পথ অনুসরণ করছে। সুতরাং, আমার পরামর্শ, সাধারণত এই প্রকৃতির সরঞ্জামগুলির সন্ধান করার সময় বলা হয়, শক্ত জাভা উত্তরের সন্ধান করা এবং এখনও কোনও নেট নেট রূপান্তর আছে কিনা তা দেখুন।
সুতরাং এটি যখন ডিআই এর কথা আসে (এবং সেখানে প্রচুর বিকল্প রয়েছে, এটি সত্যই স্বাদের বিষয়) স্প্রিং.নেট । অতিরিক্তভাবে, প্রকল্পগুলির পিছনে থাকা লোকদের সম্পর্কে গবেষণা করা সর্বদা বুদ্ধিমানের কাজ। উত্স নিয়ন্ত্রণের জন্য সোর্সগিয়ার পণ্যগুলি প্রস্তাব করার কোনও সমস্যা নেই (সেগুলি ব্যবহারের বাইরে) কারণ আমার এরিক সিঙ্কের প্রতি শ্রদ্ধা রয়েছে। আমি মার্ক পোল্যাককে কথা বলতে দেখেছি এবং আমি কী বলতে পারি, লোকটি কেবল এটি পেয়েছে।
শেষ পর্যন্ত, অনেকগুলি ডিআই ফ্রেমওয়ার্ক রয়েছে এবং আপনার সেরা বেট হ'ল কয়েকটিগুলির সাথে কয়েকটি নমুনা প্রকল্প করা এবং শিক্ষিত পছন্দ করা।
শুভকামনা!
আমি মনে করি যে শুরু করার জন্য একটি ভাল জায়গা নিনজেক্টের সাথে রয়েছে, এটি নতুন এবং এটি খুব সূক্ষ্ম সুরের বিষয়টি বিবেচনায় নিয়েছে এবং সত্যিই দ্রুত। নেট, বিকাশকারী, সত্যিই একটি দুর্দান্ত সাইট এবং দুর্দান্ত সমর্থন রয়েছে।
স্প্রিং.নেট বেশ শক্ত, তবে ডকুমেন্টেশনটি কিছুটা সময় নেয়। অটোফ্যাক ভাল, এবং। নেট 2.0 সমর্থিত হওয়ার সময় এটি সংকলনের জন্য আপনার ভিএস 2008 দরকার, অন্যথায় আপনার অ্যাপ্লিকেশনটি তৈরি করতে কমান্ড লাইনটি ব্যবহার করুন।