ViewState, Session, এবং Cookies ব্যবহারের পদ্ধতি

Microsoft Technologies - এএসপি ডট নেট ওয়েব (ASP.Net WP) স্টেট ম্যানেজমেন্ট (State Management) |
241
241

ASP.NET Web Forms এ state management হল এমন একটি প্রক্রিয়া যা ডেভেলপারদের পেজের ডেটা বা ইউজারের ইনপুট সেশন ধরে রাখতে সাহায্য করে। এখানে তিনটি প্রধান উপায় ব্যবহার করা হয়: ViewState, Session, এবং Cookies। এই তিনটি উপায় ওয়েব অ্যাপ্লিকেশনের মধ্যে ডেটা সংরক্ষণ, প্রেরণ এবং পুনরুদ্ধারের জন্য ব্যবহৃত হয়। চলুন, এসবের ব্যবহারের পদ্ধতি নিয়ে বিস্তারিত আলোচনা করা যাক।


ViewState

ViewState হল ASP.NET Web Forms এ ব্যবহৃত একটি মেকানিজম, যা পেজের UI controls এবং তাদের ডেটা সুরক্ষিত রাখে। যখন পেজটি রেন্ডার করা হয়, তখন ViewState তথ্যের একটি ইনক্রিপ্টেড কপি তৈরি হয় এবং এটি পেজের মধ্যে সংরক্ষিত থাকে। এটি মূলত পেজের লাইফসাইকেলের মধ্যে ডেটা স্টোর করার জন্য ব্যবহৃত হয় এবং Postback এর সময় সেই ডেটা পুনরুদ্ধার করা হয়।

ViewState ব্যবহার করার পদ্ধতি:

  1. ডিফল্টভাবে ViewState সক্রিয় থাকে, তবে আপনি এটি নিষ্ক্রিয়ও করতে পারেন।
  2. ViewState Data: কোনো কন্ট্রোলের মান (যেমন টেক্সটবক্সে ভ্যালু) পেজ রিফ্রেশ বা পোস্টব্যাক হওয়ার পরেও অপরিবর্তিত থাকে।
  3. ViewState Example:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TextBox1.Text = "Initial Value";
        }
        // ViewState ব্যবহার
        string name = (string)ViewState["UserName"];
        if (name != null)
        {
            Label1.Text = "Hello, " + name;
        }
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        // ViewState এ ডেটা সেভ করা
        ViewState["UserName"] = TextBox1.Text;
    }
    

ViewState এর সুবিধা:

  • State management পেজের মধ্যে সংরক্ষিত থাকে, তাই ব্যবহারকারী একই পেজে ফিরে আসলে পূর্ববর্তী তথ্য রক্ষা পায়।
  • No server-side resources required: সার্ভার সাইডে কোনো রিসোর্স খরচ না করেই ViewState ডেটা পেজে সংরক্ষিত থাকে।

ViewState এর সীমাবদ্ধতা:

  • এটি large data সংরক্ষণে অকার্যকর হতে পারে কারণ এটি প্রতি পেজের সাথে সংযুক্ত থাকে, ফলে পেজ সাইজ বড় হতে পারে।
  • Security: ViewState তে সংরক্ষিত ডেটা যদি যথাযথভাবে এনক্রিপ্ট না হয়, তবে তা tampering হতে পারে।

Session

Session হল একটি সার্ভার-সাইড ডেটা সংরক্ষণ পদ্ধতি যা সার্ভারের মেমরিতে ইউজারের ডেটা সংরক্ষণ করে রাখে। এটি সাধারণত একটি unique session ID এর মাধ্যমে ইউজারকে ট্র্যাক করে, এবং এই তথ্য শুধুমাত্র নির্দিষ্ট সেশনের জন্য উপলব্ধ থাকে। Session ব্যবহার করা হয় যখন আপনি ডেটা সার্ভারের সেশন ভেতর সংরক্ষণ করতে চান এবং এটি client-side তে প্রকাশ করা হয় না।

Session ব্যবহার করার পদ্ধতি:

  1. Session Start: Session ব্যবহার শুরু করার আগে সেশন সেট করা হয়।
  2. Session Data: আপনি যেকোনো ধরনের ডেটা (যেমন স্ট্রিং, ইন্টিজার, অবজেক্ট) Session এ সংরক্ষণ করতে পারেন।
  3. Session Example:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["UserName"] != null)
        {
            Label1.Text = "Welcome back, " + Session["UserName"].ToString();
        }
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        // Session এ ডেটা সেভ করা
        Session["UserName"] = TextBox1.Text;
    }
    

