12 Şubat 2010 Cuma

Web Sitesinde Oluşan Hataları SMS ile Öğrenmek

Kazanın, geliyorum, demeyeceğini hepimiz biliyoruz. Ama bazen, kazanın gelmiş olduğunun haberi bile, zararın boyutlarını azaltmak açısından büyük öneme sahip olabilir. Hele ki söz konusu olan, işletmelerimizin internetteki temsili olan web sitelerimiz ise, hem maddi kayıplar, hem müşteri memnuniyetsizliği söz konusu olabilir.

Çalışma zamanında oluşan hatalardan ya da uygulamanın illegal erişimlere karşı yükselttiği hata seslerinden anında haberdar olmak nasıl mümkün olacak? Elbette sistemdeki tüm etkinlikleri olay görüntüleyicilerden ya da diğer log dosyalarından öğrenebiliriz. Ama biz, log dosyaları arasında ayrıntıları yakalamaya çalışırken, çok şey kaybetmiş de olabiliriz. Aşağıda anlatacağım yöntem, Google Calendar Api ve C# kullanarak tarafımızdan yazılmış ve web sitesinde oluşan bütün hataları, en geç 2 dakika içinde size SMS yolu ile bildirebilecek bir uygulamadır. başarısından memnun kalınmış bir yöntemdir.

Ne gerekiyor?
1) Google Calendar'a erişim için bir Google hesabı. Gmail hesabınız var ise, Google diğer hizmetlerine olduğu gibi Google Calendar'a da ayrıca bir üyelik gerekmeden erişebilirsiniz.
2) Yazılımımızı Google Calendar ile bağlantılayacak olan uygulama arayüzleri (API) http://code.google.com/p/google-gdata/downloads/list adresinden .NET platformu için gereken paketleri indirebilirsiniz.
3) Google Calendar hesabınıza, GSM numaranızı kaydetmek ve SMS yolu ile gelen doğrulama kodunu, Google Calendar'a bildirmek
4) Uygulamamız için hazırlanmış bir adet Global.ASAX dosyası.

Uygulamanın Anatomisi

Google Calendar'a girdiğiniz etkinlikler; etkinliğie belirli bir süre kala(bu süreyi de siz beliyorsunuz, 1 saat, 1 gün, 1 dakika vs.) size seçeceğiniz bir yolla SMS ya da Email etkinlik hatırlatması gönderiyorlar. Uygulamamız da Google Calendar'ın bu özelliği üzerine bina edilecek. Uygulamamızda bir hata oluştuğunda,;Google Calendar'a bir etkinlik gireceğiz ve bu etkinliğin gerçekleşme zamanı, uygulamamızdaki hatanın oluştuğu zamandan 2 dakika sonrası olarak planlanacak ve yine girdiğimiz bu etkinliğe bir de etkinlik için hatırlatma gireceğiz ve bu hatırlatma, etkinlik tarihine 1 dakika kala bize SMS yolu ile yapılacak. İşte bütün mantık bu..

Kod Arka Planı

Global.asax (Global Application Class - Genel Uygulama Sınıfı) dosyası bilindiği gibi uygulama olaylarını yazabileceğimiz bir dosya. Uygulama başlangıçı ve bitişini imleyen olayların yer aldığı bu dosyada, oturum başlangıcında ve bitşiinde tetiklenecek olaylar da yer almaktadır.
Uygulamamızda bir Global.ASAX dosyası yaratıyoruz.
Hemen sonra, bu kütüphaneleri uygulamamıza referans olarak ekliyoruz. Sistemimize bağlantı kütüphaneleri (DLL) referans olarak eklendikten sonra, aşağıdaki ad alanlarını sistemimize ekliyoruz.
< % @ Import Namespace="Google.GData.AccessControl" % >
< % @ Import Namespace="Google.GData.Calendar" % >
< % @ Import Namespace="Google.GData.Client" % >
< % @ Import Namespace="Google.GData.Extensions" % >

Esas işi yapacak olan koda geldi sıra. Aşağıdaki kodu da, Google hesabınıza ait gerekli bilgileri girerek, Global.ASAX dosyamızdaki Application_Error olayına ekliyoruz.

Exception hata = Server.GetLastError();

CalendarService myService = new CalendarService("uygulama1");

myService.setUserCredentials(account@gmail.com, "password");

Google.GData.Calendar.EventEntry entry = new Google.GData.Calendar.EventEntry
(Request.Path.ToString()+":"+hata.InnerException.Message, Request.Path.ToString()
+":"+hata.InnerException.Message, "web");


DateTime zaman = new DateTime(DateTime.Now.Year, DateTime.Now.Month,

DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.AddMinutes(2).Minute, 0);

When eventTime = new When(zaman, zaman.AddMinutes(3));

Reminder r = new Reminder();

r.Method = Reminder.ReminderMethod.sms;

r.Minutes = 1; entry.Times.Add(eventTime);

entry.Reminders.Add(r);

Uri postUri = new Uri("http://www.google.com/calendar/feeds/default/private/full");

myService.Insert(postUri, entry);


Hepsi bu kadar.
Kolaylıklar dilerim,
Saygılarımla.




Hiç yorum yok: