İlkay İlknur

just a developer...

Windows 8 Development'a Giriş ve Windows Runtime(WinRT)

Merhaba Arkadaşlar,

Windows 8' in Build konferansıyla beraber duyurulmasından sonra ortaya çıkan en önemli kafa karışıklıklarından biri de WinRT(Windows Runtime) 'nin ne olduğu konusu. Biz managed developerlar şu ana kadar uygulama geliştirirken .NET Framework'ü kullanmaktaydık. Ancak Windows 8 ile beraber bir de WinRT(Windows Runtime) isimli bir API ile karşılaşmaktayız. Peki bu API ne işe yarıyor nerelerde kullanılıyor gibi konuları Windows 8 developmenta giriş yaptığımız bu ilk yazımızda inceliyor olacağız. Şimdi en baştan başlayalım ;)

Windows 8 Uygulama Geliştirme Platformları

Windows 8 development ile ilgili sanırım söylemem gereken ilk şey .NET Framework'ün hiç bir yere gitmediği. :)  .NET Framework yine managed development platformu olarak  daha önceki Windows sürümlerinde olduğu gibi Windows 8 sürümünde de yer almaya devam ediyor olacak. Peki Windows Runtime hangi noktada devreye giriyor olacak ? Öncelikle aşağıdaki resmi incelemekte fayda var ;)

Yukarıdaki tabloyu incelediğimizde aslında 2 farklı uygulama tipi görmekteyiz. Bunlardan biri Metro Style Apps diğeri de Desktop Apps. Desktop Apps tarafı bizim şu ana kadar geliştirmiş olduğumuz yani .NET Framework kullanarak geliştirdiğimiz klasik masaüstü uygulamaları. Metro Style Apps kısmı ise Windows 8'in daha çok tablet ve dokunmatik cihazlar üzerinde çalışırken kolaylık sağlayacak olan arayüzünde çalışacak olan uygulamalar.

Windows 8'i indirip çalıştırdığımızda aslında karşımıza 2 farklı masaüstü çıkmakta. Bunlardan biri daha önceki Windows sürümlerinden de alışık olduğumuz bir masaüstü. Diğeri ise dokunmatik cihazlarda Windows'un kullanımını kolaylaştıracak ve kullanıcı deneyimini arttıracak olan Metro Style kullanılarak tasarlanmış start menüsü.

Kullanıcı arayüzüne baktığımızda aslında Windows Phone kullananlar için çok farklı bir arayüz olmadığı görüyor olacağız ;)  Konumuza dönersek işte bu Metro arayüzü tarafında çalışacak bir uygulama yazmak istiyorsak Windows Runtime API'larını kullanmamız gerekmekte. Ancak sağ tarafta da gördüğünüz gibi .NET Framework yine developerları bekliyor olacak ;)

Windows Runtime - Geliştirme Ortamları

Windows 8 development resmini incelediğimizde aslında WinRT API'larının üzerine oturan pek çok programlama seçeneğini olduğunu görüyoruz. İlk olarak bilinenlerden başlayalım :)

WinRT API'ları C# ve VB programlama dilleri ile kullanılabilmekte. Bunun yanında C ve C++ 'ta yine alternatifler arasında. Kullanıcı arayüzü tasarlama tarafına baktığımızda C#,VB,C ve C++ dillerinin üzerine XAML'ın oturduğunu görüyoruz. Daha önce WPF, Silverlight ve  Windows Phone içerisinde bulunan XAML burada da yerini almış durumda. XAML'ın  aslında Microsoft tarafında artık bir standart olduğunu söyleyebiliriz. ;)

Şimdi gelelim esas süprize...

Windows 8 - HTML & Javascript Development  İmkanı

Resimde C, C++, C# ve VB'nin biraz yan tarafına kaydığımızda çok farlı bir platform ile karşılaşıyoruz. Bu da HTML ve Javascript kullanarak Metro Style Uygulamalar geliştirme olanağı. Evet yanlış duymadınız Windows 8 ile beraber artık bunu yapmanız mümkün. Arayüzü HTML ve CSS ile yaratırken arka planda da Javascript kullanabilirsiniz. Burda tabi amaçlanan HTML ve Javascript developerların da Windows 8 üzerinde development yapabilmesi. Zaten kullandıkları CSS ve Javascript kütüphaneleri de Windows 8'e özel. ;)  Ancak o alanda uygulama geliştirmeye alışkın olan developerlar için büyük bir fırsat bulunmakta. Tamamen alışkın oldukları ortamda sadece yeni kütüphaneleri öğrenerek Windows 8 üzerinde uygulama geliştirmeye başlayabilecekler. ;)

Peki bu kadar programlama dili nasıl desteklenebiliyor o da ilerleyen yazılarımızın konusu içerisinde olacak ;)

Şimdi gelelim Windows Runtime'a :)

Windows Runtime Development

Windows 8 tarafına geçmeden aslında aslında biraz günümüzde karşılaştığımız senaryoları bir inceleyelim. Daha önce hiç Webcam'e bağlanmaya çalıştınız mı bilmiyorum ama şu anda Windows 7 üzerinde WebCam'e bağlanmak istersek şu şekilde bir kod parçası yazmamız gerekiyor.

C# ve VB kullanarak yazmamız gereken kod parçasının bir örneğini yukarıda sizlerle paylaştım. Kodu incelersek COM Interop, P\Invoke gibi kavramların yer aldığını görüyoruz. Bunun yanında yazdığımız kodun object - oriented yapıda olmasının da imkanı yok. Peki neden böyle birşey yapmak zorunda kalıyoruz ?

Windows'un Windows 8 sürümüne kadar içerisinde bulunan API'ları developerlara 2 farklı yolla açmaktaydı. Bunlardan biri COM tabanlı API'lar diğeri ise C tabanlı API'lar ve bu API'ların hiç biri CLR tarafından doğrudan kullanılabilecek yapıda değildi. Bu nedenle aşağıda görmüş olduğumuz durum oluşmaktaydı.

Windows API'ları ile bizim yazmış olduğumuz managed kod arasında bir boşluk bulunmakta ve bu boşlukta kimi zaman yukarı görmüş olduğumuz gibi manuel olarak yazmış olduğumuz kod ile kapatılmaktaydı. Kimi zaman yazılmış opensource wrapperlar olsa da esas senaryo genelde bu şekilde işlemekte. Peki Windows 8 üzerinde WebCam'e erişip fotoğraf çekecek bir kod yazmamız gerektiğinde yazmamız gereken kod nasıl olacak dersiniz :)

Yazılan kodda muazzam bir değişiklik var :) Bir kere artık kod tamamen object oriented. Bunun yanında daha önce bizim yazmış olduğumuz kodlardan hiç bir farkı yok. İşte Windows Runtime farkını tam da burada gösteriyor.

Windows Runtime aslında Managed Kod ile Windows 8 API'ları arasındaki boşluğu kendisi dolduruyor ve bizlere daha önceden de alışkın olduğumuz uygulama geliştirme deneyimini yaşatıyor.;)

Evet Windows 8 Development'a giriş yaptığımız bu yazıda kısaca Windows 8 development ortamlarından ve alternatiflerden bahsettik ve ardından da Windows Runtime'a kısaca giriş yaptık ;)

Bir sonraki yazımızda görüşmek üzere,



Yorum Gönder


Yorumlar

  • profile

    Furkan

    • 17
    • 12
    • 2013

    Teşekkür ederim hocam. Fazla kaynak olmamasına rağmen çok değerli bilgiler paylaştınız.