![]() |
| | #1 (permalink) |
| 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 ! | |
| | |
![]() |
| Etiketler |
| csharp, debug, hata ayıklama, yardım |
| Seçenekler | |
| Stil | |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Hata Türleri Nelerdir ? | Taner | C# | 0 | 12-10-2009 23:57 |