কম্পিউটার টিউটোরিয়াল

C# ASP.NET Core প্রজেক্টে Program.cs ফাইলের উদ্দেশ্য

ASP.NET Core ওয়েব অ্যাপ্লিকেশন আসলে একটি কনসোল প্রজেক্ট যা Program ক্লাসের এন্ট্রি পয়েন্ট public static void Main() থেকে এক্সিকিউশন শুরু করে, যেখানে ওয়েব অ্যাপ্লিকেশনের জন্য হোস্ট তৈরি করা হয়।

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

WebHost হলো একটি স্ট্যাটিক ক্লাস যা IWebHost এবং IWebHostBuilder ইনস্ট্যান্স তৈরি করতে ব্যবহৃত হয় প্রি-কনফিগার্ড ডিফল্টসহ।

CreateDefaultBuilder() মেথড WebHostBuilder-এর নতুন ইনস্ট্যান্স তৈরি করে প্রি-কনফিগার্ড ডিফল্টসহ। ইন্টারন্যালি এটি কনফিগার করে:

  • কন্টেন্ট রুট করেন্ট ডিরেক্টরি সেট করে
  • কমান্ড লাইন আর্গস কনফিগারেশন অবজেক্টে পাস করতে দেয়
  • appsettings.json এবং appsettings.{Environment}.json লোড করে কনফিগারেশনে
  • এনভায়রনমেন্ট ভেরিয়েবল কনফিগারেশনে যোগ করে
  • ডেভেলপমেন্ট মোডে সিক্রেটস লোড করতে দেয়
  • কনসোল/ডিবাগ লগার যোগ করে
  • Kestrel ব্যবহার করতে বলে এবং লোডেড কনফিগ থেকে Kestrel কনফিগারেশন লোড করে
  • রাউটিং যোগ করে
  • IIS ইন্টিগ্রেশন যোগ করে

IIS-এ হোস্ট করার জন্য UseIISIntegration() মেথড যোগ করতে হয় (IIS এক্সটার্নাল ওয়েব সার্ভার হিসেবে কাজ করবে)।

UseStartup<Startup>() মেথড ওয়েব হোস্ট দ্বারা ব্যবহৃত Startup ক্লাস স্পেসিফাই করে (কাস্টম ক্লাসও ব্যবহার করা যায়)।

Build() মেথড IWebHost ইনস্ট্যান্স রিটার্ন করে এবং Run() ওয়েব অ্যাপ্লিকেশন শুরু করে যতক্ষণ না বন্ধ হয়।

নোট: .NET 6+ এ মিনিমাল API-তে Program.cs-এই সকল কনফিগারেশন (Services, Middleware, Endpoints) থাকে, Startup.cs আলাদা নেই।

  1. C# ASP.NET WebAPI-এ Authorize অ্যাট্রিবিউটের ব্যবহার

  2. C# ASP.NET MVC-এ ChildActionOnly অ্যাট্রিবিউটের ব্যবহার

  3. C# ASP.NET MVC-এ NonActionAttribute-এর তাৎপর্য

  4. জাভাতে Process ক্লাসের উদ্দেশ্য