আমি মনে করি আপনার প্রশ্নের উত্তর বেশিরভাগ historicalতিহাসিক, যদি আপনি দুটি লাইব্রেরি কীভাবে উত্থিত হয়েছিল এবং সময়ের সাথে বিবর্তিত হয়েছে সেদিকে ফিরে তাকান।
সংক্ষিপ্ত উত্তরটি হ'ল, যদি আপনি "অভিনব" কিছু না করেন তবে এটিএল ব্যবহার করুন। এটি সিএমএম সহ সাধারণ ব্যবহারকারী ইন্টারফেসের জন্য দুর্দান্ত for
দীর্ঘ উত্তর: এমএফসিটি 90 এর দশকের গোড়ার দিকে সি ++ নামে নতুন এই ভাষাটি ব্যবহার করে এটি উইন্ডোজে প্রয়োগ করার জন্য নির্মিত হয়েছিল built এটি ওএসের কাছে না থাকলে এটি অফিসটিকে উন্নয়ন সম্প্রদায়ের মতো বৈশিষ্ট্যগুলির মতো উপলভ্য করে তোলে।
[অলঙ্করণ সম্পাদনা করুন: আমি মাইক্রোসফ্টে কাজ করিনি, সুতরাং আমি কখনই অফিসে এমএফসি-তে নির্মিত হয়েছিল কিনা জানি না, তবে আমি মনে করি উত্তরটি না। উইন 3..১-এ ফিরে 95 days দিন, অফিস ইউআই টিম নতুন নিয়ন্ত্রণ উদ্ভাবন করবে, তাদের লাইব্রেরিতে প্যাকেজ করবে, তারপরে উইন্ডোজ এবং এমএফসি টিমগুলি পুনরায় বিতরণযোগ্য ডলসের সাহায্যে র্যাপার এবং এপিআই অন্তর্ভুক্ত করবে। আমি অনুমান করব যে এই দলগুলির মধ্যে কিছুটা সহযোগিতা এবং কোড ভাগাভাগি হয়েছিল। অবশেষে controls নিয়ন্ত্রণগুলি পরিষেবা প্যাকগুলিতে বা পরবর্তী উইন্ডোজ সংস্করণে বেস অপারেটিং সিস্টেমে রূপান্তরিত করে। এই প্যাটার্নটি অফিস রিবনের সাথে অব্যাহত ছিল যা অফিসে পাঠানোর পরে উইন্ডোজে অ্যাড-অন উপাদান হিসাবে যুক্ত হয়েছিল এবং এটি এখন উইন্ডোজ ওএসের অংশ।]
সেই সময় গ্রন্থাগারটি সি ++ ভাষা এবং সংকলক উভয়ই নতুন হওয়ায় এবং অফিস বিকশিত হওয়ার সাথে সাথে মাইক্রোসফ্ট এটি সময়ের সাথে সাথে তৈরি করেছিল, এটি বেশ আদিম ছিল।
এই ইতিহাসের কারণে, এমএফসি:
- একটি মোটামুটি clunky নকশা আছে। এটি উইন্ডোজ এপিআই এর চারপাশে হালকা মোড়ক হিসাবে শুরু হয়েছিল, তবে বেড়েছে। সংক্ষেপে কিছু 'বৈশিষ্ট্য' রয়েছে যা আবিষ্কার করতে হয়েছিল কারণ সংকলক এবং ভাষা কেবল তাদের সমর্থন করে না। কোনও টেম্পলেট ছিল না, তারা একটি স্ট্রিং ক্লাস আবিষ্কার করেছিল, তারা তালিকা ক্লাস আবিষ্কার করেছিল, তারা তাদের নিজস্ব রান টাইম টাইপ সনাক্তকরণ ইত্যাদি ডিজাইন করেছিল
- অফিস এবং উইন্ডোজ বিবর্তনের 20 বছরের ব্যবস্থাসমূহ, যা আপনি সম্ভবত কখনও ব্যবহার করবেন না এমন সামগ্রীর পুরো ক্র্যাপ লোড অন্তর্ভুক্ত করে: একক এবং একাধিক ডকুমেন্ট ইন্টারফেস, ডিডিই, সিওএম, সিওএম +, ডিসিওএম, ডকুমেন্ট লিঙ্কিং এবং এমবেডিং (যাতে আপনি কোনও ওয়ার্ড ডকুমেন্ট এম্বেড করতে পারেন আপনার অ্যাপ্লিকেশন যদি আপনি চান), অ্যাকটিভএক্স নিয়ন্ত্রণ (ওয়েবের জন্য এমবেডিং অবজেক্টের বিবর্তন!), স্ট্রাকচার্ড ডকুমেন্ট স্টোরেজ, সিরিয়ালাইজেশন এবং ভার্শনিং, অটোমেশন (ভিবিএর প্রথম দিক থেকে) এবং অবশ্যই এমভিসি। সর্বশেষতম সংস্করণগুলিতে ভিজ্যুয়াল স্টুডিও স্টাইলের উইন্ডো ডকিং এবং অফিসের ফিতাটির জন্য সমর্থন রয়েছে। মূলত 20 বছরের মধ্যে রেডমন্ডের বাইরে থাকা প্রতিটি প্রযুক্তি কোথাও না কোথাও রয়েছে। এটি কেবল বিশাল!
- আপনার কাছে কখনও ব্যবহার করা হবে না এমন জিনিসগুলির জন্য প্রচুর পরিমাণে ছোট্ট গোগাচা, বাগ, কর্মক্ষেত্র, অনুমান, সমর্থন রয়েছে and আপনাকে অনেকগুলি ক্লাস বাস্তবায়নের সাথে এবং তারা কীভাবে একটি শালীন আকারের প্রকল্পে এটি ব্যবহার করতে ইন্টারঅ্যাক্ট করে তার সাথে ঘনিষ্ঠভাবে পরিচিত হওয়া দরকার। ডিবাগিংয়ের সময় এমএফসি উত্স কোডে ডেলিভ করা সাধারণ। ক্রাশের কারণে কিছু পয়েন্টারে নাল হয়ে থাকা 15 বছরের পুরানো টেক নোট সন্ধান করা এখনও ঘটে। প্রাচীন দস্তাবেজ এম্বেডিং স্টাফ আরম্ভ করার অনুমানগুলি অদ্ভুত উপায়ে আপনার প্রয়োগকে প্রভাবিত করতে পারে। এমএফসি-তে অ্যাবস্ট্রাকশন বলে কোনও জিনিস নেই, আপনার প্রতিদিন এটির কীর্তি এবং ইন্টার্নালগুলির সাথে কাজ করা দরকার, এটি কিছুই লুকায় না। এবং আমাকে ক্লাস উইজার্ডে শুরু করবেন না।
সি ++ ভাষা বিকশিত হওয়ার সাথে সাথে এটিএমটি আবিষ্কার করা হয়েছিল এবং টেমপ্লেটগুলি উপস্থিত হয়েছিল। এটিএমটি এমএফসি লাইব্রেরির রান-টাইম সমস্যাগুলি এড়াতে কীভাবে টেমপ্লেটগুলি ব্যবহার করবেন তা একটি শোকেস ছিল:
- বার্তা মানচিত্র: যেহেতু সেগুলি টেমপ্লেট ভিত্তিক, প্রকারগুলি পরীক্ষা করা হয় এবং আপনি যদি সীমাবদ্ধ ফাংশনটি স্ক্রু করেন তবে এটি তৈরি হয় না। এমএফসি-তে বার্তা মানচিত্রগুলি ম্যাক্রো ভিত্তিক এবং রান-টাইম সীমাবদ্ধ। এর ফলে বিজোড় বাগ, বার্তাটি ভুল উইন্ডোতে স্থান পেয়েছে, ক্রাশ বা ম্যাক্রোটি ভুলভাবে সংজ্ঞায়িত করা থাকলে বা ক্রমবর্ধমান কাজ করতে পারে না কারণ কিছু ঠিকঠাক না করে। ডিবাগ করা আরও অনেক কঠিন এবং লক্ষ্য না করেই ভাঙ্গা সহজ।
- COM / অটোমেশন: বার্তা মানচিত্রের অনুরূপ, COM মূলত ম্যাক্রো ব্যবহার করে রান-টাইম আবদ্ধ ছিল, প্রচুর পরিমাণে ত্রুটি হস্তান্তর করা এবং বিজোড় সমস্যা তৈরি করার প্রয়োজন পড়ে। এটিএল এটিকে টেমপ্লেট ভিত্তিক তৈরি করেছে, সময় বেঁধে সংকলন করেছে এবং এর থেকে আরও অনেক সহজ কাজ করে।
[অলঙ্করণ সম্পাদনা করুন: এটিএলটি তৈরি করার সময় মাইক্রোসফ্টের প্রযুক্তিগত রাস্তা মানচিত্রটি মূলত 'ডকুমেন্ট ম্যানেজমেন্ট' এর উপর নিবদ্ধ ছিল। অ্যাপল তাদের ডেস্কটপ প্রকাশনা ব্যবসায় হত্যা করছিল। এই স্পেসে প্রতিযোগিতা করার জন্য অফিসের 'ডকুমেন্ট ম্যানেজমেন্ট' বৈশিষ্ট্যগুলি বাড়ানোর জন্য অফিস 'ডকুমেন্ট লিঙ্কিং এবং এম্বেডিং' একটি প্রধান উপাদান ছিল। COM অ্যাপ্লিকেশন সংহতকরণের জন্য উদ্ভাবিত একটি মূল প্রযুক্তি ছিল এবং ডকুমেন্ট এম্বেডিং এপিআই COM এর উপর ভিত্তি করে ছিল। এমএফসি এই ব্যবহারের ক্ষেত্রে ব্যবহার করা কঠিন ছিল। তৃতীয় পক্ষের সিওএম বাস্তবায়ন এবং নথি এম্বেডিং বৈশিষ্ট্যগুলি ব্যবহার করতে এই নির্দিষ্ট প্রযুক্তিটিকে সহজ করার জন্য এটিএলই ছিল একটি ভাল সমাধান]
এই সামান্য পরিবর্তনগুলি এটিএমএল-এর বৈশিষ্ট্যগুলির মতো সমস্ত অফিসের প্রয়োজন হয় না এমন একটি সাধারণ অ্যাপ্লিকেশন নিয়ে মোকাবেলা করতে এটিএলকে অত্যন্ত সহজ করে তোলে। একটি সাধারণ ইউআই এবং কিছু অফিস অটোমেশন দিয়ে দেওয়া। যা খুব ছোট, এমএফসির ক্লাসগুলির একটি বিশাল লাইব্রেরি রয়েছে যা আঠালো এবং কাজ করা কঠিন।
দুর্ভাগ্যক্রমে এটিএল স্থবির হয়ে পড়েছে। এটিতে উইন্ডোজ এপিআই এবং সিওএম সমর্থনগুলির জন্য মোড়ক ছিল এবং এরপরে এটি আর কখনও যায় নি। ওয়েবটি বন্ধ হয়ে গেলে, এই সমস্ত জিনিসগুলি পুরানো খবরের মতো বাছাই করা ছিল।
[অলঙ্করণ সম্পাদনা করুন: মাইক্রোসফ্ট বুঝতে পেরেছিল যে এই 'ইন্টারনেট থিং'টি বড় হতে চলেছে। তাদের প্রযুক্তিগত রাস্তার মানচিত্রটি বিতরণ লেনদেন সার্ভারে ইন্টারনেট এক্সপ্লোরার, উইন্ডোজ সার্ভার, আইআইএস, এএসপি, এসকিউএল সার্ভার, সিওএম / ডিসিওএমে ফোকাস করার জন্য মারাত্মকভাবে পরিবর্তিত হয়েছে। সুতরাং ডকুমেন্ট লিঙ্কিং এবং এম্বেডিং এখন আর উচ্চ অগ্রাধিকার ছিল না]]
এমএফসির বিশাল পদচিহ্নগুলি তাদের পক্ষে ডাম্প করা অসম্ভব করে দিয়েছিল, তাই এটি এখনও ধীরে ধীরে বিকশিত হয়। টেমপ্লেটগুলি লাইব্রেরিতে আবার একইসাথে অন্যান্য ভাষা এবং এপিআই বর্ধিতকরণে অন্তর্ভুক্ত করা হয়েছে। (আমি এই প্রশ্নটি না হওয়া পর্যন্ত ডাব্লুটিএল-এর কথা শুনিনি। :)
শেষ পর্যন্ত, কোনটি ব্যবহার করা তা পছন্দসই বিষয়। আপনার প্রয়োজনীয় বৈশিষ্ট্যগুলির বেশিরভাগটি বেস ওএস এপিআইতে রয়েছে, যা লাইব্রেরিতে কোনও উপযুক্ত মোড়ক না থাকলে আপনি যে কোনও লাইব্রেরি থেকে সরাসরি কল করতে পারেন।
বহু বছর ধরে এমএফসি ব্যবহারের ভিত্তিতে কেবল আমার 2 সেন্ট এবং আমি এখন এটি প্রতিদিন ব্যবহার করি। কয়েক বছর ধরে কয়েকটি প্রকল্পে এটি প্রকাশিত হওয়ার সময় আমি এটিএল-এ ছড়িয়ে পড়েছিলাম। এই দিনগুলিতে এটি তাজা বাতাসের শ্বাস ছিল তবে সত্যই আর কোথাও যায় নি। এবং তারপরে ওয়েবটি এসেছিল এবং আমি এটির সব ভুলে গিয়েছিলাম।
সম্পাদনা: এই উত্তরের অবাক করা দীর্ঘায়ু রয়েছে। যেহেতু এটি আমার স্ট্যাক ওভারফ্লো পৃষ্ঠায় পপ আপ করে চলেছে, তাই আমি ভেবেছিলাম যে আমি যে মূল উত্তরটির অভাব অনুভব করেছি তার মূল উত্তরটিতে আমি কিছু শোভাকর যুক্ত করব।