Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Caner Şahan
Caner Şahan
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
24 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: altinda anahtar anahtarin aracini database? diyebiliriz. gconf? kullanarak kullanisli okunabilir oldugu semalar sisteminde uygulamalarin yapmak Mono ve .NET Caner Şahan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : Mono ve .NET
Yayınlanma Tarihi : 17.5.2005
Okunma Sayısı : 28183
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 24.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 24.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 24.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 24.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
GConf ve Mono Bölüm 1
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Mono’nun gconf ile çalışmasını incelemeden önce gconfun ne olduğuna, ne işe yaradığına bakmakta yarar olduğu kanısındayım. GConf’ a gnome masaüstü yönetim sisteminde uygulamaların referanslarının tutulduğu bir bilgi database’ i diyebiliriz. GConf modern uygulamalar geliştirmek için çok kullanışlı bir database’ dir. Buradaki database kelimesinden aklımıza Ms SQL veya MySql gelebilir fakat bahsi geçen database’ in çalışma şekli diğer gelişmiş veritabanı yönetim sistemlerinden biraz daha farklıdır. Hala daha neden bahsediyor bu adam yav diyerek kendi kendinize düşünüyor olabilirsiniz. Bu noktada hemen bir benzetme yaparak kafalardaki soru işaretlerini kaldırmak istiyorum. GConf için windows işletim sisteminde sıklıkla kullanılan Registry Editor’ un Gnome üzerindeki hali diyebiliriz. Umarım şimdi çoğu windows programcısı şöyle bir "hımmmm" diyerek koltuklarına yaslandılar. GConf, Gnome masaüstünü kurarken yüklenir. Eğer yüklemediyseniz de sorun değil çünkü açık kaynak kodlu yazılımlarda internet bağlantınızın olması yeterli. GConf’u ftp://ftp.gnome.org/pub/GNOME/sources/GConf/1.2 adresinden rahatlıkla günün 24 saati indirebilirsiniz.



şekil-1 registry editorunden bir görünüm  



Şekil-2 GConf-Editorunden bir görünüm

GConf kendi içerisinde mantıksal olarak düzenlenmiş bir anahtar hiyararşisine sahiptir. Bu hiyararşinin sağlanması masaüstü uygulamalarının yönetimini kolaylaştırmıştır. Her bir dosyanın kendi anahtarı olabileceği gibi birden fazla da anahtara sahip olabilir. Anahtardan kastedilen kavram ise saklanacak ve referans gösterilecek olan değerlerdir. Mesela /apps/metacity/general/titlebar_font  gibi bir hiyararşi lokasyonunu incelersek buradaki titlebar_font anahtarı integer bir deger tutmakta ve titlebar’ ın yazı karakteri boyutunu saklamaktadır.



Şekil-3 Anahtar ile ilgili bir örnek

Dosyaların altındaki her bir anahtarın çok güzel bir şekilde dökümante edildiğini görmekteyiz. Buda GConf’ un estetik ve yararlı bir yönü. Yukarıdaki şekillerde görmekte olduğumuz GConf-editor çok kullanışlı bir arayüz olmasına karşın tam olarak tamamlanamadığı için bazı özel işlemleri konsol ekranına girerek yapmak durumunda kalmaktayız. Bunun için gconftool-2 konsol aracını kullanarak bu işlemleri rahatlıkla yapabiliyoruz. Bu aracı kullanarak Gconf içerisinde bir dizinin tüm altdizinlerini listeleyebiliriz. Örneğin, /desktop/gnome dizinin alltındaki tüm dosyaları;



Şekil-4 gconftool aracı kullanımı

GConf’ ta her değerin saklandığı lokasyonlar konfigürasyon kaynağı(configuration source) olarak isimlendirilir. Konfigürasyon kaynakları sistemizde /etc/gconf/<version>/ adresi altında bulunurlar. Bu lokasyonlarda gezinirken dosya ve dizin hiyararşisinden başka birşey olmadığının farkına varabilirsiniz. Bu dizinlerdeki dosyaların xml dosyaları olduğunu görüceksiniz.



Şekil-5 konfigürasyon kaynakları



Şekil-6 anahtarın metadatası

