IConfiguration Interface এবং Options Pattern

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) ASP.Net Core Configuration এবং Options Pattern |
268
268

ASP.NET Core অ্যাপ্লিকেশনগুলিতে কনফিগারেশন ব্যবস্থাপনা খুব গুরুত্বপূর্ণ একটি বিষয়, যা অ্যাপ্লিকেশনের বিভিন্ন সেটিংস বা কনফিগারেশন ডেটা (যেমন: ডেটাবেস সংযোগ স্ট্রিং, API কী, লগিং কনফিগারেশন) সেন্ট্রালভাবে পরিচালনা করতে সহায়তা করে। IConfiguration Interface এবং Options Pattern দুটি গুরুত্বপূর্ণ কনফিগারেশন ব্যবস্থাপনা পদ্ধতি, যা ASP.NET Core-এ কনফিগারেশন ডেটা অ্যাক্সেস এবং ব্যবহারে সাহায্য করে।


IConfiguration Interface

IConfiguration Interface হল ASP.NET Core-এর একটি ইন্টারফেস যা অ্যাপ্লিকেশনের কনফিগারেশন ডেটা অ্যাক্সেস করার জন্য ব্যবহৃত হয়। এটি একটি সাধারণ কনফিগারেশন সিস্টেম প্রদান করে, যেখানে বিভিন্ন কনফিগারেশন উৎস (যেমন appsettings.json, এনভায়রনমেন্ট ভেরিয়েবলস, কনফিগারেশন ফাইল, ইত্যাদি) থেকে ডেটা একত্রিত করা হয়।

IConfiguration একটি হায়ারার্কিকাল কনফিগারেশন ম্যানেজমেন্ট সিস্টেম প্রদান করে, যা আপনাকে অ্যাপ্লিকেশন কোডের বিভিন্ন জায়গা থেকে কনফিগারেশন ডেটা সহজেই অ্যাক্সেস করতে সক্ষম করে। এটি dependency injection (DI) কনটেইনারের মাধ্যমে অ্যাপ্লিকেশনে ইনজেক্ট করা যায়।

IConfiguration ব্যবহার করা

একটি কনফিগারেশন ফাইল (যেমন appsettings.json) ব্যবহার করে কনফিগারেশন অ্যাক্সেস করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:

appsettings.json

{
  "AppSettings": {
    "AppName": "MyApp",
    "MaxItems": 100
  }
}

Startup.cs - IConfiguration ইনজেকশন

public class Startup
{
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSingleton<IConfiguration>(Configuration);
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        var appName = Configuration["AppSettings:AppName"]; // কনফিগারেশন থেকে ডেটা পড়া
        var maxItems = Configuration.GetValue<int>("AppSettings:MaxItems");
    }
}

এই উদাহরণে, Configuration["AppSettings:AppName"] ব্যবহার করে appsettings.json ফাইল থেকে AppName মানটি অ্যাক্সেস করা হচ্ছে।


Options Pattern

ASP.NET Core-এ কনফিগারেশন সেটিংসের মানগুলো মডেল ক্লাসে মেপিং করার জন্য Options Pattern ব্যবহার করা হয়। এটি কনফিগারেশন ডেটাকে শক্তিশালীভাবে টাইপ করা (strongly-typed) মডেল ক্লাসে কনভার্ট করে, যাতে কোডের মধ্যে কনফিগারেশন ডেটার প্রোগ্রাম্যাটিক অ্যাক্সেস সহজ হয়।

Options Pattern কনফিগারেশন ডেটাকে একটি কাস্টম ক্লাসে মাপ করে এবং সেটি DI কনটেইনারের মাধ্যমে অ্যাপ্লিকেশনে ইনজেক্ট করে।

কনফিগারেশন মডেল তৈরি করা

প্রথমে, কনফিগারেশন ডেটার জন্য একটি ক্লাস তৈরি করুন:

public class AppSettings
{
    public string AppName { get; set; }
    public int MaxItems { get; set; }
}

IConfiguration এর মাধ্যমে Options ইনজেক্ট করা

এখন, Startup.cs ফাইলে Options Pattern সেটআপ করতে হবে:

public class Startup
{
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        // IConfiguration থেকে Options Pattern ব্যবহার করে AppSettings ইনজেক্ট করা
        services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        var appSettings = app.ApplicationServices.GetRequiredService<IOptions<AppSettings>>().Value;

        var appName = appSettings.AppName;
        var maxItems = appSettings.MaxItems;
    }
}

এখানে, Configure মেথডটি appsettings.json থেকে AppSettings সেকশনটি নিয়ে কনফিগারেশন ক্লাসে ম্যাপ করবে এবং IOptions ব্যবহার করে সেই ডেটা অ্যাক্সেস করতে পারবেন।


IOptionsSnapshot এবং IOptionsMonitor

ASP.NET Core-এ আরও দুটি জনপ্রিয় অপশন ব্যবস্থাপনা কনসেপ্ট রয়েছে: IOptionsSnapshot এবং IOptionsMonitor

  • IOptionsSnapshot: এটি আপনাকে একটি স্ট্যাটিক (static) কনফিগারেশন রিড করতে সাহায্য করে, এবং এটি রিকোয়েস্ট প্রতি কনফিগারেশন পরিবর্তন সমর্থন করে।
  • IOptionsMonitor: এটি কনফিগারেশনে পরিবর্তন হলে আপনাকে নোটিফাই করে এবং ডাইনামিক পরিবর্তনের জন্য ব্যবহৃত হয়।

IOptionsSnapshot উদাহরণ

public class SomeService
{
    private readonly IOptionsSnapshot<AppSettings> _options;

    public SomeService(IOptionsSnapshot<AppSettings> options)
    {
        _options = options;
    }

    public void PrintAppSettings()
    {
        var appSettings = _options.Value;
        Console.WriteLine(appSettings.AppName);
    }
}

IOptionsMonitor উদাহরণ

public class AppSettingsMonitorService
{
    private readonly IOptionsMonitor<AppSettings> _optionsMonitor;

    public AppSettingsMonitorService(IOptionsMonitor<AppSettings> optionsMonitor)
    {
        _optionsMonitor = optionsMonitor;
    }

    public void DisplayAppSettings()
    {
        var appSettings = _optionsMonitor.CurrentValue;
        Console.WriteLine(appSettings.AppName);
    }
}

সারাংশ

IConfiguration Interface এবং Options Pattern ব্যবহার করে ASP.NET Core অ্যাপ্লিকেশনগুলিতে কনফিগারেশন ডেটা সহজে এবং শক্তিশালীভাবে পরিচালনা করা যায়। IConfiguration বিভিন্ন কনফিগারেশন উৎস থেকে ডেটা অ্যাক্সেস করতে সাহায্য করে, আর Options Pattern কনফিগারেশন ডেটাকে টাইপ-সেফ (type-safe) ক্লাসে রূপান্তর করে এবং DI কনটেইনারের মাধ্যমে অ্যাপ্লিকেশনে ইনজেক্ট করা হয়।

এই দুইটি প্যাটার্নের মাধ্যমে, আপনি আপনার অ্যাপ্লিকেশনে কনফিগারেশন ডেটার ব্যবস্থাপনা সহজ, পরিষ্কার এবং স্কেলেবল করতে পারবেন।

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

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

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

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