مصادر وملفات الإعدادات في الـ ASP.NET Core

23 ديسمبر 2016     435 مشاهدة    0 تعليق
تم النشر في #Configuration  # ASP.NET Core 

هنالك الكثير من المواقع وتطبيقات الويب تحتاج إلى مجموعة من الإعدادات التي قد يحتاج الموقع أو التطبيق لأي غرض كان, وكمطوري ويب بإستخدام تقنية الـ ASP.NET فالكل كل يعرف أن هنالك ملف يدعى Web.Config وهو ملف الإعدادات الذي تحتاجه الـ ASP.NET نفسها حتى لو يكون للمستخدم أي إعدادات خاصة. فهو الذي يحتوي على إعدادات الأمان, التصديق, قواعد البيانات .. إلخ

لكن البعض قد لايدرك أنه بإمكانك حفظ إعداداتك الخاصة, فيتجه الكثير لحفظها في قاعدة البيانات, لكن ملف الـ Web.Config يحتوى على الوسم appSettings الذي يمكنك من إضافة أي إعدادات خاصة بموقعك أو تطبيقك. لكن حديثنا اليوم عند الإعدادات في الـ ASP.NET Core.

قدمت الـ ASP.NET Core أنواع عديدة يمكن حفظ الإعدادات أو القراءة منها, الأ وهي:

  • Azure Key Vault
  • CommandLine
  • Environment Variables
  • INI
  • JSON
  • Memory
  • XML

طبعاً هذه إحدى المزايا التي وفرتها الـ ASP.NET Core وهي تعدد مصادر وملفات الإعدادات, وليس كالإصدارات السابقة التي يضطر المبرمج أن يستخدم ملف الـ Web.Config.

للعلم لا تقف المصادر هنا فالإعدادات في الـ ASP.NET Core قابلة للتمدد ويمكنك إنشاء أي مصدر آخر غير المصادر الموفرة في التقنية نفسها, فعلى سبيل أذكر أني عملت ملف إعدادات يستخدم الـ YAML, يمكنك قراءة المقالة بالتفصيل هنا.

لنلقي نظرة على ملف الإعدادات التالي:

{
  "AppName": "Car Rental",
  "Version": 2,

  "Theme": {
    "Name": "Azure"
  }
}

طبعاً عباره عن ملف JSON بسيط يحتوى على بعض الإعدادات التي يستخدمها تطبيق معين, الآن سوف نتعرف على كيفية إستخدام الـ Configuration APIs في الـ ASP.NET Core وكيفية قراءة الإعدادات.

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(Envirnoment.ContentRootPath)
        .AddJsonFile("appsettings.json");

    Configuration = builder.Build();
}

public IConfigurationRoot Configuration { get; set; }

طبعاً ما نراه أعلاه جزء من الملف Startup وقد تم إستخدام الفئة ConfigurationBuilder لبناء ملف الإعداد الموجود في مجلد الموقع, وتم إستخدام الدالة AddJsonFile لأنه عبارة عن ملف JSON ونفس الحال في بقية المصادر, حيث تم توفير Extension Methods لكل مصدر. من ثم تم إسناد النتيجة في خاصية من نوع IConfigurationRoot فقط لسهولة التعامل مع الإعدادات لاحقاً.

ولقراءة الإعدادات ماعلينا الإ إستخدام التالي:

var appName = Configuration["AppName"];
var theme = Configuration["Theme:Name"];

فخلاصه لما سبق نلاحظ أن الـ ASP.NET Core أعطت المطور إمكانيات لإستخدام أنواع متعددة من مصارد الإعدادات, وأعطته الإمكانيه لصنع مصدر خاص به, كذلك سمحت لنا بالقراءة من أكثر من مصدر في نفس الوقت, وأخيراً وليس آخراً التعديل في ملفاات الإعدادات لا يجعل البيئة التشغيلية تعمل Recylce للتطبيق وتقوم بإعادة تشغيله, وهذا الذي يعاني منه مطورين الـ ASP.NET سابقاً.

أخير أتمنى أن قد تعرفت ولو شيء بسيط عن الإعدادات في تقنية الـ ASP.NET Core وكيفية إستخدامها, أما موضوع تطوير مصدر إعدادات خاص فليس محورنا الأساسي في هذا المقال ولكن وضعت رابطاً سابقاً لمن أراد الإطلاع عليه.

تويتر فيسبوك قوقل + لينكد إن


اكتب تعليقك