M E D Y A T Ö R

Tek Bir Kodla Tam Kontrol: .NET Core MVC’de IConfigurationRoot ve ConfigurationBuilder Kullanımı

  • 21

    KASIM

    2024


  • Görüntülenme

Yazılım geliştirmede, yapılandırmaların basit ve yönetilebilir olması çok önemlidir. .NET Core MVC’de IConfigurationRoot ve ConfigurationBuilder sınıfları, uygulamanızdaki yapılandırma ayarlarını merkezi bir yerden kontrol etmenizi sağlar.




IConfigurationRoot ve ConfigurationBuilder Nedir?
  • IConfigurationRoot: Uygulamanızın yapılandırma ayarlarını temsil eden bir arayüzdür. Uygulamanızın farklı kaynaklardan (JSON dosyaları, ortam değişkenleri, komut satırı argümanları vb.) gelen yapılandırmaları birleştirir ve düzenler.
  • ConfigurationBuilder: IConfigurationRoot nesnesini oluşturmaya yarayan sınıftır. Bir “yapılandırma mimarı” gibi düşünebilirsiniz; bu sınıf, yapılandırma kaynaklarını tanımlar ve IConfigurationRoot oluşturur.

 

Neden IConfigurationRoot ve ConfigurationBuilder Kullanmalısınız?

IConfigurationRoot ve ConfigurationBuilder, uygulamanızdaki yapılandırmaları şu avantajlarla sunar:

1.     Esneklik: Farklı dosya ve kaynaklardan ayarları bir araya getirebilir.

2.     Kolay Yönetim: Tek bir yerden tüm yapılandırmaları düzenleyebilir ve özelleştirebilirsiniz.

              3.     Çeviklik: Uygulamanızın farklı ortamlara (geliştirme, test, üretim) uygun yapılandırmalarını kolayca ayarlayabilirsiniz.


IConfigurationRoot ve ConfigurationBuilder Kullanımı

Şimdi, IConfigurationRoot ve ConfigurationBuilder ile yapılandırma işlemlerini adım adım inceleyelim.




 

1.     appsettings.json Dosyasını Ekleyin

.NET Core projelerinde en yaygın yapılandırma kaynağı appsettings.json dosyasıdır. Projeye bir appsettings.json dosyası ekleyerek uygulamanızın ayarlarını buraya tanımlayabilirsiniz:


  {
        "Logging": {
          "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning"
          }
        },
        "ApplicationSettings": {
          "ApiKey": "12345",
          "ApiSecret": "abcdef"
        }
      }


         2.     Startup.cs Dosyasında ConfigurationBuilder Kullanımı

Bu yapılandırma dosyasını uygulamanızda kullanmak için ConfigurationBuilder ile okumamız gerekir:


 public class Startup
    {
        public IConfigurationRoot Configuration { get; }
   
        public Startup(IHostEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
   
            Configuration = builder.Build();
        }
   
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<IConfiguration>(Configuration);
            services.AddControllersWithViews();
        }
    }

Burada, ConfigurationBuilder aracılığıyla appsettings.json dosyasındaki verileri Configuration nesnesine yüklüyoruz. Böylece, uygulamanın her yerinden bu yapılandırmalara kolayca erişebilirsiniz.




 

          3.      Yapılandırmalara Erişim

IConfigurationRoot yapılandırmalarınıza kolayca erişim sağlar. Örneğin, bir controller veya service class’ında yapılandırma ayarlarını şu şekilde alabilirsiniz:


public class HomeController : Controller
    {
        private readonly IConfiguration _configuration;
   
        public HomeController(IConfiguration configuration)
        {
            _configuration = configuration;
        }
   
        public IActionResult Index()
        {
            var apiKey = _configuration["ApplicationSettings:ApiKey"];
            var apiSecret = _configuration["ApplicationSettings:ApiSecret"];
            ViewBag.ApiKey = apiKey;
            return View();
        }
    }



Burada, IConfiguration nesnesini kullanarak appsettings.json dosyasındaki ApplicationSettings bölümüne erişiyoruz. Böylece, yapılandırma ayarlarını kontrol ederek kodunuzun esnekliğini artırabilirsiniz.

 

ConfigurationBuilder ile Esnek Yapılandırma Kaynakları Ekleme

ConfigurationBuilder yalnızca JSON dosyalarından değil, aynı zamanda çevresel değişkenler veya komut satırı argümanları gibi farklı kaynaklardan yapılandırma sağlayabilir.

1.     Ortam Değişkenlerini Kullanma:

    var builder = new ConfigurationBuilder()
    .AddEnvironmentVariables();

 

2.     Komut Satırı Argümanlarını Ekleme:

var builder = new ConfigurationBuilder()
    .AddCommandLine(args);

Bu tür kaynakları kullanarak uygulamanızı farklı ortamlarda (geliştirme, üretim vb.) kolayca yapılandırabilirsiniz.

 

IConfigurationRoot ve ConfigurationBuilder Kullanmanın Faydaları
  • -Kolay Bakım: Uygulamanın farklı parçalarını merkezi olarak kontrol edebilir ve gerektiğinde değiştirebilirsiniz.
  • -Yüksek Esneklik:JSON dosyaları, ortam değişkenleri ve diğer kaynaklardan gelen yapılandırmaları bir araya getirir.
-Daha Az Hata: Farklı ortamlara uygun ayarlarla yapılandırma yaparak hata riskini azaltabilirsiniz.

 

IConfigurationRoot ve ConfigurationBuilder, .NET Core MVC projelerinde yapılandırma işlemlerini kolaylaştırır ve esneklik sağlar. Projenize uyguladığınız bu tekniklerle yapılandırmalar üzerinde tam kontrole sahip olursunuz.