সমাবেশ বনাম DLL
একটি লাইব্রেরি হল সম্পদের একটি সংগ্রহ যা অ্যাপ্লিকেশন বিকাশ করতে ব্যবহার করা যেতে পারে। একটি লাইব্রেরি সাধারণত সাবরুটিন, ফাংশন, ক্লাস, মান এবং প্রকারগুলি নিয়ে গঠিত। লিঙ্কিং প্রক্রিয়া চলাকালীন (সাধারণত একটি লিঙ্কার দ্বারা করা হয়), লাইব্রেরি এবং এক্সিকিউটেবল একে অপরের উল্লেখ করে। DLL ফাইলগুলি হল লাইব্রেরি ফাইল যা গতিশীলভাবে লিঙ্ক করা হয়। DLL মাইক্রোসফ্ট দ্বারা বিকশিত হয়েছিল। কিন্তু DLL ফাইলের কিছু সমস্যার কারণে মাইক্রোসফট এসেম্বলি ফাইল ফরম্যাট নিয়ে এসেছে (. NET ফ্রেমওয়ার্ক সহ)। অ্যাসেম্বলি ফাইলগুলি শারীরিকভাবে DLL-এর মতোই, তবে তাদের অনেক অভ্যন্তরীণ পার্থক্য রয়েছে৷
DLL কি?
ডাইনামিক লিংক লাইব্রেরি (সাধারণত DLL নামে পরিচিত) মাইক্রোসফ্ট দ্বারা তৈরি একটি শেয়ার্ড লাইব্রেরি বাস্তবায়ন। এটি.dll,.ocx বা.drv এক্সটেনশন ব্যবহার করে এবং সেগুলি মাইক্রোসফ্ট উইন্ডোজ এবং OS/2 অপারেটিং সিস্টেমে ব্যবহৃত হয়।.dll নিয়মিত DLL ফাইল দ্বারা ব্যবহৃত হয়। এবং.ocx এক্সটেনশনটি লাইব্রেরি দ্বারা ব্যবহৃত হয় যেখানে ActiveX নিয়ন্ত্রণ রয়েছে এবং.drv এক্সটেনশনটি লিগ্যাসি সিস্টেম ড্রাইভার ফাইল দ্বারা ব্যবহৃত হয়। DLL ফাইল ফরম্যাটটি Windows EXE ফাইলের মতোই (32-বিট/64-বিট উইন্ডোজে পোর্টেবল এক্সিকিউটেবল ফাইল এবং 16বিট উইন্ডোজে নতুন এক্সিকিউটেবল)। অতএব, কোড, ডেটা এবং সংস্থানগুলির যে কোনও সংমিশ্রণ DLL ফাইলগুলিতে থাকতে পারে (যেমন EXE ফাইলগুলিতে)। প্রকৃতপক্ষে, DLL ফাইল বিন্যাস সহ ডেটা ফাইলগুলিকে রিসোর্স DLL বলা হয়। আইকন লাইব্রেরি (.icl এক্সটেনশন সহ) এবং ফন্ট ফাইল (.fon এবং.fot এক্সটেনশন সহ) হল রিসোর্স DLL-এর উদাহরণ।
সেকশন নামক উপাদানগুলি একটি DLL তৈরি করে এবং প্রতিটি বিভাগের নিজস্ব বৈশিষ্ট্য রয়েছে যেমন শুধুমাত্র-পঠনযোগ্য/লেখাযোগ্য এবং এক্সিকিউটেবল/নন এক্সিকিউটেবল।কোড বিভাগগুলি নির্বাহযোগ্য, যখন ডেটা বিভাগগুলি নির্বাহযোগ্য নয়। কোড বিভাগগুলি ভাগ করা হয় এবং ডেটা বিভাগগুলি ব্যক্তিগত। এর মানে DLL ব্যবহার করে সমস্ত প্রক্রিয়া কোডের একই অনুলিপি ব্যবহার করবে, যখন প্রতিটি প্রক্রিয়ার ডেটার নিজস্ব অনুলিপি থাকবে। উইন্ডোজের প্রাথমিক ডাইনামিক লাইব্রেরি হল kernel32.dll, যেটিতে উইন্ডোজের বেস ফাংশন (ফাইল এবং মেমরি সম্পর্কিত কার্যকারিতা) রয়েছে। COM (কম্পোনেন্ট অবজেক্ট মডেল) হল DLL থেকে OOP (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) এর এক্সটেনশন। COM ফাইলের তুলনায় প্রচলিত DLL ব্যবহার করা সহজ৷
অ্যাসেম্বলি কি?
DLL ফাইলের সাথে উপস্থিত বিভিন্ন সমস্যা সমাধানের জন্য মাইক্রোসফ্ট দ্বারা অ্যাসেম্বলি ফাইলগুলি চালু করা হয়েছিল। অ্যাসেম্বলি ফাইলগুলি Microsoft. NET ফ্রেমওয়ার্কের সাথে চালু করা হয়েছিল। কার্যকারিতার একটি এক্সিকিউটেবল লজিক্যাল ইউনিটকে অ্যাসেম্বলি বলা হয়।. NET CLR (Common Language Runtime) এর অধীনে সমাবেশগুলি সম্পাদনযোগ্য। শারীরিকভাবে, সমাবেশগুলি EXE বা DLL ফাইল হিসাবে বিদ্যমান। কিন্তু, তারা মাইক্রোসফ্ট Win32 DLLs থেকে খুব আলাদা, অভ্যন্তরীণভাবে।একটি সমাবেশ ফাইল একটি ম্যানিফেস্ট, মেটাডেটা, MISL (মাইক্রোসফ্ট ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ কোড) এবং অন্যান্য সংস্থান দ্বারা গঠিত। একটি সমাবেশ স্ব-বর্ণনা করা হয়. ম্যানিফেস্টে নাম, সংস্করণ, সংস্কৃতি, শক্তিশালী নাম, ফাইলের তালিকা, প্রকার এবং নির্ভরতার মতো তথ্য রয়েছে। MISL কোড CLR এর মাধ্যমে কার্যকর করা হয় (এটি সরাসরি কার্যকর করা যায় না)।
সমাবেশ এবং DLL এর মধ্যে পার্থক্য কি?
DLL একটি গতিশীলভাবে সংযুক্ত লাইব্রেরি। যদিও, সমাবেশগুলি শারীরিকভাবে DLL এর সমান, তারা অভ্যন্তরীণভাবে খুব আলাদা। DLL-এর একটি সেটের মধ্যে সামঞ্জস্য বজায় রাখা সম্ভব নয়, কিন্তু CLR সমাবেশগুলির একটি সেটের মধ্যে ধারাবাহিকতা বজায় রাখতে পারে, কারণ সমাবেশগুলি স্ব-বর্ণনা করে (এগুলি অভ্যন্তরীণভাবে নির্ভরতার তালিকা ধারণ করে)। DLL-এর বিপরীতে, সংস্করণের তথ্য সমাবেশের জন্য প্রয়োগ করা হয় (CLR দ্বারা)। অ্যাসেম্বলির মাধ্যমে পাশাপাশি স্থাপনা (বিভিন্ন সংস্করণ ব্যবহার করে বিভিন্ন অ্যাপ্লিকেশন) সম্ভব।