تعيين قيمة في appsettings بناءً على ملف نشر في .NET Core
تُعتبر ملفات الإعداد (appsettings) في تطبيقات .NET Core وسيلة أساسية لتخزين إعدادات التكوين المختلفة. تتيح لنا هذه الملفات ضبط القيم المطلوبة لتشغيل التطبيق بطريقة مرنة وسلسة. أحد الاستخدامات الشائعة هو تغيير إعدادات التطبيق بناءً على ملف تعريف النشر (publish profile) المستخدم، مما يسهل إدارة بيئات مختلفة مثل الإنتاج والاختبار.
إدارة إعدادات التطبيق باستخدام ملفات تعريف النشر
عندما نستخدم .NET 6.0، يمكننا إعداد ملفات appsettings.json
بشكل ديناميكي، بحيث يتغير الإعداد وفقًا لملف تعريف النشر المحدد. على سبيل المثال، إذا كان لديك ملف appsettings.json
الأساسي الذي يحتوي على معلومات عن العميل، فيمكنك استخدام ملفات متميزة مثل appsettings.Mordor.PROD.json
و appsettings.Mordor.STAGE.json
. يتم تحديد أي ملف سيتم استخدامه بناءً على قيمة متغيرات مثل Name_of_client
و Environment_of_client
.
يمكنك إدارة هذا التغيير بشكل أفضل من خلال ملفات تعريف النشر. إذا كان لديك ملف تعريف نشر مثل mordor-prod.pubxml
، فيمكن أن يقوم بحقن إعدادات معينة ضمن تطبيقك، مما يضمن استخدام قيم محددة تتناسب مع البيئة المستهدفة.
تعديل ملف تعريف النشر
لتنفيذ ذلك، يمكنك تعديل ملف تعريف النشر عن طريق إضافة التعليمات الخاصة بإعدادات التطبيق. فعلى سبيل المثال، يمكنك ضبط إعدادات التطبيق عندما يتم نشره للإنتاج باستخدام القيم المناسبة. حيث يمكنك استخدام كود كالتالي في ملف mordor-prod.pubxml
:
<Project>
<PropertyGroup>
<PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
<UseMsDeploy>True</UseMsDeploy>
<MsDeployServiceURL>https://your-server-url.com:8172/msdeploy.axd</MsDeployServiceURL>
<DeployIisApp>Default Web Site/MyApp</DeployIisApp>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<AppSettings>Client_Version:Name_of_client=Mordor;Client_Version:Environment_of_client=PROD</AppSettings>
</PropertyGroup>
</Project>
هذا الكود يمكنه التأكد من أن القيم المناسبة سيتم نشرها مع التطبيق، مما يضمن توافق إعدادات التطبيق مع بيئة الإنتاج.
كيفية استخدام ملفات Appsettings متعددة
عند استخدام طريقة متعددة الملفات، يجب أن تكون حذرًا عند تنظيم ملفات الإعدادات. تأكد من أن كل ملف يتم تسميته بشكل يعكس البيئة التي يعمل فيها. مثلاً، في حالة بيئة الإنتاج، اسم الملف يمكن أن يكون appsettings.Mordor.PROD.json
، بينما لبيئة الاختبار يمكن أن تسمى appsettings.Mordor.STAGE.json
.
بمجرد نشر التطبيق، سيقوم .NET بشكل تلقائي بتحميل ملف الإعداد المناسب استنادًا إلى ملف تعريف النشر. وهذا يجعله حلًا مرنًا لإدارة إعدادات التطبيق الخاصة بك دون الحاجة إلى تغيير أكواد المصدر في كل مرة.
قم بتهيئة التطبيق ليقبل التغييرات
لتمكين تطبيق .NET الخاص بك من قراءة القيم من ملف الإعدادات بشكل صحيح، يجب عليك إعداد البيئة بشكل جيد. تأكد من أن تطبيقك يمكنه تحميل ملفات الإعدادات المناسبة من خلال الكود التالي:
public void ConfigureAppSettings(IConfigurationBuilder config)
{
var appSettingsPath = Path.Combine(AppContext.BaseDirectory, "appsettings.json");
config.AddJsonFile(appSettingsPath, optional: true, reloadOnChange: true);
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";
config.AddJsonFile($"appsettings.{env}.json", optional: true, reloadOnChange: true);
}
بهذه الطريقة، سيكون تطبيقك قادرًا على قراءة الإعدادات المتنوعة من ملفات متعددة بناءً على ملف تعريف النشر المستخدم.
ختامًا
تعد عملية التغيير في إعدادات appsettings
باستخدام ملف تعريف النشر واحدة من أكثر الميزات فائدة في .NET Core، حيث تعزز من مرونة تطبيقك وتضمن تقديم قيم صحيحة في البيئات المختلفة. من خلال تنظيم ملفات الإعدادات وتحديثها حسب الحاجة، يمكنك تبسيط إدارة إعدادات التطبيق بالشكل الذي يناسب احتياجات العمل، مما يضمن تجربة مستخدم متميزة وصحيحة.
بهذا الشكل، يمكنك الاستفادة بشكل كامل من خصائص C#
وappsettings
بحسب ملف تعريف النشر في .NET Core لضبط تغيرات الإعدادات بجودة واحترافية.