MeslekForum Mesleki Gelişim Forumu

Go Back   MeslekForum Mesleki Gelişim Forumu > Bilgisayar Yazılım Donanım > Programlama > C#

Cevapla
 
LinkBack Seçenekler Stil
Alt 08-09-2010, 18:53   #1 (permalink)
Kullanıcı Profili
SITE ADMİN
Taner - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: Oct 2009
Üye No : 2
Mesajlar: 94
Post Hata ayıklama ve iz bulma sınıfları

Trace ve Debug Sınıfları
Bu sınıfların kullanımıyla dosyalama mekanizmasının (Log) olu ş turulması ve
yönetilmesi i ş lemleri yapılmaktadır. Bu sınıfları kullanabilmek için using deyimiyle birlikte
System.Diagnostics namespace’inin projenin ba ş ına yazılması gerekir.
Bu iki sınıf, proje geli ş tirme a ş amasında hata mesajlarını, projenin uygulanması
a ş amasında ise gerekli dosyalama bilgilerini gerekli yerlere yazdırmak açısından birçok
kolaylık sunar. Trace ve Debug sınıflarının tüm özellikleri aynıdır. Tek fark, Debug sınıfı
Release uygulaması içine derlenmemesidir.
Formunuzun üzerinde çift tıklayarak Form’un Load metoduna a ş a ğ ıdaki kod satırlarını
yazınız. Trace ve Debug sınıflarının çalı ş masını basit olarak bu ş ekilde görebilirsiniz.



Bu kod satırları yazıldığında projenizin debug modunda olmasına dikkat ediniz.

Output penceresinde yürütülen i ş lem resim 2.1’deki gibi yansıyacaktır.



Resim 2.1: Trace ve Debug sınıflarının işleyişi

Eğer release modundayken programı çalı ş tırırsanız Debug sınıfı
işletilmeyecek sadece Trace sınıfı işletilecektir.



Resim 2.2: Release modunda Trace sınıfı işletilir.

TraceListener Sınıfları

Kendilerine gelen bilgiyi tutarak ilgili kaynaklara gönderebilen sınıflar Trace ve
Debug sınıflarıdır. Bu işlemleri yapabilmek için TraceListener nesneleri kullanılır. Trace ve Debug sınıflarının Listeners (dinleyici) özelliği TraceListener tipinde koleksiyon referansı tutar.



Bu koleksiyona mevcut TraceListener nesneleri eklenebildi ğ i gibi siz de bir TraceListener sınıfı olu ş turup ekleyebilirsiniz. Hem Trace hem de Debug sınıfı aynı TraceListener koleksiyonunu paylaşır.Bu sınıflara bir Listener eklenirse bu Listener hem Trace hem de Debug sınıfı için geçerli olur.

DefaultTraceListener

Trace ve Debug sınıflarının TraceListener koleksiyonuna varsayılan olarak eklenmiştir.Trace ve Debug’a gönderilen bilgi Output penceresinde gösterilmektedir.



Resim 2.4: Trace ve Debug TraceListener’a default olarak eklenmiştir.

TextWriterTraceListener
Bu listener sınıfı Trace ve Debug sınıflarına iletilen bilgiyi bir dosyaya (Log) yazmak için kullanılır.

Örnek
Bu örnekte metin kutularından girilen iki sayı toplatılıp sonuç yine bir metin kutusuna ve ayrıca, girilen sayılar ve sonuç TextWriterTraceListener ile bir osyaya yazdırılmaktadır.

Bunun için formu resim 2.5’teki gibi tasarlayınız.



Resim 2.5: Formun tasarlanmış hali

Form tasarımından sonra forma ekledi ğ iniz butonun üzerinde çift tıklayarak Click metoduna aşağıdaki kodları yazınız.



Birinci metin kutusundan girilen sayıyı a değişkeni, ikinci metin kutusundan girilen sayıyı b değiş keni tutacaktır. İ kisinin toplamı da sonuc değiş kenine aktarılacaktır. Girilen sayıları ve sonucu dosyaya yazabilmek için FileStream sınıfından “dosya” adlı bir nesne oluşturulur. TextWriterTraceListener sınıfından da “dinleyici” adında bir nesne oluşturularak sonucun “dosya”ya yönlendirilmesi sağlanır. Oluşturulan dinleyici nesnesi Listener sınıfına eklenir.



Resim 2.6: Programın çalıştırılıp sonuçların üretilmesi

Program çalı ş tırılıp sonuçlar üretildikten sonra uygulamanızın varsayılan çalışma klasöründeki “Bin” klasörü altındaki Debug klasörüne program kodunda adını verdiğiniz dosya oluşturulur (Sonuc.txt).



