Asp.NET projelerimizin olmazsa olmazı -ki olmazsa uygulama çalışmaz :)- web.config dosyamızda <appSettings> düğümü içerisinde uygulamada kullanmak üzere bir çok anahtar tanımlarız. Bunları tıpkı bir class içindeki property’ler gibi etkin kullanabilmek adına kendi projelerimde kullanmak için bir pratik bir yöntem geliştirdim ve paylaşmak istedim. Adım adım nasıl yapılacağını görelim:
Yeni bir “Asp.NET Web Site” oluşturuyoruz. Projemizi bir kez
F5 ile Debug ediyoruz ki
web.configdosyamdaki girdiler VWD ya da VS tarafından güncellensin. Öncelikle aşağıdaki ekran görüntüsünde de görüldüğü üzere sitemize uygulama ayarları için
web.config‘den bağımsız olarak farklı bir
“Web Configuration File” dosyası oluşturup ekliyoruz. Bu dosyaya ben
“appSettings.config” adını veriyorum ve
“App_Data” klasörüne kaydediyorum. Bu klasöre kaydetmek zorunlu değil. Ancak hostta bu klasör varsayılan olarak yazma iznine sahip olduğu için host’a yüklediğimde tekrar yazma izinleri ile uğraşmak zorunda kalmayacağım için tercihimi bu yönde kullandım.
 |
Web.config İle Uygulama Ayarlarını Class Üzerinden Daha Etkin Kullanmak |
Yukarıdaki resimde sağ tarafta oluşturduğumuz yeni konfigrasyon dosyasının içeriği görünmekte. Burada en üstteki
<?xml version="1.0"?> satırı hariç diğer satırları silip onun yerine aşağıdaki gibi
<appSettings></appSettings> düğümünü ekliyoruz. Ayarlarımızı bu düğümler içerisine yazacağız. Örnek olarak aşağıdaki resimde de görüldüğü gibi iki adet anahtarımız var.
 |
Web.config İle Uygulama Ayarlarını Class Üzerinden Daha Etkin Kullanmak |
Şimdi
web.config dosyamızda yeni oluşturduğumuz bu dosyanın yolunu <configuration>düğümünün hemen altında aşağıdaki biçimde tanımlıyoruz:

Şimdi projemize bir
“App_Code” klasörü ekleyip uygulamamız içinden bu değerlere pratik bir biçimde erişebileceğimiz, güncelleyebileceğimiz class’larımızı yazmaya başlayabiliriz. İlk class’ımızbizim ayarları güncelleyebileceğimiz metodumuzu barındıran
SettingsBase isimli class’ımız olacak. Bu class’ı
SettingsBase.cs isimli dosya adı ile oluşturuyoruz.
 |
Web.config İle Uygulama Ayarlarını Class Üzerinden Daha Etkin Kullanmak |
SettingBase.cs dosyası içeriği:
Buradaki
SaveSetting metodunu bilinçli olarak static tanımladım. Böylece class’ın yeni bir instance’ını oluşturmak zorunda kalmadan değeri
set edebiliriz. Ayrıca
appSettings.configdosyanızı
App_Data dışında bir klasöre kaydettiyseniz, metot içindeki
string baseDir = System.Web.HttpContext.Current.Server.MapPath(“~/App_Data/”); satırını da ona göre değiştirmelisiniz.
Şimdi ise
Settings isimli ayarlarımızın property’lerinin bulunacağı class’ımızı
Settings.cs dosya adıyla oluşturacağız. Ve class’ı da
SettingsBase isimli class’ımızdan türeteceğiz ki oradaki
SaveSetting metodunu kullanabilelim.
Setting.cs dosyası içeriği:
 |
Web.config İle Uygulama Ayarlarını Class Üzerinden Daha Etkin Kullanmak |
Artık ayarlarımızı class’ımız üzerinden
get/set edebiliriz. Örnek olarak sitemizin ana sayfasının browser başlığını bu class içindeki property’den alalım. Bunun için Page_Load event’i içinde aşağıdaki kodu yazmamız yeterli olacaktır:
 |
Web.config İle Uygulama Ayarlarını Class Üzerinden Daha Etkin Kullanmak |
Sonuç olarak aşağıda görüldüğü gibi browser’ımızın başlığı bizim
appSettings.config içinde tanımladığımız değer oldu. Aynı şekilde asp.net sayfamız içindeki bir kontrole ya da kodumuz içindeki herhangi bir string değişkene de atayabiliriz.
Bir de tanımladığımız bir değeri değiştirmeyi deneyelim. Mesela browser başlığını değiştirelim. Bunun için aşağıdaki kod bloğunu çalıştıralım:

İşte appSettings.config içindeki “SiteTitle” anahtarımızın değeri:
 |
Web.config İle Uygulama Ayarlarını Class Üzerinden Daha Etkin Kullanmak |
Görüldüğü gibi
Settings class’ımızdaki property üzerinden hem
get hem de
set işlemini pratik bir biçimde yapabiliyoruz. Siz kendi projelerinizdeki ihtiyaçlara göre bu class’ı geliştirebilirsiniz. Mesela Int32 türünde değer alan property’ler için
set bloğunda bir
TryParse denetimi ile tam sayı (integer) olmayan değerlerin kaydedilmesini engelleyebilirsiniz.
Kaynak