GConf’ ta  bazı değerler kendiliğinden konfigüre edilmiş olarak gelirler ve değiştirilmelerine izin verilmez yani sadece okunabilir özelliğe sahiptirler. Bu özel konfigürasyonların sadece okunabilir olması bilmeyerekte olsa silinmesi gibi hataları önlemek içindir. Sadece okunabilir şekildeki konfigurasyonlar tüm sistem kullanıcıları için zorunlu(mandatory) edilen ayarlardır.

gconftool-2 xml:readonly: /etc/gconf/.xml.mandatory
gconftool-2 include "$(Home) /.gconf.path
gconftool-2 xml:readwrite: $(Home) /.gconf
gconftool-2 xml:readonly :/etc/gconf/gconf.xml.defaults
Görmüş olduğunuz komutlar gconftool-2 aracını kullanarak çeşitli ayarlamalar yapmak için kullanılır. include komutu kullanıcıların kendi konfigurasyon dosyalarını belirterek HOME dizin adresini içermesini sağlar. readwrite komutuda kullanıcının yapmış olduğu ayarların sonradan değiştirilebileceği anlamında kullanıcılara sunulmasıdır. readonly’ de yapmış olduğumuz ayarların sadece okunabilir olmasını ve sonradan değiştirilememesini sağlar.

Şemalar

Daha önce anahtarımın aslında bir xml dosyası altında tutulduğunu görmüştük. Bu xml dosyaları bir çok türden (int,string,boolean...) değerleri saklamaktadır. Bu değişkenler saklanırken belirli şemalar kullanılmaktadır. Şemalar bir demet metabilgisinin konfigürasyon ayarlarını tutar. Bu metabilgisi değerin tipini, ayarlar hakkında kısa bilgileri ve factory default değerlerini tutarlar. Şemalar /schemas dizin başlığı altında toplanırlar. gconftool-2 aracını kullanarak anahtarın kullandığı şema bilgilerini görebiliriz.



şekil-7 şemaların özellikleri

Genelde uygulama geliştiriciler bir yazılım geliştirirken kullandıkları şemayı kendileri yaratmak isterler ve geleneksel olarak bunu .schemas uzantısı ile kaydederler. Bu format insanların okuyabileceği bir yöntemdir. Fakat bu dosyalar gconf ile doğrudan kullanılamaz. Bunun yerine uygulamayı "make install" veya rpm/deb paketlerini yüklediğimiz zaman gconftool’ u kullanarak uygun şemalara geçmesini sağlarız. Şema dosyalarının bulunduğu yer ise /etc/gconf/schemas lokasyonudur.



Şekil-8 şema dosyalarının lokasyonları

GCong kullanıcılar için bekletici bir programdır(daemon)(gconfd)

GConf’ un ana olarak sağladığı her kullanıcı için bekletici bir program(daemon) olmasıdır. Bu daemon’ ın birinci özelliği uygulamanın konfigurasyon değeri değiştiği zaman uygulamayı uyarmasıdır. Daemon’ ların ikinci önemli bir görevide cache’ de değerleri tutması ve bu yüzden uygulamaların xml dosyalarını parse etme zorunluluğunu ortadan kaldırmasıdır. Daeman’ ın cachedeki değerini yeniden yüklemek ve tazeleme yapmak için gconftool-2 aracına SIGHUP sinyalini göndermemiz yeterlidir.

Uygulama geliştirici olarak dikkat edilmesi gereken önemli noktalar vardır. Bunlar anahtar isimlendirmeleridir. Genel olarak uygulamalarımız /app lokasyonu altında yerleşirler. Ayrıca anahtarları küçük harfle ve her kelime alt çizgi ile ayrılacak şekilde düzenlenir. Anahtar isimlendirmelerini bu şekilde yapmamız  zorunlu değildir ama bu şekilde yapmamız okunabilirliği büyük oranda arttıracaktır. /app dizini altına açtığımız dosyaya direkt olarak deger vermekten sakınmalıyız. Bunun yerine mantıksal olarak düzenlenmiş altdosyalara değerler vermek çok daha doğru olacaktır. GConf içinde herşeyi saklamak önerilmemekte ve referans olabilecek değerlerin saklanması önerilmektedir. GConf’ u detaylı bir şekilde inceledikten sonra Mono ile kullanımına bir sonraki makalede geçeceğiz.

Diğer makalede görüşmek üzere...

kaynaklar:

www.go-mono.com
www.gnome.org/projects/gconf/

Makale:
GConf ve Mono Bölüm 1 Mono - Linux'ta .NET Caner Şahan
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor