বিষয়বস্তু

আসুন C# শিখি (04) — .NET এর বেসিক

.NET (ডট নেট) শব্দটা এখন পর্যন্ত আমার বেশ কয়েকবার উল্লেখ করা হয়ে গেছে। নিশ্চিত থাকুন ভবিষ্যতেও অনেকবার “.NET” শব্দটা আপনাদের চোখে পড়বে। যেমন— .NET Framework, .NET Core, .NET Standard, .NET Platforms, ASP.NET ইত্যাদি। আগেই বলেছি C# হচ্ছে .NET-এর ল্যাঙ্গুয়েজ। তাই C# শেখার শুরুতে .NET কি, সেটা সম্বন্ধে আপনার একটা বেসিক ধারণা থাকা প্রয়োজন।

.NET Platform

.NET হচ্ছে একটা ডেভেলপমেন্ট প্ল্যাটফর্ম। আর ডেভেলপমেন্ট প্ল্যাটফর্ম হচ্ছে সফটওয়্যার/এপ্লিকেশন তৈরি ও রান করার জন্য যা যা দরকার, তার সব কিছুর একটা সিঙ্গেল কালেকশন। আপনি C# ব্যবহার করে যে এপগুলো তৈরি করবেন সেটা রান করার জন্য .NET প্ল্যাটফর্মের প্রয়োজন। এখন পর্যন্ত .NET-এর বেশ কয়েকটা ইমপ্লিমেন্টেশন তৈরি হয়েছে, যেমন— .NET, .NET Framework, .NET Core, .NET Standard ইত্যাদি।

নোট
আপনি যদি উইন্ডোজ 10 ব্যবহার করে থাকেন, তাহলে .NET Framework 4.5 বা তার পরের ভার্সন বাই ডিফল্ট আপনার কম্পিউটারে ইন্সটল করা রয়েছে।

ইতিহাস

এতগুলো .NET এর মধ্যে পার্থক্য বুঝতে হলে এদের ইতিহাস সম্বন্ধে আপনাকে একটু জানতে হবে। সমস্যা নেই, চেষ্টা করব কম কথায় ইতিহাস বলে শেষ করার 😉।

.NET Framework

.NET এবং সেই সাথে C# এর জার্নি শুরু হয় ২০০২ সালে এই .NET Framework (ভার্সন 1.0) এর মাধ্যমে। সুদূর ভবিষ্যতে মাইক্রোসফটের যদিও .NET Framework-কে ক্রস-প্ল্যাটফর্ম করার চিন্তাভাবনা ছিলো, কিন্তু এই ফ্রেমওয়ার্ক শুধু উইন্ডোজে রান করত। এর আরেক সমস্যা ছিল, ভার্সন 4.5 এর আগে .NET Framework ব্যাকওয়ার্ড কম্প্যাটাবল ছিল না। অর্থাৎ এক ভার্সনে বানানো এপ মডিফিকেশন ছাড়া আগের ভার্সনগুলোতে রান করত না।

Mono

.NET Framework তো শুধু উইন্ডোজে রান করে, তাহলে যারা লিনাক্স বা ম্যাক ব্যবহার করে তারা কি করবে? তারা কি তাহলে .NET Framework এবং C# ব্যবহার করতে পারবে না?

এই সমস্যা থেকেই ২০০৪ সালের দিকে Miguel de Icaza নামের একজন স্মার্ট প্রোগ্রামার The Mono Project নামের একটা ওপেন-সোর্স প্রজেক্ট শুরু করেন। এই প্রজেক্টের উদ্দেশ্য ছিলো .NET Framework-এর এমন এক ইমপ্লিমেন্টেশন তৈরি করা যা লিনাক্সেও চলবে। এই প্রচেষ্টা আসলেই স্মার্ট কারণ তার টিম অরিজিনাল সোর্স কোর্ড না দেখে, শুধু ডকিউমেন্টেশনের উপর ভিত্তি করে লিনাক্সের জন্য .NET Framework এর মতো আরেকটা .NET তৈরি করতে সক্ষম হয়েছিল।

.NET Core

২০১৪ সালে সত্য নাদেলা সিইও হওয়ার পর মাইক্রোসফট তাদের বিজনেস মডেলটায় পালটিয়ে ফেলে। তারা ক্লাউডের দিকে ঝুঁকা শুরু করে এবং বুঝতে পারে যে ক্লাউডের ভবিষ্যত উইন্ডোজ না, লিনাক্স। তাই তারা একদম প্রথম থেকে .NET Framework-এর একটা ওপেন-সোর্স ও ক্রস প্ল্যাটফর্ম ইমপ্লিমেন্টেশন বানানোর কাজ শুরু করে। এরই ফলশ্রুতিতে ২০১৬ সালে .NET Core এর জন্ম হয়।

.NET Framework-এর অনেক অপ্রয়োজনীয় অংশ বাদ সম্পূর্ণ নতুনভাবে .NET Core ডিজাইন করা হয়েছে। এতে আগের মতো ব্যাকওয়ার্ড কম্প্যাটাবিলিটি নিয়েও কোনো সমস্যা নেই।

.NET Standard

এই যে এতগুলো .NET, তাদের মাঝে জগাখিচুড়ি লাগাই স্বাভাবিক। যেমন এক প্ল্যাটফর্ম থেকে অন্য প্ল্যাটফর্মে কোড শেয়ার করার জন্য ডেভেলপারদেরকে বেশ বেগ পোহাতে হতো। এই সমস্যা দূর করার চেষ্টায় মাইক্রোসফট সমাধান হিসেবে .NET Standard নিয়ে আসে।

.NET Standard-কে আরেকটা ইমপ্লিমেন্টেশন বলার চেয়ে স্পেসিফিকেশন বলা বেটার হবে। কারণ, এর কাজ হচ্ছে এমন কিছু API-এর সেটকে স্পেসিফাই করা যেটা একের অধিক ডট নেটের ইমপ্লিমেন্টেশনে সাপোর্ট করবে। কোন কোন ইমপ্লিমেন্টেশনে সাপোর্ট করবে সেটা .NET Standard-এর ভার্সন দেখে বুঝা যাবে।

.NET

মাইক্রোসফট অনেক দিন ধরেই চেষ্টা করে যাচ্ছিল ডট নেটের সবগুলো ইমপ্লিমেন্টেশনকে এক করার। এরই প্রচেষ্টায় অবশেষে ২০২০ সালে .NET 5 আসে। .NET 5 হচ্ছে .NET Core 3.1 এর পরের ভার্সন। নামকরণের ক্ষেত্রে “Core” টা হটিয়ে নতুন নাম শুধু “.NET” করা হয়েছে। আর ভার্সন নাম্বার 3 থেকে সরাসরি 5 করা হয়েছে, কারণ 4 করলে .NET Framework ভার্সন 4 এর সাথে কনফিউশন তৈরি হতে পারত।

নোট
.NET Framework হচ্ছে লেগেসি বা পুরাতন প্ল্যাটফর্ম যা শুধু উইন্ডোজের জন্য। আর .NET হচ্ছে আপ-টু-ডেট নতুন প্ল্যাটফর্ম যা ওপেন-সোর্স ও ক্রস-প্ল্যাটফর্ম।

পরিশেষ

এই ছিল .NET-এর সংক্ষিপ্ত আলোচনা। আশা করি আপনারা একটু হলেও .NET সম্বন্ধে ধারণা পেয়েছেন। পরের পোস্টে C# কিভাবে কাজ করে তা নিয়ে আমরা আলোচনা করব।