ASP.NET’te Özel Web.config Bölümleri Nasıl Tanımlanır
Web uygulamaları geliştirirken, genellikle farklı ortamlar arasında değişebilen yapılandırma ayarlarını yönetmeniz gereken durumlarla karşılaşırsınız. Uygulamanızın birlikte değişmesi gereken bağımlı ayarları gerektirdiğinde bu durum giderek karmaşıklaşır. Bunu aşmak için iyi bir çözüm, özel web.config
bölümleri tanımlamaktır. Bu kılavuz, bu özel bölümlerin yanı sıra nitelikler ve çocuk öğeler ile etkili yapılandırma yönetimi için nasıl oluşturulacağını açıklayacaktır.
Özel Web.config Bölümlerini Anlamak
Varsayılan olarak, web uygulamaları yapılandırma ayarları için basit anahtar-değer çiftleri kullanır. Ancak, uygulamanız büyüdükçe, değerler birbirine bağlı olduğunda veya yapılandırmalar ortam başına değişmesi gerektiğinde, netliği korumak kritik hale gelir. Özel bölümler, ilgili ayarları bir araya gruplamak için size olanak tanır, böylece bunları yönetmek ve anlamak daha kolay olur.
Özel Yapılandırma Bölümleri Oluşturmak İçin Adım Adım Kılavuz
1. Yapılandırma Bölümünü Tanımlayın
Özel bir yapılandırma bölümü oluşturmak için, ASP.NET uygulamanızda ConfigurationSection
temel sınıfını kullanarak yeni bir sınıf tanımlamanız gerekecek. Aşağıda, uygulamanızda izin verilen kullanıcı disk alanını tanımlayan özel bir yapılandırma bölümüne örnek verilmiştir.
Örnek: MailCenterConfiguration.cs
namespace Ani {
public sealed class MailCenterConfiguration : ConfigurationSection {
[ConfigurationProperty("userDiskSpace", IsRequired = true)]
[IntegerValidator(MinValue = 0, MaxValue = 1000000)]
public int UserDiskSpace {
get { return (int)base["userDiskSpace"]; }
set { base["userDiskSpace"] = value; }
}
}
}
Web.config’i Güncelleyin
Özel yapılandırma bölümünüzü web.config
dosyasında aşağıdaki gibi kaydetmeniz de gerekecek:
<configSections>
<!-- Mailcenter yapılandırma dosyası -->
<section name="mailCenter" type="Ani.MailCenterConfiguration" requirePermission="false"/>
</configSections>
...
<mailCenter userDiskSpace="25000">
<mail host="my.hostname.com" port="366" />
</mailCenter>
2. Çocuk Öğeleri Uygulamak
Özel yapılandırma bölümünüz içerisinde çocuk öğeleri tanımlamak sıklıkla gereklidir. Örneğin, ek özellikler içeren ayrı bir mail
öğesi tanımlanabilir.
MailCenterConfiguration.cs’yi Geliştirme
Mail ayarlarına özgü yapılandırmaları işlemek için çocuk MailElement
sınıfını ekleyin:
public sealed class MailCenterConfiguration : ConfigurationSection {
[ConfigurationProperty("mail", IsRequired = true)]
public MailElement Mail {
get { return (MailElement)base["mail"]; }
set { base["mail"] = value; }
}
public class MailElement : ConfigurationElement {
[ConfigurationProperty("host", IsRequired = true)]
public string Host {
get { return (string)base["host"]; }
set { base["host"] = value; }
}
[ConfigurationProperty("port", IsRequired = true)]
[IntegerValidator(MinValue = 0, MaxValue = 65535)]
public int Port {
get { return (int)base["port"]; }
set { base["port"] = value; }
}
}
}
3. Yapılandırma Değerlerini Erişmek
Yapılandırma bölümlerinizi kurduktan sonra, uygulamanızda bunlara erişmek oldukça basittir. Değerleri otomatik olarak web.config
‘den okuyacak yapılandırma nesnenizi oluşturabilirsiniz.
Erişim Kodu Örneği
İşte MailCenterConfiguration
özelliklerine nasıl erişeceğiniz:
private static MailCenterConfiguration instance = null;
public static MailCenterConfiguration Instance {
get {
if (instance == null) {
instance = (MailCenterConfiguration)WebConfigurationManager.GetSection("mailCenter");
}
return instance;
}
}
4. Geçerlilik Kontrolleri Uygulamak
Uygulamanızın geçersiz yapılandırma verilerinden kaynaklanan sorunlar olmadan başlatılmasını sağlamak için, yapılandırmanızı uygulamanın başlangıç aşamasında yüklemelisiniz. Böylece, geçerlilikte bir hata meydana geldiğinde, daha sonra bir çalışma zamanı hatası yerine hemen bir istisna göreceksiniz.
Global.asax Örneği
protected void Application_Start(object sender, EventArgs e) {
MailCenterConfiguration.Instance;
}
Sonuç
ASP.NET uygulamalarınızda özel web.config
bölümleri tanımlamak, ilgili ayarları gruplamanızı, kısıtlamalar eklemenizi ve farklı ortamlar arasındaki netliği sağlamanızı sağlayarak yapılandırma yönetiminizi önemli ölçüde geliştirebilir. Bu kılavuzda açıklanan adımları takip ederek, karmaşıklıkla ölçeklenebilen yapılandırma için yapılandırılmış ve sağlam bir yaklaşım oluşturabileceksiniz.
İster disk alanını yönetmek, ister başka herhangi bir bağımlı ayarları düzenlemek, özel yapılandırma bölümlerinin kullanılması uygulamalarınızın ihtiyaçlarını daha iyi karşılayacaktır.