মডেল-ভিউ-কন্ট্রোলার (MVC) আর্কিটেকচার

Web Development - এএসপি ডট (ASP.Net) - ASP.Net এর আর্কিটেকচার |

Model-View-Controller (MVC) হলো একটি সফটওয়্যার ডিজাইন প্যাটার্ন যা অ্যাপ্লিকেশনকে তিনটি প্রধান অংশে ভাগ করে: Model, View, এবং Controller। এই প্যাটার্নটি অ্যাপ্লিকেশনের কোডকে সংগঠিত করতে সহায়ক, এবং এটি ডেভেলপারদের মেইনটেইনেবল এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। ASP.Net এ MVC আর্কিটেকচার ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য জনপ্রিয় একটি ফ্রেমওয়ার্ক।


MVC আর্কিটেকচারের মূল উপাদান

১. Model:

  • Model হল অ্যাপ্লিকেশনের ডেটা এবং ব্যবসায়িক লজিকের প্রতিনিধিত্ব।
  • এটি অ্যাপ্লিকেশনের ডেটাবেস, ফাইল সিস্টেম, বা অন্য কোনো তথ্য সংরক্ষণ স্থান থেকে ডেটা রিড এবং রাইট করার কাজ করে।
  • Model-এ business rules, validation, এবং data logic থাকে।
  • উদাহরণ:

    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public decimal Price { get; set; }
    }
    

২. View:

  • View হল ইউজারের সামনে প্রদর্শিত অংশ, যেখানে HTML, CSS, এবং JavaScript দ্বারা অ্যাপ্লিকেশনের ইন্টারফেস তৈরি করা হয়।
  • এটি Model থেকে ডেটা গ্রহণ করে এবং তা উপস্থাপন করে, তবে এটি কোনো ডেটা পরিবর্তন বা লজিক প্রক্রিয়া করে না।
  • View সাধারণত Razor টেমপ্লেট ইঞ্জিন ব্যবহার করে ডাইনামিক HTML জেনারেট করে।
  • উদাহরণ:

    @model Product
    <h1>@Model.Name</h1>
    <p>Price: @Model.Price</p>
    

৩. Controller:

  • Controller হল অ্যাপ্লিকেশনের মধ্যে লজিকের অংশ, যা ইউজারের অনুরোধ গ্রহণ করে এবং উপযুক্ত Model এবং View এর সাথে যোগাযোগ করে।
  • এটি HTTP request পরিচালনা করে, প্রয়োজনীয় ডেটা Model থেকে নিয়ে, তা View এ পাঠিয়ে উপস্থাপন করে।
  • Controller ইউজারের অ্যাকশন অনুযায়ী অ্যাপ্লিকেশন লজিক পরিচালনা করে।
  • উদাহরণ:

    public class ProductController : Controller
    {
        private readonly ApplicationDbContext _context;
    
        public ProductController(ApplicationDbContext context)
        {
            _context = context;
        }
    
        public IActionResult Index()
        {
            var products = _context.Products.ToList();
            return View(products);
        }
    }
    

MVC আর্কিটেকচারের কাজের প্রক্রিয়া

  1. User Action: ইউজার একটি রিকোয়েস্ট পাঠায়, যেমন একটি URL-এ ক্লিক করা বা ফর্ম সাবমিট করা।
  2. Controller: কন্ট্রোলার এই রিকোয়েস্ট গ্রহণ করে এবং প্রয়োজনীয় লজিক প্রক্রিয়া করতে শুরু করে। এটি Model থেকে ডেটা চাহিদা পাঠায় এবং সংশ্লিষ্ট ডেটা প্রস্তুত করে।
  3. Model: Model কন্ট্রোলারের অনুরোধ অনুযায়ী ডেটা প্রক্রিয়া করে এবং ফিরে পাঠায়। এটি ডেটাবেস থেকে ডেটা নিয়ে আসতে পারে বা অন্য কোনো লজিক সম্পাদন করতে পারে।
  4. View: কন্ট্রোলার মডেল থেকে প্রাপ্ত ডেটা View তে পাঠায়। View ডাইনামিক HTML তৈরি করে এবং সেই HTML ব্রাউজারে ইউজারের কাছে প্রদর্শিত হয়।

MVC এর সুবিধা

১. Separation of Concerns (SoC):

  • MVC প্যাটার্ন ডেটা (Model), ইউজার ইন্টারফেস (View), এবং লজিক (Controller) এর মধ্যে পৃথকীকরণ তৈরি করে। এটি কোডকে সহজে মেইনটেইনেবল এবং রিইউজেবল করে তোলে।

২. Testability:

  • MVC প্যাটার্নের কারণে, unit testing করা সহজ হয়। Controller এবং Model আলাদাভাবে টেস্ট করা সম্ভব।

৩. Flexibility and Scalability:

  • MVC আর্কিটেকচার বড় অ্যাপ্লিকেশন তৈরি এবং পরিচালনা করতে উপযোগী। যেহেতু ভিউ, কন্ট্রোলার এবং মডেল পৃথক থাকে, তাই স্কেলেবিলিটি এবং নতুন ফিচার অ্যাড করা সহজ।

৪. Multiple Views:

  • একাধিক ভিউ তৈরি করা যায় একটি মডেলের জন্য, যা ইউজারের বিভিন্ন ইন্টারফেসের চাহিদা মেটাতে সাহায্য করে। যেমন: একই ডেটা দিয়ে ওয়েব, মোবাইল, এবং ডেস্কটপ অ্যাপ্লিকেশনে আলাদা ভিউ তৈরি করা যায়।

৫. Maintainability:

  • কোডের মডুলার ডিজাইন হওয়ার কারণে, অ্যাপ্লিকেশনটি সহজে রক্ষণাবেক্ষণ এবং আপডেট করা যায়।

ASP.Net MVC এর উদাহরণ

Routing: ASP.Net MVC রাউটিং সিস্টেম URL ম্যানেজ করতে সাহায্য করে। আপনি রাউট কনফিগার করে URL অনুযায়ী কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে যুক্ত করতে পারেন।

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

Controller:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

View:

@{
    ViewData["Title"] = "Home Page";
}

<h1>@ViewData["Title"]</h1>

সারাংশ

MVC আর্কিটেকচার ASP.Net অ্যাপ্লিকেশন ডেভেলপমেন্টে একটি জনপ্রিয় প্যাটার্ন, যা অ্যাপ্লিকেশনের লজিক, ইউজার ইন্টারফেস এবং ডেটা প্রক্রিয়া আলাদা করে। এটি কোডকে মেইনটেইনেবল, স্কেলেবল এবং টেস্টেবল রাখে। Model ডেটা এবং ব্যবসায়িক লজিক, View ইউজার ইন্টারফেস এবং Controller অ্যাপ্লিকেশন লজিক এবং রাউটিং পরিচালনা করে। ASP.Net MVC প্যাটার্নে আধুনিক, সহজে ব্যবস্থাপনাযোগ্য এবং শক্তিশালী ওয়েব অ্যাপ্লিকেশন তৈরি করা যায়।

Content added By
Promotion