22 Haziran 2014 Pazar

Fantom Projesi: Konfigurasyon

Bugün sizlere fantom projesinin konfigurasyonundan bahsedeceğim.

Projemizin sitesine erişmek için fantom.codeplex.com adresini kullanın. "Source Code" sekmesine geçip "fantomsettings" klasörü altında bulunan "configsettings.vb" dosyasını açın.

Projenin temel sınıfı "System.Configuration" uzayından "ConfigurationSection" sınıfını türeterek oluşturuyoruz. Bunun sebebi eğer "web.config" dosyasına size özgü bir parametre oluşturacaksanız konfigurasyon dosyasını okumaya yarayan nesnenin bu konfigurasyon parametresini yazacağınız sınıfa otomatik dönüştürebilmesini sağlamaktır. Aslında yapılan bir nebze kısmi serileştirmedir (serialization). Şimdi sınıfımıza ihtiyacımıza göre çeşitli özelikler (property) ekleyelim. Ancak ekleyeceğimiz özelliklere öznitelikler de vermeliyiz. Bu serileştirme aşamasında ki gerekli bilgiler için. Eğer Visual Basic kullanıcısıysanız < ve > işaretleri yahut CSharp kullanıyorsanız [ ve ] işaretleri arasında belirtmeniz gerekir. "ConfigurationProperty" nesnesi üzerinden geçirilen bu değerlerin ilki konfigurasyon dosyasında bu özelliğe karşı gelen "tag" dır. diğer değerler ise isteğe bağlı olup değer adı eşitliği değer şeklinde geçirilmiştir. Daha detaylı bilgi ve örnek için bu nesneyi MSDN üzerinden veya bir arama motorundan aratarak ulaşabilirsiniz. Şimdi tanımladığımız özellikleri inceleyelim.

CultureSessionKey: Projemizde kültür kodu dediğimiz (varsayılab değeri tr-TR) değer oturum bilgisinde (session) saklanır. Bu ad varsayılan olarak "SiteCulture" olarak tanımlanmış. Eğer "web.config" dosyasında bu özellik yazılmaz ise bu adla oturuma kaydedilir ve okunur. Değişiklik yapmak için her defasında projeyi yeniden derlemek yerine "web.config" dosyasında özelliğin değeri belirtilmelidir.

ConnectingStringName: Dil kayıtlarının okunması için kullanılacak bağlantının adı. Eğer sitenizin varsayılan veri tabanında bu kayıtları okuyacaksanız, siteniz için oluşturduğunuz bağlantı kodunun web.config de ki adını yazın. Bundan sonra öznitelik parametrelerini söylemeyeceğim, lütfen kod kısmından bakın.

TableName: Dil verisinin tutulduğu tablo adı. Dinamik sorgu oluşturduğu için isterseniz kendinize özgü bir isimle tablo adı atayabilirsiniz. Tablo adı için varsayılan değeri belirtilmiştir.

GroupField: Bu bilgi tabloda hangi alanın grup bilgisini içerdiğini belirtir. Grup verisi eğer bir sayfa yada nesne üzerinde birden çok dil verisi okuyacaksanız işinizi kolaylaştırır. Bu veri sayesinde ilk erişeceğiniz dil verisini çekerken tüm grubu çekerek ön belleğe alıp istediğiniz kaydı döndürür. Daha sonra aynı gruptan başka dil verisini isterseniz sorgu oluşturmak yerine ön bellekten okuyup hızla veri döndürecektir. Bu sebeple aynı sayfadaki kayıtları tek grup altına toplamaya çalışın. Sütun adı için varsayılan değer belirtilmiştir.

KeyField: Okuyacağınız dil verisinin tanımlayıcısının sütun adıdır. Bu sütun adı sayesinde kelime bulunur. Örneğin sayfada Türkçe merhaba ve İngilizce olarak hello yazdıracağınız bir alana ortak bir anahtar atamanız gerekir. Bu örneğe "mrb" diyelim. "mrb" anahtarı ile çağırma yaptığınızda oturumdan okunan dil değerine karşılık gelen veri geri dönecektir. Sütun adı için varsayılan değer tanımlanmıştır.

CultureField: Okuyacağınız verinin hangi dile ait olduğunu belirtirten sütunun adıdır. Bu sütuna oturumdan gelen dil değeri ile filtre yapılarak kelime uygun dile göre bulunur. Örneğin Türkçe için tr-TR Amerikan İngilizcesi için en-US yazabilirsiniz. Sütun adı için varsayılan değer tanımlanmıştır.

ValueField: Tüm filtreler sonucunda kelimenin yazılı olduğu sütunun adını belirtir. Sütun adı için varsayılan değer belirtilmiştir.

Bu yazımda konfigurasyon oluşturmak ve projenin konfigurasyonunda neler olduğunu anlatmış oldum. Bir sonraki yazımda konfigurasyon okumasını içeren sınıfı anlatacağım.

Esenlikle kalın...

0 yorum: