সি শার্প ও ডট নেট প্রোগ্রামিং ১০ম পর্বঃ ডেস্কটপ এপ্লিকেশন ডেভেলপমেন্ট পরিচিতি

সি-শার্প এবং ডট নেট প্রোগ্রামিং টিউটোরিয়াল

সকলকে শুভেচ্ছা ও সালাম জানিয়ে শুরু করছি, আমার ধারাবাহিক টিউনের ১০ম পর্ব। পূর্বের ৯টি পর্বে আমরা সি শার্প (C#)প্রোগ্রামিং ল্যাঙ্গুয়েজের বিভিন্ন সিন্ট্যাক্স ও প্রাথমিক কিছু টপিক নিয়ে আলোচনা করেছি। আশা করছি বিগত ৯টি পর্ব একেবারে বিফলে যায়নি, সামান্য হলেও আপনাদের কিছু ধারনা দিতে সক্ষম হয়েছে।

এই ১০ম পর্ব থেকে আমরা দেখব কিভাবে C# ব্যবহার করে এপ্লিকেশন তৈরী করা যায়, আপনারা প্রতিদিন বিভিন্ন ধরনের এপ্লিকেশন ব্যবহার করেন সেটা হতে পারে সামান্য ডিজিটাল ঘড়ি অথবা যোগ-বিয়োগ করার ক্যালকুলেটর কিংবা অফিস স্যুটের মত সুবিশাল কোন এপ্লিকেশন। যাই হোক না কেন, এসব কিছুই তৈরী করাকেই বলা হয় এপ্লিকেশন ফ্রেমওয়ার্ক ডেভেলপমেন্ট। সাধারনতঃ তিন ধরনের এপ্লিকেশন ডেভেলপ করা হয়ঃ

  • Desktop Application Development
  • Web Application Development
  • Mobile Application Development

Desktop Application হল সেগুলো যা আমরা সচরাচর ব্যবহার করে থাকি আমাদের দৈনন্দিন জীবনে যেমনঃ Windows এর ক্যালকুলেটর, অফিস এপ্লিকেশন, মিডিয়া প্লেয়ার ইত্যাদি।

Web Application বলতে সেই সকল এপ্লিকেশন কে বোঝানো হয় যা কোন Web Site এর সাথে Integrated অবস্থায় থাকে। উদাহরন স্বরূপঃ Yahoo! অথবা Gmail এ নতুন একাউন্ট খুলার সময় যে Registration করার ব্যবস্থা থাকে, এটা একটি পৃথক Web Application যা Yahoo! অথবা Gmail এর মত Web Site এর একটি অংশ (Module) হিসেবে কাজ করে। এরকম অসংখ্য Web Application আমরা নিজের অজান্তে ব্যবহার করছি।

Mobile Application কী আমরা সবাই জানি, আমাদের অনেকেই Android Mobile ব্যবহার করেছি, কারোর কাছে হয়ত iPhone আছে যেখানে আমরা অসংখ্য Apps ডাউনলোড করে ব্যবহার করি, এগুলোকেই Mobile Application বলে, তবে C# দিয়ে .NET Framework ব্যবহার করে অবশ্য Android বা iPhone এর জন্য Apps ডেভেলপ করতে পারবেন না, কারন ঐসকল প্লাটফর্ম সম্পূর্ণ ভিন্ন। আপনি C#.NET ব্যবহার করে Windows OS চালিত মোবাইল ফোনের জন্য Apps ডেভেলপ করতে পারবেন।

আমি এই টিউনে উপরি-উক্ত ৩ ধরনের এপ্লিকেশন এর মধ্যে প্রথমটি অর্থাৎ Desktop Application Development নিয়ে আলোচনা করার চেষ্টা করব ধারাবাহিক ভাবে। Web Application Development এ আমি এখনো শিশুসুলভ পর্যায়ে রয়েছি, তাই সেটি নিয়ে আপনাদের সামনে আলোচনা করে ধৃষ্টতা দেখাবনা। কোনদিন যদি ভালভাবে শিখতে পারি, তাহলে ইনশাআল্লাহ অন্য কোন ধারাবাহিক টিউনে Web Application নিয়ে আলোচনা করব।

আজকের পর্বে আমরা দেখবঃ

  • কিভাবে একটি নতুন প্রজেক্ট তৈরী করব
  • টুল বক্স পরিচিতি
  • অন্যান্য কম্পোনেন্ট পরিচিতি

কিভাবে নতুন প্রজেক্ট তৈরী করব?

Visual Studio 2008 ব্যবহার করে নতুন ডেস্কটপ এপ্লিকেশন প্রজেক্ট তৈরী করার জন্য নিচের পদ্ধতি অনুসরন করবঃ

  • প্রথমে Visual Studio 2008 ইন্সটল করুন এবং চালু করুন। প্রথমবারের মত চালু করার সময় আপনার কাছে Default Environment Settings Dialog Box আসবে, যেখানে আমরা Visual C# Development Settings option select করব।
  • এইবার File>>New>>Project সিলেক্ট করুন। এরপর নিচের মত একটি Dialog Box আসবে, যেখানে Visual C# অপশন থেকে Windows সেলেক্ট করুন এবং ডান পাশ থেকে প্রথম অপশন Windows Forms Application সেলেক্ট করুন।

  • Project Name থেকে নিজের পছন্দ মত কোন নাম দিতে পারেন (অথবা, ডিফল্ট নাম রেখে দিতে পারেন, তবে যে নাম ব্যবহার করুন, মনে রাখবেন নামের মধ্যে কোন স্পেশাল ক্যারেক্টার অথবা স্পেস থাকতে পারবে না)।

Location ডিফল্ট ভাবে থাকবেঃ
C:\Users\<<User Name>>\Documents\Visual Studio 2008\Projects
আপনি পরিবর্তন করতে পারবেন।
এরপর, Solution অপশন থেকে Create New Solution বেছে নিন এবং ঠিক তার ডান পাশে Create Directory for solution অপশন টি check করুন।

  • OK press করুন। এরপর নিচের মত একটি Form (Form1 নামে) সহ প্রজেক্ট তৈরী হবে।

টুলবক্স পরিচিতিঃ

আপনারা প্রজেক্ট কিভাবে তৈরী করবেন তা শিখলেন, এখন আপনাদের ToolBox নিয়ে আলোচনা করব, Toolbox এ অসংখ্য Tool item রয়েছে, এখানে সবগুলো নিয়ে আলোচনা করব না। কিছু প্রয়োজনীয় টুল নিয়ে আলোচনা করব। আপনি আপনার প্রয়োজন মত Form এ Drag & Drop করে টুল Add করতে পারবেন। টুল বক্সে টুল গুলো ক্যাটাগরিতে ভাগ করা থাকে। নিচে সেইসব নিয়ে আলোচনা করা হলঃ

Common Controls:

  • Pointer: এই টুল নিয়ে বলার মত কিছু নেই, এটা তেমন কোন প্রয়োজনে লাগে না। কোন কিছু বাছাই করার জন্য এটা ব্যবহার করা হয়।
  • Button: User Form এ যে Button দেখা যায় সেটা Add করার জন্য এটা ব্যবহার করা হয়। এই বাটনের বেশ কিছু প্রোপার্টিজ ও ইভেন্ট আছে, প্রয়োজন মত সেগুলো নিয়ে আস্তে আস্তে আলোচনা করব।
  • CheckBox: Form এ কখনো বিভিন্ন অপশন বাছাই করার জন্য এটি ব্যবহার করা হয়। আপনারা এটার সাথে ইতোমধ্যেই পরিচিত।
  • CheckedListBox: এটি এমন একটি কন্ট্রোল যেখানে একটি List এ বিভিন্ন আইটেম দেখা যায় এবং চেক বক্সের মাধ্যমে এক বা একাধিক আইটেম সেলেক্ট করা যায়।

  • ComboBox: এটাকে আপনারা Drop Down Menu হিসেবে চেনেন, একটি মেনু থেকে যেকোন অপশন সেলেক্ট করার একটি জনপ্রিয় পদ্ধতি।
  • DateTimePicker: এটি একটি ক্যালেন্ডার কন্ট্রোল যেখান থেকে Date/Time বাছাই করা যায়।
  • Label: কোন লেখা দেখানোর জন্য ব্যবহার করা হয়
  • LinkLabel: Label এর অনুরূপ তবে এটাতে ওয়েব লিঙ্ক এর মত নিচে আন্ডারলাইন করা থাকে।
  • ListBox: এটি List এর মত সকল অপশন দেখাতে পারে।
  • ListView: এটি List দেখানোর জন্য আরো আপডেটেড কন্ট্রোল যেখানে বিভিন্ন ভাবে List দেখানো সম্ভব।
  • TextBox: Text Box সাধারনত ব্যবহারকারীর কাছ থেকে কোন ইনপুট নেয়ার জন্য ব্যবহার করা হয়।
  • MaskedTextBox: এটি TextBox control এর Modified version যেখানে কিছু নির্দিষ্ট প্যাটার্নের ডাটা ইনপুট দেয়া যায়, যেমন আপনি যদি ফোন নাম্বার ইনপুট দেয়ার ব্যবস্তা রাখেন তাহলে সেখানে ইউজার নিজের নাম ইনপুট দিতে পারবে না।
  • MonthCalender: এটি DateTimePicker এর মত, তবে এখান থেকে শুধু নির্দিষ্ট মাসের তারিখ বেছে নেয়া যায়।
  • NotifyIcon: Notify Icon হল বিশেষ আইকন যা কোন এপ্লিকেশন রান করলে ট্রে তে দেখানো হয়।
  • NumericUpDown: এই কন্ট্রোল এর মাধ্যমে শুধু নাম্বার সেলেক্ট করা যায়। একটি Up /Down arrow থাকে যার মাধ্যমে নাম্বার বেছে নেয়া যায়।
  • PictureBox: Picture Box এর মাধ্যমে ছবি প্রদর্শন করতে পারবেন।
  • ProgressBar: এটা আপনারা কোন সফটওয়্যার ইন্সটল করতে গিয়ে দেখেছেন। কোন কাজ কতটুকু সম্পন্ন হয়েছে তা বোঝানোর জন্য ব্যবহার করা হয়।
  • RadioButton: এটি অনেকটা চেক বক্সের মতই।
  • RichTextBox: এটি TextBox এর মত, তবে একাধিক লাইনের Text input (যেমনঃ Description) দেয়ার জন্য ব্যবহার করা হয়। এটি Rich Text Format (*.rtf) সমর্থন করে।
  • ToolTip: এটি কোন কিছুর বিশেষ Hint/Help এর দরকার হলে ব্যবহার করা হয়। যেমনঃ কোন এপ্লিকেশনের বাটনের উপর মাউজ রাখলেন, একটা পপ-আপ টেক্সট এর মাধ্যমে আপনাকে কোন Hint দেয়া হল, এটি এই কন্ট্রোল এর মাধ্যমে করা সম্ভব।
  • TreeView: TreeView কন্ট্রোল ট্রি স্ট্রাকচারের মাধ্যমে Data দেখাতে পারে।
  • WebBrowser: ওয়েব ব্রাউজার কন্ট্রোল এর মাধ্যমে আপনি Browser Support পাবেন।

Container:

  • GroupBox: এটির মাধ্যমে একাধিক কন্ট্রোল কে একসাথে নেয়া যায়। প্রত্যকটি ক্ষেত্রে নাম দেয়া যায়।
  • Panel: এটিও GroupBox এর মত, কিন্তু এর কোন নাম দেয়া যায় না।
  • SplitContainer: একটি ফর্ম কে দুই বা ততধিক ভাগে ভাগ করে কাজ করার জন্য ব্যবহৃত হয়।
  • TabControl: ট্যাব অপশন দেয়ার জন্য TabControl অ্যাড করা হয়।

Menus & Toolbar:

  • ContextMenuStrip: মাউজের রাইট ক্লিক করলে যে মেনু দেখা যায়, একেই Context Menu বলে এবং এটি Add করার জন্য এই কন্ট্রোল ব্যবহার করা হয়।
  • MenuStrip: File, Edit ইত্যাদি মেনু দেখানোর জন্য উপরে যে Strip ব্যবহার করা হয়, একে Main Menu Strip বলা হয়।
  • StatusStrip: স্ট্যাটাস মেসেজ দেখানোর জন্য ব্যবহৃত হয়।

Components:

  • ErrorProvider: কোন ফর্মে যদি ব্যবহারকারীর কারনে কোন এরর উদ্ভব হয়, তা জানানোর একটি উপায় হল এই কন্ট্রোল।
  • PerformanceCounter: এটি খুব বিশেষায়ীত কন্ট্রোল, এর মাধ্যমে আপনার কম্পিউটারের কিছু সেটিংস যেমনঃ আপনার পিসি র র‍্যাম কতটুকু বাকি আছে, অথবা CPU Usage কতটুকু তা জানার জন্য ব্যবহার করতে পারেন।
  • Timer: নির্দিষ্ট সময় পরপর একধরনের কাজ করার জন্য ব্যবহৃত একটি জনপ্রীয় কনট্রোল।

Printing:

  • PrintDialog: প্রিন্ট করার জন্য যে ডায়ালগ বক্স ব্যবহার করা হয়, সেটি আনার জন্য এটি ব্যবহার করা হয়।

Dialogs:

  • OpenFileDialog: কোন ফাইল ওপেন করার জন্য ব্যবহৃত ডায়ালগ বক্স।
  • ColorDialog: রঙ পরিবর্তন করার জন্য ব্যবহৃত ডায়ালগ বক্স।
  • SaveFileDialog: ফাইল সেভ করার জন্য ব্যবহৃত ডায়ালগ।
  • FontDialog: ফন্ট সেলেকশনের জন্য এটি ব্যবহার করা হয়।

Reporting:

  • CrystalReportViewer: এটি একটি Third Party plug-in যার মাধ্যমে রিপর্টিং এর কাজ করা যায়। যদি কোন এপ্লিকেশনের কোন কাজ করার পর যদি ব্যবহারকারীকে রিপোর্ট/সামারি/পরিশিষ্টাংশ দেখানোর প্রয়োজন হয় তাহলে রিপোর্ট এর কাজ করতে হবে আর রিপোর্ট দেখানোর জন্য এই প্লাগ-ইন ব্যবহার করা হয়। পরবর্তিতে রিপর্টিং এর ধারনা আরো স্বচ্ছ হবে।
  • MicrosoftReportViewer: এটি CrystalReportViewer এর মত তবে এটি Microsoft Corporation এর নিজস্ব প্লাগ-ইন।

Data:

  • DataGridView: কোন ডাটা যদি গ্রিড আকারে দেখাতে চান, তাহলে এটি ব্যবহার করতে হবে।
  • DataSet: এটি হল বিশেষ কন্ট্রোল ক্লাস যার মাধ্যমে ডেটাবেজ থেকে কিছু ডাটা বার করে নিয়ে ধারন করতে পারবেন এবং পরবর্তিতে DataGridView, ComboBox, ListView, ListBox ইত্যাদি কন্ট্রোলের সাথে Data Bind করা যাবে।

আমি সেই সকল কনট্রোল আইটেম নিয়ে আলোচনা করেছি যা দরকার হবে। আরো অনেক কন্ট্রোল রয়েছে যা আমাদের প্রয়োজন হবে না, যদি কখনো হয় তখন প্রয়োজনমাফিক আলোচনা করব।

ইন্টারফেসের কম্পোনেন্টঃ

  • সলিউশন এক্সপ্লোরার (Solution Explorer):

Solution Explorer এর মাধ্যমে আপনি আপনার প্রজেক্টের সকল ক্লাস, ফর্ম ও অন্যান্য কমপোনেন্ট দেখতে পারবেন। নতুন কোন কম্পোনেন্ট যোগ করতে পারবেন।

  • Properties:

Properties এর মাধ্যমে আপনি কোন নির্দিষ্ট কন্ট্রোলের Properties/Event দেখার জন্য এটি ব্যবহার করা হয়। বিভিন্ন অপশন পরিবর্তন করতে পারবেন। কোন কন্ট্রোল (যেমনঃ TextBox) এর সংযুক্ত ইভেন্ট দেখার জন্য এই Window নিয়ে কাজ করতে পারবেন।

  • ErrorList:

প্রজেক্টে Error থাকলে Build এর সময় তা এখানে দেখাবে।

আজকে তাহলে এই পর্যন্ত। পরবর্তি পর্বে আমরা বিভিন্ন কন্ট্রোল নিয়ে কাজ করা শিখব। আমি আমার সাধ্যমত চেষ্টা করেছি যা জানি তা গুছিয়ে লেখার জন্য। যারা Expert তাদের জন্য এই টিউন কোন কাজে আসবে না, তবে যারা C#নিয়ে কাজ করেন নি, কিন্তু কাজ করতে ইচ্ছুক, তাদের জন্য আমার এই ক্ষুদ্র প্রয়াস। ধন্যবাদ।

Level 0

আমি জ্যোতি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 17 টি টিউন ও 98 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 2 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি জ্যোতি চৌধুরী। কম্পিউটার সাইন্স এন্ড ইঞ্জিনিয়ারিং এর ছাত্র। মিলিটারি ইন্সটিটিউট অফ সাইন্স এন্ড টেকনোলজি, মিরপুর ক্যান্টনমেন্ট এ পড়াশোনা করছি। ভাল লাগে বন্ধুদের সাথে আড্ডা দিতে, কম্পিউটার প্রযুক্তি সম্পর্কে জানতে। আগ্রহ আছে সফটওয়্যার ডেভেলপমেন্ট, প্রোগ্রামিং ও ওয়েব ডেভেলপমেন্টের প্রতি। স্বপ্ন দেখতে ভালবাসি। স্বপ্ন কে বাস্তবে রুপায়ন করতে পছন্দ করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

আপনার অপেক্ষাতেই ছিলাম এতদিন। আপনার আজকের টিউন পুরাটা পড়িনি এখনও, তবে প্রথম ২-৩ লাইনে চোখ বুলিয়েই বুঝে গিয়েছি অনেক কিছু শিখতে পারব পুরাটা পড়ে। প্রিয়তে রেখে দিলাম। সময় করে আগামীকাল পড়ব এবং চর্চা করব। ধন্যবাদ আবার এই বিষয়ে টিউন করার জন্য।

    @dolar: ধন্যবাদ dolar ভাই। আপনাদের প্রয়োজনে আসলেই আমার টিউন সার্থক হবে। ধন্যবাদ আবারো।

Level 0

Brother I am happy to get your tips but if you will get your mobile number pls than will helpful
and i need to your help about more matter in .net thanks you

    @ajij_khan: আমার মেইল এড্রেস আছে, [email protected] ব্যবহার করতে পারেন। অথবা 01675006455 এ কল করতে পারেন।

mist er cse vhaiya kemon ?? ar army student ra kemon hoi ??

    @Muhammed Kawser: ভাল, তবে শেখা তো নিজের উপরে। নিজে যদি শিখতে পারেন, তাহলে কোন সমস্যা নেই। কোন ভার্সিটি C# শেখায় না বলেই জানি। তারপরেও আমাদের মাঝ থেকেই অনেক ভাল কাউকে উঠে আসতে দেখবেন তার একটা উদাহরন আমার রুমমেট। আর আর্মি অফিসার দের সাথে পড়ার সময় খারাপ লাগবে না। ভাগ্য যদি ভাল হয় হয়ত খুব Friendly Officer পাবেন যাদের সাথে ৪ বছর কাটানো খুব কঠিন হবে না। নতুন এক এক্সপেরিয়েন্স বলতে পারেন।

Level 0

khub valo hoise….. waiting for the next tune…….. 🙂

Level 0

ভাইজান পরবর্তী টিউন কবে পাবো????????? অপেক্ষায় আছি…, আমি আপনার সাথে কিভাবে যোগাযোগ করতে পারি, আমার খুব ইচ্ছা প্রোগ্রামিং শিখবো
আমার মেইল আইডি— [email protected]

Level 0

ভাই, আমি c#.NET wpf কাজ করতেছি। আমি যে Project টা নিয়া কাজ করতেছি , তার মধ্যে একটা Table এর Columne Name হলো Project_value. যার মধ্যে রয়েছে Project টা কত টাকায় করতেছি সেই টাকার পরিমাণ। এখন Total Project er Value যোগ করে আমি Grid View এ দেখাতে চাই। কিন্তু কিভাবে Server থেকে যোগ করতে হয় তা জানিনা। দয়া করে সাহায্য করেন। ভাই!! Please..

    @mosaraf99: এখানে আপনি Server বলতে SQL Server কে বোঝাচ্ছেন? ধরে নিলাম তাই। আপনি এ কাজ টা গ্রিড এ না দেখায় আলাদা লেবেল এ দেখাতে পারেন। অর্থাৎ আপনার প্রজেক্টের লিস্ট থাকবে যেটা আপনার ডেটাবেস থেকে লোড হবে, ইউজার যেই যেই প্রজেক্ট গুলা সেলেক্ট করবে সেটার দাম একটি Corresponding label এ নিয়ে নিবেন…এর জন্য আপনাকে আলাদা DAL (Data Access Layer) function বানাতে হবে। Then, সেইখান থেকে ভ্যালু যোগ করে আরেকটি লেবেল এ দেখাবেন…আশা করি, এটাই সব থেকে সহজ সমাধান…ধন্যবাদ।