Session এর সুবিধা:

  • Server-side storage: সমস্ত ডেটা সার্ভারের সেশনে সংরক্ষিত থাকে, তাই সিকিউরিটি বেশি থাকে।
  • User-specific data: প্রতিটি ইউজারের জন্য আলাদা সেশন তৈরি হয়, ফলে তাদের জন্য আলাদা ডেটা রাখা যায়।

Session এর সীমাবদ্ধতা:

  • সেশন সময়সীমা শেষ হলে ডেটা হারিয়ে যায়।
  • Memory usage: অনেক সেশন ব্যবহার করলে সার্ভারের মেমরি দ্রুত পূর্ণ হয়ে যেতে পারে।
  • সেশন টাইম আউট হলে ইউজারকে লগ আউট করা হতে পারে, যা Session Expiry এর কারণে ঘটে।

Cookies

Cookies হল ক্লায়েন্ট-সাইড ডেটা সংরক্ষণ পদ্ধতি যা ইউজারের ব্রাউজারে সংরক্ষিত থাকে। এগুলি সাধারণত ছোট আকারে ডেটা সংরক্ষণ করে, যা সার্ভারের সাথে পুনরাবৃত্তি সংযোগে ব্যবহার করা হয়। Cookies সাধারণত client preferences, authentication tokens, বা tracking information সংরক্ষণের জন্য ব্যবহৃত হয়।

Cookies ব্যবহার করার পদ্ধতি:

  1. Set Cookies: আপনি একটি কুকি সেট করতে পারেন যা ব্রাউজারে সংরক্ষিত হবে।
  2. Read Cookies: সার্ভারে অথবা ক্লায়েন্ট সাইডে কুকি পড়া যায়।
  3. Cookie Example:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["UserName"] != null)
        {
            Label1.Text = "Hello, " + Request.Cookies["UserName"].Value;
        }
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        // Cookie তৈরি করা
        HttpCookie userCookie = new HttpCookie("UserName");
        userCookie.Value = TextBox1.Text;
        userCookie.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(userCookie);
    }
    

Cookies এর সুবিধা:

  • Persistent Data Storage: কুকি ব্যবহারকারী ব্রাউজারে সংরক্ষিত থাকে, ফলে ব্যবহারকারী পরবর্তী বারও সেই তথ্য দেখতে পারে।
  • Lightweight: কুকি ছোট আকারে থাকে, তাই এটি ওয়েব অ্যাপ্লিকেশনের পারফরম্যান্সে প্রভাব ফেলে না।

Cookies এর সীমাবদ্ধতা:

  • Limited size: কুকি সাধারণত ৪ কিলোবাইটের মধ্যে সীমাবদ্ধ থাকে।
  • Security concerns: কুকি সুরক্ষিত না হলে এটি tampering হতে পারে এবং সিকিউরিটি ঝুঁকি তৈরি করতে পারে। এটিকে এনক্রিপ্ট করার পরামর্শ দেওয়া হয়।
  • Client-side storage: এটি ক্লায়েন্ট সাইডে সংরক্ষিত থাকে, তাই সেগুলি ব্যবহারকারী দ্বারা সহজেই পরিবর্তিত হতে পারে।

ViewState, Session, এবং Cookies এর মধ্যে পার্থক্য

FeaturesViewStateSessionCookies
StoragePage-level (server-side)Server-side (memory-based)Client-side (browser-based)
LifetimePage request (per request)Until session expires (default 20 mins)Can be set to a specific expiry date
SecurityLimited (can be tampered with)More secure (server-side)Less secure (client-side)
Data SizeLarger data can slow page loadCan store large dataLimited size (4 KB per cookie)
ScopePage-specificUser-specific across requestsUser-specific across sessions and requests

উপসংহার

ViewState, Session, এবং Cookies হল ASP.NET Web Forms এ তিনটি গুরুত্বপূর্ণ state management প্রযুক্তি। প্রতিটির আলাদা সুবিধা এবং সীমাবদ্ধতা রয়েছে, এবং সঠিক প্রয়োগের মাধ্যমে ডেভেলপাররা তাদের অ্যাপ্লিকেশনের ডেটা সংরক্ষণ এবং পরিচালনা করতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion