আমরা এএসপিএনটি এমভিসি ব্যবহার করছি।
এর মধ্যে কোনটি সেরা ডিআই ফ্রেমওয়ার্ক নিনজেক্ট বা ityক্য এবং কেন?
আমরা এএসপিএনটি এমভিসি ব্যবহার করছি।
এর মধ্যে কোনটি সেরা ডিআই ফ্রেমওয়ার্ক নিনজেক্ট বা ityক্য এবং কেন?
উত্তর:
গতবার আমি তাদের দুজনের দিকে তাকিয়ে দেখলাম নিনজেক্ট কিছুটা ভাল। তবে দুজনেরই ত্রুটি রয়েছে।
নিনজকের আরও ভাল সাবলীল-কনফিগারেশন স্কিম রয়েছে। Ityক্য বেশিরভাগ XML কনফিগারেশনের উপর নির্ভর করে বলে মনে হচ্ছে। নিনজেক্টের প্রধান অপূর্ণতা হ'ল এটির জন্য আপনাকে নাইনজেক্টের রেফারেন্স দেওয়া দরকার [[ইনজেক্ট] বৈশিষ্ট্য যুক্ত করতে আপনার কোডের যেকোন জায়গায় কোর ore
যদি আমি জিজ্ঞাসা করতে পারি, আপনি কেন এই দুটিতে আপনার পছন্দ সীমাবদ্ধ করছেন? আমি মনে করি ক্যাসেল.উইন্ডসোর, অটোফ্যাক এবং স্ট্রাকচারম্যাপ কমপক্ষে হিসাবে ভাল বা আরও ভাল।
আমি জানি এটি একটি পুরানো প্রশ্ন, তবে এখানে আমার চিন্তাভাবনাগুলি:
আমি ব্যক্তিগতভাবে নিনজেক্ট পছন্দ করি। আমি সাবলীল ইন্টারফেস এবং এক্সএমএল এড়ানো পছন্দ করি। আমি সাধারণত এক্সএমএল পছন্দ করি, কেবল এই ধরণের কনফিগার সামগ্রীর জন্য নয়। বিশেষত যখন রিফ্যাক্টরিং জড়িত থাকে অনর্গল ইন্টারফেসগুলি এটি সংশোধন করা সহজ করে তোলে।
আমি স্ট্রাকচারম্যাপের অবজেক্টফ্যাক্টরিটি মিস করছি, তবে এটিকে নিনেক্টে যুক্ত করার জন্য সহজ ওয়ার্কআরউন্ডস রয়েছে।
জেফারি যেমন উল্লেখ করেছে যে আপনার কেবলমাত্র একজন নির্মাণকারী থাকলে আপনাকে [ইনজেক্ট] বৈশিষ্ট্যটি ব্যবহার করতে হবে না।
আমি দেখতে পেয়েছি যে আমি অনর্গল ইন্টারফেসগুলি কেবলমাত্র এক্সএমএল এড়ানোর জন্যই পছন্দ করি না, কারণ যখন আমি তাদের প্রভাবিত করে এমন কিছু পরিবর্তন করি তখন তারা সংকলন সময়ের ত্রুটির কারণ হয়ে থাকে। এক্সএমএল কনফিগারেশন হ'ল না এবং আমার থেকে আরও ভাল পরিবর্তন করার জন্য আমাকে যত কম মনে করতে হবে।
আমি মেনডেল্টের সাথে একমত, কোনও "সেরা" ডিআই কাঠামো নেই। এটি কেবল পরিস্থিতির উপর নির্ভর করে এবং তাদের সকলের পক্ষে মতামত রয়েছে। মনে করুন ডেভিড হেডেন ডটনেট রকসে বলেছিলেন যে আপনি যদি বাকি এন্টলিব ব্যবহার করেন এবং তার সাথে পরিচিত হন তবে ityক্যই পছন্দসই পছন্দ। আমি ব্যক্তিগতভাবে ityক্যটি ব্যবহার করি কারণ আমার গ্রাহকরা এই সত্যটি পছন্দ করে যে এটি ডিএলএলগুলিতে মাইক্রোসফ্ট এন্টারপ্রাইজ লাইব্রেরি (ইউনিটি) বলেছে , যদি আপনি আইএমএম কী বলছেন।
আমি ইন্টারফেস এবং তাদের কংক্রিট বাস্তবায়ন স্থাপনের জন্য উভয় এক্সএমএল কনফিগারেশন ব্যবহার করি তবে তারপরে ইনজেকশন দেওয়ার সময় আমি কোডে বৈশিষ্ট্যগুলি ব্যবহার করি, যেমন:
<type type="ILogger" mapTo="EntLibLogger">
<lifetime type="singleton"/>
</type>
এবং কোডে:
[InjectionConstructor]
public Repository([Dependency] ILogger logger)
ব্যক্তিগতভাবে আমি মনে করি এটি যা ঘটে তা পরিষ্কার করে তোলে, তবে অবশ্যই একটি যুক্তি দিতে পারে যে আপনার সমস্ত প্রয়োগের ক্ষেত্রে আপনার unityক্যের উল্লেখ থাকবে। এটা আপনার উপর নির্ভর করছে.
http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison
Ityক্য দ্রুত তবে এটি সেরা নয়