Configuration Files (appsettings.json) এবং Environment Variables

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Configuration Management |
236
236

ASP.NET Core-এ অ্যাপ্লিকেশনের কনফিগারেশন পরিচালনার জন্য Configuration Files এবং Environment Variables একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি আপনাকে অ্যাপ্লিকেশনের চলমান পরিবেশের জন্য বিভিন্ন সেটিংস কনফিগার করতে এবং ডেটাবেস কানেকশন স্ট্রিং, লগিং কনফিগারেশন, অথবা অ্যাপ্লিকেশনের অন্যান্য প্রপার্টি নিয়ন্ত্রণ করতে সহায়তা করে।


Configuration Files (appsettings.json)

appsettings.json হলো ASP.NET Core অ্যাপ্লিকেশনের মূল কনফিগারেশন ফাইল। এই ফাইলটি সাধারণত অ্যাপ্লিকেশনের বিভিন্ন কনফিগারেশন তথ্য যেমন ডেটাবেস কানেকশন, লগিং কনফিগারেশন, এবং অন্যান্য প্রয়োজনীয় সেটিংস সংরক্ষণ করার জন্য ব্যবহার করা হয়।

appsettings.json ফাইলের গঠন

এটি JSON (JavaScript Object Notation) ফরম্যাটে থাকে এবং এটি হিয়ারার্কিক্যাল ডেটা স্টোর করার সুবিধা দেয়। নিচে একটি সাধারণ appsettings.json ফাইলের উদাহরণ দেখানো হলো:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDb;Trusted_Connection=True;"
  },
  "AppSettings": {
    "ApplicationName": "MyApp",
    "Version": "1.0.0"
  }
}

এখানে:

  • Logging সেকশনে লগ স্তরের কনফিগারেশন।
  • ConnectionStrings সেকশনে ডেটাবেস কানেকশন স্ট্রিং।
  • AppSettings সেকশনে অ্যাপ্লিকেশনের অন্যান্য কাস্টম সেটিংস যেমন অ্যাপ্লিকেশনের নাম এবং সংস্করণ।

Configuration ফাইল অ্যাক্সেস করা

ASP.NET Core অ্যাপ্লিকেশনে এই কনফিগারেশন ফাইলের তথ্য অ্যাক্সেস করতে IConfiguration ইন্টারফেস ব্যবহার করা হয়। Startup.cs বা Program.cs ফাইলে কনফিগারেশন ডাটা ইনজেক্ট করতে হয়।

public class MyService
{
    private readonly IConfiguration _configuration;

    public MyService(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void DisplaySettings()
    {
        var appName = _configuration["AppSettings:ApplicationName"];
        var version = _configuration["AppSettings:Version"];
        Console.WriteLine($"Application Name: {appName}, Version: {version}");
    }
}

এখানে, AppSettings সেকশন থেকে ApplicationName এবং Version এর মান বের করা হচ্ছে।

Environment-Specific appsettings.json Files

ASP.NET Core পরিবেশের ভিত্তিতে আলাদা কনফিগারেশন ফাইল লোড করতে পারে। যেমন appsettings.Development.json অথবা appsettings.Production.json ফাইল ব্যবহার করে ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের জন্য আলাদা কনফিগারেশন করা যায়।

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug"
    }
  }
}

এটি Development পরিবেশের জন্য হবে, যেখানে লগ লেভেল ডিবাগ থাকবে।

appsettings.json লোড করার কনফিগারেশন

