ডট নেটে নেমস্পেসের ব্যবহার ডট নেটে ফ্রেমওয়ার্কের ক্লাস লাইব্রেরিতে সহস্রাধিক ক্লাস আছে যেগুলো প্রোগ্রাম লেখার সময় এবং তা চালনা করার সময় কাজে লাগে৷ এসব ক্লাসকে সহজে ব্যবহার করার জন্য ফ্রেমওয়ার্কে নেমস্পেস ব্যবহার করা হয়৷ এর ফলে ক্লাসগুলো নিজস্ব বৈশিষ্ট্য অনুযায়ী কাজ করতে পারে এবং অন্য ক্লাসের সাথে দ্বন্দ্ব তৈরি করে না৷ উদাহরণস্বরূপ বলা যায় : দুটি ক্লাসে যদি টেধর্ভ নামে মেথড থেকে থাকে তাহলে প্রোগ্রামে কাজ করার সময় এদের পারস্পরিক দ্বন্দ্ব যেন না হয় তার জন্য এই ক্লাস দুটিকে আমরা দুটি আলাদা নেমস্পেস ব্যবহার করে রাখতে পারি৷ এ থেকে সহজেই বুঝা যায়, নেমস্পেস কতগুলো ক্লাসকে গ্রুপ করে প্রোগ্রামে সহজে ব্যবহারের সুযোগ করে দেয়৷
একটি নেমস্পেসের মধ্যে ক্লাস ছাড়াও বিভিন্ন টাইপ, মেথড, ইন্টারফেস, ডেলিগেট ও অন্য নেমস্পেস থাকতে পারে৷ নিচে একটি নেমস্পেসের উদাহরণ দেয়া হলো :
System.Windows.Form.Button উপরের কোডের System.Windows.Form হলো একটি নেমস্পেস এবং Button হলো একটি টাইপ৷ নেমস্পেসের মধ্যে কোনোরকম দ্বন্দ্ব তৈরি হলে এর ভেতরের অবজেক্টগুলোকে ব্যবহার করা যায় না৷ আপনি নিজেই প্রোগ্রামে নেমস্পেস তৈরি করতে পারেন৷ নেমস্পেস তৈরি করতে Namespace... End Namespace ব্লক ব্যবহার করতে হয়৷ এর ভেতরে আপনার ইচ্ছেমত ক্লাস, স্ট্রাকচার, টাইপ, ইন্টারফেস, ডেলিগেট ও অন্য নেমস্পেস তৈরি করতে পারবেন৷ নিচে একটি নেমস্পেসের উদাহরণ দেখুন :
Namespace VBProgramming Class Class1 ... End Class Namespace Lesson Class Class2 ... Public Sub Teach() ... End Sub End Class End Namespace End Namespace
উপরের কোডের Teach()মেথডটিকে এসে করতে হলে ক্লাস ২-এর একটি অবজেক্ট তৈরি করতে হবে৷ নিচে এই অবজেক্টির ব্যবহার দেখানো হলো :
Class Cls3 Dim lessonObj As New VBTutorial.Lesson2.Class2 lessonObj.Teach() End Class OR Imports VBTutorial.Lesson2 Class Cls3 Dim lessonObj As New Class2 lessonObj.Teach() End Class
এখান থেকে সহজেই একটি নেমস্পেসের ব্যবহার বুঝতে পারছেন৷ ডট নেটে ব্যাপকভাবে ব্যবহার হওয়া কয়েকটি নেমস্পেস ও তাদের ব্যবহারের ধরন নিচে দেয়া হলো :
System.ComponetModel-> ডিজাইনের সময় বিভিন্ন কম্পোনেন্টের ব্যবহারের জন্য৷ Syetem.Data-> ডাটা এক্সেসের জন্য৷ System.Data.SQLClient-> SQL সার্ভারের ডাটা এক্সেসের জন্য৷ System.Data.OLEDB-> OLEDB ডাটা এক্সেসের জন্য (যেমনMS Access)৷ System.Data.XML-> XML ডাটা প্রসেসিংয়ের জন্য৷ System.Net-> নেটওয়ার্ক প্রোটোকলের ব্যবহার করার জন্য৷ My.Computer-> লোকাল কমপিউটারের এক্সেসের জন্য ৷
উইন্ডোজ ফরমে সিকিউরিটি
ডট নেট ফ্রেমওয়ার্ক প্রোগ্রামের সিকিউরিটি অনেক বাড়িয়ে দিয়েছে৷ এখানে সিকিউরিটির জন্য তিন ধরনের পারমিশন (Permission) আছে৷
০১. কোড এক্সেস পারমিশন৷
০২. আইডেন্টিটি পারমিশন৷
০৩. রোল বেজড সিকিউরিটি পারমিশন৷
কোড এক্সেস পারমিশনের মাধ্যমে প্রোটেক্টেড রিসোর্স নিয়ে কাজ করা যায়৷ আইডেন্টিটি পারমিশনের মাধ্যমে নির্দিষ্ট কোনো আইডেন্টিটির এক্সেস নিশ্চিত করে প্রোগ্রামের কাজগুলো করা হয়৷ রোলভিত্তিক সিকিউরিটির মাধ্যমে প্রোগ্রামের ব্যবহারকারীর আইডেন্টিটি অথবা তার নির্দিষ্ট রোলের (কাজের) ওপর ভিত্তি করে প্রোগ্রামে কাজ করার সুযোগ থাকে৷ এসব সিকিউরিটি পদক্ষেপের ফলে ডট নেট ফ্রেমওয়ার্কে প্রোগ্রাম সামঞ্জস্যভাবে চলার ব্যবস্থা হয়েছে৷ সিকিউরিটিগুলোর ব্যবহার সম্পর্কে আরো বিস্তারিত অ্যাডভান্সড প্রোগ্রামিং নিয়ে আলোচনার সময় জানতে পারবেন৷
ইভেন্ট হ্যান্ডলিং
ইতোমধ্যেই ফরমে কাজ করার সময় ভিবি ডট নেটে Click, KeyPress, Load ইত্যাদি ইভেন্ট ব্যবহার করা হয়েছে৷ ইভেন্ট হলো কোনো একটি নির্দিষ্ট কাজের নাম৷ যেমন : আমরা যখন মাউসের বাটনটি ক্লিক করি তখন এটিই একটি ইভেন্ট৷ ভিবি ডট নেটে ব্যবহার করা কন্ট্রোলগুলোর (যেমন : টেক্সটবক্স, লেবেল, বাটন ইত্যাদি) বিভিন্ন ইভেন্টে কি কাজ করতে হবে তার কোডিং লিখতে হয়৷
Private Sub btnOK_Click _ (ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnOK.Click
উপরের কোডে btnOkকট্রোলটির ক্লিক ইভেন্টের কোডের শুরুর অংশ দেখা যাচ্ছে৷ এখানে ব্যবহার করা Handle কীওয়ার্ডটি প্রোগ্রাম নির্দিষ্ট ইন্টেটি খুঁজতে নির্দেশ দেয়৷ যখনই ওই নির্দিষ্ট ইভেন্টটি খুঁ জে পায়, তখন প্রোগ্রাম এই ব্লকের মধ্যে লেখা স্টেটমেন্টগুলো চালনা করতে থাকে৷ আপনি প্রোগ্রামে নিজের তৈরি করা ইভেন্টও ব্যবহার করতে পারেন৷
Public Event TimeExpired(ByVal Status As String) RaiseEvent TimeExpired("Your Time Has Run Out")
উপরের কোডের প্রথম লাইনটি ইভেন্ট ডিক্লেয়ার করার জন্য৷ এখানে আপনি ইচ্ছেমতো ইভেন্টের নাম দিতে পারেন এবং দ্বিতীয় লাইনটি ইভেন্টটি যেখানে ব্যবহার করা হবে সেখানে লেখার জন্য৷ ইভেন্ট ডিক্লেয়ার কখনো কোনো প্রসিডিউরের মধ্যে করা যায় না৷ এটি ক্লাসের মধ্যে অথবা নেমস্পেসের মধ্যে করতে হয়৷