Makale Özeti

Exception Management Application Block oluşabilecek hataları yakalamak için kullanılır. Bu bileşen sayesinde oluşabilecek hataları Event Log’a yazabilir veya istediğimiz ortama kaydedebiliriz.

Makale

Exception Management Application Block

   Exception Management Application Block oluşabilecek hataları yakalamak için kullanılır. Bu bileşen sayesinde oluşabilecek hataları Event Log’a yazabilir veya istediğimiz ortama kaydedebiliriz.
   Bir uygulamanın mimarisi oluşturulurken en önemli noktalardan bir taneside hata takibidir. Hem uygulama tarafından oluşabilecek hataları, hemde kullanıcıların yapabileceği hataları iyi tasarlayıp, onlara göre gerekli önlemleri almalıyız. Ayrıca eğer bu oluşabilecek hataları bir yerlerde saklarsak onları takip edip sonrasında sıklıkla görülen sorunlara göre uygulamamızı daha verimli hale getirebiliriz.
   Exception Management Application Block ile yapabileceklerimiz:
•    Hata yönetiminde verimli ve tutarlı bir yol sağlar.
•    İş mantığı kodlarından, hata yönetimi kodlarını ayırır.
•    Hata durumlarına bir ortamda saklayabilmemizi sağlar.
   Exception Management Application Block ile hataları yayınlayabiliriz:

   Catch ex As Exception
        ExceptionManager.Publish( ex )

   Gerekli kurulumları yaptıkdan sonra kullanacağımız assembly’nin kodları açık olarak gelir. Bu kodları istediğimiz şekilde, ihtiyaçlarımıza göre değiştirebilme imkanımız vardır.
   Exception Management Application Block yüklenmesi ile, Visual Basic .NET ve C# versiyonları üç proje içerir:
•    Microsoft.ApplicationBlocks.ExceptionManagement: Bu projenin derlenmesi ile Microsoft.ApplicationBlocks.ExceptionManagement.dll assembly’si oluşur. Bu assembly, birinci olarak hataları yayınlayabilmek için ExceptionManager sınıfını içerir, DefaultPublisher sınıfı ile oluşan hatanın detaylarını Windows Event Log’a yazar ve ExceptionManagerInstaller sınıfı kurulum zamanı oluşturulan olay kaynaklarını Event Log için kullanır.
•    Microsoft.ApplicationBlocks.ExceptionManagement.Interfaces: Bu projenin derlenmesi ile Microsoft.ApplicationBlocks.ExceptionManagement.Interfaces assembly’si oluşur. Bu assembly, yayınlama sınıfı tarafından oluşturulmuş arayüzleri içerir. DefaultPublisher sınıfını içerir ve opsiyonel olarak sizin kendinize ait yayınlarınızı içerir.
•    Exception Management Quick Start Samples: Bu proje Exception Management Application Block’un kullanımı ile ilgili başlangıç uygulamaları ve kullanım örneklerini içerir. Bu proje derlendikden sonra basit bir istemci uygulaması oluşur. Exception Management Application Block’un kullanımında ve uyarlanmasında yardımcı olur.

Sistem Gereksinimleri
•    Microsoft Windows® 2000, Windows XP Professional
•    .NET Framework SDK’nın RTM versiyonu
•    Visual Studio .NET’in RTM versiyonu (zorunlu değildir ancak tavsiye edilir)

Exception Management Application Block’un Yüklenmesi ve Kurulması
   Kurulum dosyası, Exception Management Application Block projeleri, kaynak kod ve dökümantasyon içerir.
   Yüklemek için gerekli adres:
   http:// www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=8CA8EB6E-6F4A-43DF-ADEB-8F22CA173E02

Exception Management Application Block Kullanımı
Hataların Yayınlanması
   Resim 1’de Exception Management Application block entegrasyonu, uygulama içinde oluşabilecek hata durumda çalışma mantığı gösterilmektedir:

   

Resim 1. Exception Management Application Block Kullanımı
   Resim 1’de gördüğünüz akışda, hata yayınlama mantığı:
1.    Exception Management Application Block’un, BaseApplicationException sınıfı tarafından uygulama tarafından oluşan hata yakalanabilir.
2.    ExceptionManager sınıfının, Publish metodunu uygulama çağrılır.
3.    Uygulamanın hata yönetim ayarlarını almak için ExceptionManager sınıfı, ExceptionManagerSectionHandler sınıfını kullanır.
4.    Hata yönetim ayarları uygulamanın konfigürasyon dosyası içinde yer alır. Bu dosya hataların nasıl yayınlanacağına karar vermek için okunur.
5.    Eğer herhangi bir ayar mevcut değilse, hatalar Windows Event Log içinde yayınlanır. Bu işlemide DefaultPublisher sınıfı aracılığı ile yapar.

Exception Management Application Block Referansları
   Exception Management Application Block’u kullanabilmek için yapmamız gerekenler;
1.    Microsoft.ApplicationBlocks.ExceptionManagement projesini derleyin ve Microsoft.ApplicationBlocks.ExceptionManagement.dll bileşenini oluşturun.
2.    Microsoft.ApplicationBlocks.ExceptionManagement.dll bileşenini projenize referans olarak ekleyin.
3.    Projenize Visual Basic .NET için ise Imports ifadesi ile Microsoft.ApplicationBlocks.ExceptionManagement ad uzayını tanımlayın.
   ExceptionManager sınıfının Publish metodunu kullanarak hataları yayınlayabilir durumdayız.

   Catch ex As Exception
        ExceptionManager.Publish( ex )

Exception Manager Application Block Konfigürasyonu

   Exception Management Application Block kontrolünü, standart .NET XML uygulama konfigürasyon dosyalarından sağlar. ASP.NET uygulamaları için web.config, Windows uygulamaları için appname.exe.config dosyalarını kullanır.
Eğer konfigürasyon dosyasındaki ayarları kullanmıyorsanız, varsayılan olarak Windows Event Log kullanılacaktır.
Konfigürasyon Biçimi
   Konfigürasyon dosyasındaki hata yönetim ayarları aşağıdaki biçimde olmalıdır:
   
       
           

            type=" Microsoft.ApplicationBlocks.ExceptionManagement
            ExceptionManagerSectionHandler,
            Microsoft.ApplicationBlocks.ExceptionManagement" />
       

   
                    exclude="(+)Type,(+)Type" include="(+)Type,(+)Type"
            exceptionFormat="xml" customattr = "value" />
       

   

    elementi, elementi ile ExceptionManagerSectionHandler sınıfını birleştirir, aynı zamanda konfigürasyon dosyasının elementinden, ayarların ayarların okunmasından da sorumludur.
    element’inin özellikleri ile tüm hataların yayınlanıp / yayınlanmaması için kullanabiliriz. Herbir kişiselleştirilecek elementi altında tanımlanır. elementi ile, yayımlamalarınızı kişiselleştirebilirsiniz. Yapabileceklerimiz:
•    Seçilmiş yayınları geçerli kılabilir veya kaldırabilirsiniz.
•    Özel hata tiplerini içeri alabilir veya kabul etmeyebilirsiniz.

Kaynak: http://msdn.microsoft.com/li brary/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp

Yeliz Korkmaz, MVP
yelizkorkmaz@tnn.net