Resim 2.7: Sonuçların dosyaya yazdırılması

Dosya içeri ğ ine bakacak olursanız, veriler iki defa dosyaya yazılmış durumdadır.Bunun sebebi, projenizin Debug modundayken derlenmiş olmasıdır. Eğer Debug modunda değilde Release modunda çalıştırmış olsaydınız resim 2.8’deki gibi bir sonuç alırdınız. Oluşturulan “Sonuc.txt” dosyası da “Bin” klasörü altındaki “Release” klasörü içine oluşturulurdu.



Resim 2.8: Release modunda çalıştırılan projenin ürettiği sonuç

EventLogTraceListener

Trace ve Debug sınıflarına gelen veriyi Windows Eventlog’una (olay dosyasına) gönderir.

örnek ;

Bu örnekte TextWriterTraceListener örneğinde olduğu gibi aynı iş lemleri
yapmaktadır. Fark, sonuçların bir dosyaya değilde sistemin Event Log’una yazdırmasıdır.

Yani, bir önceki örnekte tasarlamı ş oldu ğ unuz formu bu örnek için de kullanabilirsiniz. Yalnız, butona tıklandı ğ ında yapılacak işlemlerimiz değiştiği için “buton1_Click” yordamını aşağıdaki gibi düzenleyiniz.



Sayı giri ş leri ilgili yerlere yapıldıktan sonra EventLog sınıfından “olayim” adlı bir nesne oluşturulmaktadır. EventLogTraceListener sınıfından da “olaydinleyici” adlı bir nesne oluşturarak Listeners sınıfına eklenir. Program çalıştırıldığında elde edilen sonuçlar Trace ve Debug sınıflarıyla EventLog’a yazdırılır.



Event Logs’a gönderilen verileri Server Explorer penceresinden görülür. Her işlemin ardından Event Logs üzerinde sağtık yapıp Event Logs’u Refresh etmeniz gerekir.



Dikkat edecek olursanız yine sonuçlar iki kez yazılmış durumdadır. Demek ki, program Debug modunda çalıştırılmıştır.

App.Config Dosyası

Projede kullanılan, örneğin kullanıcı adı ve şifresi, veri tabanının adı ve şifresi ya da bir veri tabanı dosyasına bağlanıyorsanız, veri tabanının konumu gibi bilgiler değiştirilmek istenebilir. Bu değişiklikler için App.Config dosyası kullanılır. App.Config dosyası bir XML dosyasıdır. XML dosyasının içeriği oluşturulurken yazım kurallarına dikkat edilmelidir. Projenize bir App.Config dosyası eklemek için Project/Add New Item seçeneği seçilip açılan Add New Item iletişim penceresinin Templates bölümünden Application Configuration File seçilip Open düğmesine basılmalıdır.



Projeye eklenen App.Config dosyasının temel yapısı <Configuration> etiketiyle başlar. </Configuration> etiketiyle biter.

Örnek

Bu örnekte, oluşturulmu ş bir App.Config dosyasındaki verilerin formdaki ilgili yerlere getirilmesi yapılacaktır. Verileri App.config dosyasından alabilmek için önce Solution Explorer penceresinde sağtık yaparak Add seçeneği üzerine gelince açılan menüden Add New Item seçimini yapınız ve projenize bir “Application configuration file” ekleyiniz. Ekledi ğ iniz App.config dosyasının içeriğini aşağıdaki gibi düzenleyiniz.



Bu konfigürasyon dosyasına göre kullanaca ğ ımız alan anahtarları “ad” ve “soyad”, değerleri ise value ile verilen değerler olacaktır.Şimdi formu resim 2.12’deki gibi tasarlayınız.



Form tasarlandıktan sonra “OKU” dü ğ mesinin üzerine çift tıklayıp Click() metoduna aşağıdaki kodları yazınız.



Burada AppSettingsReader sınıfı ile “oku” adında bir nesne üretilmiş ve AppSettingsReader sınıfının tek metodu olan “GetValue” özelliği kullanılmıştır. Böylece App.config dosyasındaki string veriler alınıp metin kutularına aktarılmış olacaktır.



Kaynak : MEGEP | Nesne Tabanlı Programlama 4
__________________
Beni Sevmek İçin Programlanma Devrelerini Yakarım !
Taner isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla

Etiketler
csharp, debug, hata ayıklama, yardım

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Hata Türleri Nelerdir ? Taner C# 0 12-10-2009 23:57


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 17:11.


Powered by vBulletin
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30