Microsoft yakın zamanlarda Metro Style Apps isminde yeni bir konsept duyurmuş. Windows 8 yüklü tüm platformlarda çalışan bir uygulama türüymüş kendisi. Ben de stajda kendimi bir anda Metro Style Apps geliştirirken buldum. En güzel yanı dil olarak C#, C++, VB, ve Javascript/HTML5 kullanılabiliyor olması.

Tabi ki ilk tercihim Javascript oldu. Lakin error handling falan Javascript'te düşündüğümden çok daha zormuş, asenkron işlemler, callback'ler, türü belli olmayan hatalar, neden kaynaklandığını anlayamadığım eval kod içerisinde patlayan hatalar, programın çökmesi falan derken bir türlü önünü alamadım hataların. Daha sonra dedim bu böyle olmaz, bir iki döküman indirdim Microsoft'un sitesinden ve okumaya başladım Metro Style App nedir, ne değildir.

Neyse, okurken fark ettim ki, Metro Style Apps içerisindeki hataları yakalamak aslında benim düşündüğümden çok daha kolaymış. Neredeyse 3 satır ile programda çıkan tüm hataları görmezden gelebiliyoruz. Böylece program çökmemiş oluyor.

İşte o sihirli kodlar:
WinJS.Application.onerror = function (customEventObject) {
    /**
     * daha sonra debug etmek için hata mesajını yazdıralım.
     */
    console.log("Exception caught: " + customEventObject.detail.errorMessage);
    /**
     * true dönmezsek handle edilmemiş hatalar programı çökertir.
     */
    return true;
};

Metro Style Application geliştirmek bana çok eğlenceli geldi. Özellikle de bu hata yakalama mekanizmasını indirdiğim pdf'den okuduğumda. Okuduğum İngilizce dökümanları da sizle paylaşayım son olarak.

Öncelikle, Metro Style Application nedir, ne değildir?
Sonra, HTML, Javascript ve CSS ile Metro Style Apps Geliştirmek ile ilgili bir e-book
Son olarak da, Uygulamalarımızın Windows Store'a girebilmesi için gereken şartlar

2 yorum

  1. nasil yani simdi butun hatalari cikartiyo mu bu kodlar? dipnot: her zaman demisimdir windows on numara diye. bak yine dogru cikti :d

    YanıtlaSil
    Yanıtlar
    1. Programdaki tüm hatalar bu listener'a düşüyor önce. Eğer bu callback tehlikenin farkındayım deyip true dönmezse program çatlıyor :)

      Sil