ASP.NET Core অ্যাপ্লিকেশনে এই কনফিগারেশন ফাইলটি লোড করার জন্য ConfigureAppConfiguration মেথড ব্যবহার করা হয়। সাধারণত Program.cs ফাইলে এই কনফিগারেশন করা হয়:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((context, config) =>
        {
            var env = context.HostingEnvironment;
            config.SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables(); // Environment Variables ব্যবহার করা
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

এখানে, AddJsonFile মেথডের মাধ্যমে পরিবেশ অনুযায়ী কনফিগারেশন ফাইল যোগ করা হয়েছে।


Environment Variables

Environment Variables হলো সিস্টেম স্তরের কনফিগারেশন যা অ্যাপ্লিকেশন চলাকালীন বিভিন্ন পরিবেশের জন্য কনফিগারেশন মান স্টোর করতে ব্যবহৃত হয়। এটি সাধারণত সিস্টেমের সেটিংস বা কনফিগারেশনের জন্য ব্যবহার করা হয়, যেমন ডেটাবেস কানেকশন স্ট্রিং, API কীগুলি, বা অন্যান্য সেনসিটিভ তথ্য যা সরাসরি কোডে না রাখার উপযুক্ত।

Environment Variables সেট করা

আপনি সিস্টেমের Environment Variables ব্যবহার করে কনফিগারেশন প্যারামিটার সেট করতে পারেন। নিচে Windows, macOS, এবং Linux-এ Environment Variables সেট করার উপায় দেখানো হলো।

  • Windows:

    setx MyAppSetting "MyValue"
    
  • macOS/Linux:

    export MyAppSetting="MyValue"
    

Environment Variables অ্যাক্সেস করা

ASP.NET Core-এ IConfiguration ব্যবহার করে আপনি Environment Variables অ্যাক্সেস করতে পারেন:

public class MyService
{
    private readonly IConfiguration _configuration;

    public MyService(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public void DisplayEnvironmentSetting()
    {
        var myValue = _configuration["MyAppSetting"];
        Console.WriteLine($"Environment variable MyAppSetting: {myValue}");
    }
}

এখানে, MyAppSetting নামক Environment Variable অ্যাক্সেস করা হচ্ছে।

Environment-Specific Configuration

ASP.NET Core পরিবেশ অনুযায়ী কনফিগারেশন ফাইল লোড করতে সক্ষম, যেমন ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের জন্য আলাদা কনফিগারেশন। যখন অ্যাপ্লিকেশনটি বিভিন্ন পরিবেশে রান করে, তখন আপনি পরিবেশের সাথে সম্পর্কিত কনফিগারেশন ব্যবহার করতে পারেন।

ASPNETCORE_ENVIRONMENT=Development dotnet run

এই পরিবেশের জন্য appsettings.Development.json ফাইলটি প্রাধান্য পাবে।


Configuration এবং Environment Variables এর মধ্যে পার্থক্য

বৈশিষ্ট্যConfiguration (appsettings.json)Environment Variables
অবস্থানঅ্যাপ্লিকেশন ফাইল সিস্টেমে থাকেসিস্টেমের পরিবেশে সংরক্ষিত থাকে
ব্যবহারসাধারণত স্থিতিশীল কনফিগারেশন ডেটাসেনসিটিভ তথ্য বা পরিবেশ-ভিত্তিক সেটিংস
লৌকিকতাএকাধিক কনফিগারেশন ফাইল দিয়ে সাজানো হয়সরাসরি সিস্টেমের পরিবর্তন
উদাহরণappsettings.json, appsettings.Development.jsonMY_APP_SETTING=Value

সারাংশ

ASP.NET Core-এ Configuration Files (appsettings.json) এবং Environment Variables দুইটি গুরুত্বপূর্ণ কনফিগারেশন সোর্স যা অ্যাপ্লিকেশনের কনফিগারেশন ডেটা পরিচালনা করতে ব্যবহৃত হয়। appsettings.json ফাইল অ্যাপ্লিকেশনের প্রাথমিক কনফিগারেশন স্টোর করে, যেখানে Environment Variables ব্যবহার করা হয় সেনসিটিভ তথ্য এবং পরিবেশ-ভিত্তিক কনফিগারেশন সংরক্ষণ করতে। ASP.NET Core একাধিক কনফিগারেশন সোর্স একত্রে ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন কনফিগারেশন আরও বেশি ফ্লেক্সিবল ও নিরাপদ করে তোলে।

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

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

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

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