ASP.NET Core অ্যাপ্লিকেশনে কনফিগারেশন ডেটা সংরক্ষণের জন্য appsettings.json
ফাইলটি একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এই ফাইলটি সাধারণত অ্যাপ্লিকেশনের কনফিগারেশন সেটিংস, যেমন ডেটাবেস সংযোগ স্ট্রিং, লগিং কনফিগারেশন, API কী, এবং অন্যান্য পরিবেশ নির্দিষ্ট সেটিংস সংরক্ষণ করতে ব্যবহার হয়।
ASP.NET Core অ্যাপ্লিকেশনটি appsettings.json
ফাইলটি ব্যবহার করে কনফিগারেশন ডেটা লোড করে এবং পরবর্তীতে সেই ডেটা অ্যাপ্লিকেশন চলাকালীন বিভিন্ন স্থানে ব্যবহার করা যায়।
appsettings.json
ফাইলটি JSON (JavaScript Object Notation) ফর্ম্যাটে লেখা হয়। এই ফাইলটির মধ্যে কনফিগারেশন সেটিংস বিভিন্ন সেকশন এবং প্রপার্টির আকারে থাকে।
উদাহরণ:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyAppDb;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"MyAppSettings": {
"AppName": "My ASP.NET Core Application",
"Version": "1.0.0"
},
"AllowedHosts": "*"
}
এখানে:
Logging
: লগিং সম্পর্কিত কনফিগারেশন যেমন, লগের স্তর (LogLevel) নির্ধারণ।ConnectionStrings
: ডেটাবেস সংযোগ স্ট্রিং।MyAppSettings
: কাস্টম অ্যাপ্লিকেশন সেটিংস যেমন অ্যাপের নাম এবং সংস্করণ।AllowedHosts
: অ্যাপ্লিকেশন যে হোস্ট থেকে রিকোয়েস্ট গ্রহণ করবে তার তালিকা।ASP.NET Core অ্যাপ্লিকেশনটি কনফিগারেশন সেটিংস লোড করতে IConfiguration
ইন্টারফেস ব্যবহার করে। এটি appsettings.json
ফাইল থেকে কনফিগারেশন ডেটা পড়তে সাহায্য করে এবং সেই ডেটাকে সার্ভিসে ইনজেক্ট করা যায়।
Program.cs বা Startup.cs ফাইলে ConfigureServices
মেথডে কনফিগারেশন ডেটা লোড করতে হবে:
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// appsettings.json থেকে কনফিগারেশন ডেটা পড়া
var appName = Configuration["MyAppSettings:AppName"];
var version = Configuration["MyAppSettings:Version"];
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
এখানে, Configuration
প্রপার্টি থেকে MyAppSettings:AppName
এবং MyAppSettings:Version
সেকশনগুলো থেকে ডেটা পড়া হয়েছে।
যদি আপনি কনফিগারেশন ডেটার জন্য একটি টাইপড মডেল ব্যবহার করতে চান, তবে আপনি একটি কাস্টম মডেল ক্লাস তৈরি করে সেটিকে কনফিগারেশন ফাইলে মডেল বাউন্ড করতে পারেন। এটি আপনার কনফিগারেশন ডেটার সঙ্গে আরও ভালভাবে কাজ করার সুবিধা দেয়।
Model Class:
public class MyAppSettings
{
public string AppName { get; set; }
public string Version { get; set; }
}
Program.cs বা Startup.cs ফাইলে এই মডেল ক্লাসটি ব্যবহার করে কনফিগারেশন ডেটা বাউন্ড করুন:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MyAppSettings>(Configuration.GetSection("MyAppSettings"));
// এই ডেটা ব্যবহার করা যেতে পারে যেকোনো ক্লাসে
var appSettings = Configuration.GetSection("MyAppSettings").Get<MyAppSettings>();
Console.WriteLine($"App Name: {appSettings.AppName}, Version: {appSettings.Version}");
}
এখানে, Configure<MyAppSettings>
ব্যবহার করে MyAppSettings
ক্লাসের ইনস্ট্যান্স তৈরি করা হয়েছে এবং তা কনফিগারেশন সেকশনের সাথে বাউন্ড করা হয়েছে।
ASP.NET Core অ্যাপ্লিকেশনটি বিভিন্ন পরিবেশ (development, staging, production) অনুযায়ী আলাদা কনফিগারেশন সেটিংস ব্যবহার করতে পারে। এর জন্য আপনি পরিবেশ নির্দিষ্ট appsettings.{Environment}.json
ফাইল ব্যবহার করতে পারেন।
উদাহরণ:
appsettings.Development.json
: ডেভেলপমেন্ট পরিবেশের কনফিগারেশন।appsettings.Production.json
: প্রোডাকশন পরিবেশের কনফিগারেশন।যদি আপনি একটি নির্দিষ্ট পরিবেশের জন্য কনফিগারেশন পরিবর্তন করতে চান, তাহলে appsettings.Development.json
ফাইলে সেই কনফিগারেশন মান যুক্ত করুন এবং ASP.NET Core স্বয়ংক্রিয়ভাবে সেই ফাইলটি লোড করবে।
উন্নয়ন পর্যায়ে, অ্যাপ্লিকেশনের সিক্রেট ডেটা (যেমন API কী, ডেটাবেস পাসওয়ার্ড) সুরক্ষিত রাখার জন্য Secrets Manager ব্যবহার করা যেতে পারে। এটি ডেভেলপমেন্ট পরিবেশে .NET
অ্যাপ্লিকেশনের জন্য নিরাপদ কনফিগারেশন মান সংরক্ষণ করতে ব্যবহৃত হয়।
Secrets Manager ব্যবহার করতে, আপনি নিচের কমান্ডটি দিয়ে কনফিগারেশন সিক্রেট তৈরি করতে পারেন:
dotnet user-secrets set "MyAppSettings:ApiKey" "your-api-key"
এটি আপনাকে অ্যাপ্লিকেশনের সিক্রেট ডেটা নিরাপদে সংরক্ষণ এবং ব্যবহার করতে সাহায্য করবে।
appsettings.json
ফাইল ASP.NET Core অ্যাপ্লিকেশনের কনফিগারেশন সংরক্ষণ করার জন্য একটি গুরুত্বপূর্ণ উপকরণ। এটি অ্যাপ্লিকেশন সেটিংস, লগিং কনফিগারেশন, ডেটাবেস সংযোগ স্ট্রিং, API কী এবং আরও অনেক কিছু সংরক্ষণ করতে ব্যবহৃত হয়। কনফিগারেশন ডেটা অ্যাক্সেস করার জন্য IConfiguration
ইন্টারফেস এবং মডেল বাউন্ড কনফিগারেশন ব্যবহার করা যেতে পারে। এছাড়া, পরিবেশ ভিত্তিক কনফিগারেশন এবং সিক্রেট ম্যানেজমেন্টের মাধ্যমে সুরক্ষিত এবং স্কেলযোগ্য কনফিগারেশন সিস্টেম তৈরি করা সম্ভব।
common.read_more