Windows Phone, Microsoft tarafından akıllı telefonlar için geliştirilmiş olan bir mobil işletim sistemidir. Windows Mobile'dan farklı olarak; kurumsal pazarı değil, tüketici pazarını hedef alan bir üründür.
Ekim 2010'da Pazara giren ürün; ilk olarak Avrupa,Singapur,Avustralya ve Yeni Zelanda'da kullanıcılara sunuldu. Hemen Ardından ABD, Kanada ve Meksika pazarına giren ürün, Aralık 2010'da Pal bölgelerinde ve 2011 başlarından itibaren de Asya'da Kullanıcılar ile buluştu. Windows Phone ile birlikte Microsoft, Metro adlı yeni bir kullanıcı arayüzü duyurdu.
Windows Phone Geliştiricilere 2 ana programlama modeli sunuyor:
Silverlight: Silverlight, İlk olarak web tarayıcılar için bir eklenti (plug-in) olarak tasarlandı. Amaç, zengin internet uygulamaları geliştirme sürecine yeni bir bakış getirmekti. Silverlight bizlere Deklaratif bir kullanıcı arayüzü sundu. Kolayca oluşturulabilen ve temalandırılabilen bu arayüz; animasyon, veri bağlama (data bindling), vektör grafikler ve çeşitli kontroller ile destekleniyordu, Silverlight'ın Windows Phone tarafından kullanılmakta olan mevcut sürümü, Windows ve Mac üzerinde kullanılan güncel Silverlight sürümü ile aynı etkinliğe sahiptir. Fakat, telefon ile alakasız olan bazı özellikler kaldırılmış ve telefona özgü bazı özellikler eklenmiş ve ayrıca performans ayarlaması yapılmıştır.
XNA: XNA, İlk olarak XBOX odaklı olarak tasarlanmış olmasına rağmen, ayrıca Windows, Zune HD ve tabii ki Windows Phone sürümleride mevcuttur. XNA'in geliştirilme amacı yüksek performanslı, 2D ya da 3D oyunlar oluşturmaktı.
Peki Hangisi Seçilmelidir ?
İki model hakkında da genel fikir sahibi olduktan sonra, gelelim seçim yapmaya. Temel seviyede geliştiricilere yapılan tipik tavsiye şudur: "Uygulama geliştirirken Silverlight, Oyun geliştirirken XNA kullanın." Ama detaylar işin içerisine girdikçe, gerçek dünyada durum biraz daha farklı olabilir ve tercihler değişebilir.
Silverlight ile oyun geliştirmek:
Silverlight ile de oyun geliştirebilirsin. Sonuç olarak oyun da bir programdır. Marketplace'te, Silverlight ile geliştirilmiş "Darts" isminde mükemmel bir örnek bulunmaktadır. Bu oyunun ilk sürümü Windows Phone Marketplace üzerinde yayınlandığında, çok kısa zamanda ücretli uygulamalar arasında 11. sıraya kadar yükseldi. Darts, XNA kullanan çok sayıda XBOX LIVE oyunu arasından sıyrıldı ve bu konuma yükseldi.
Bir Oyunu silverlight ile kodlamak, geliştiriciye çeşitli avantajlar sağlar. Örneğin; Facebook ve Twitter gibi servisler ile kolay entegrasyon ve bunun yanında; menüler ve scoreboard'lar gibi noktalarda tüm standart silverlight kontrollerini kullanabilme yeteneği. Diger yandan, Silverlight ile kompleks oyunlar oluşturmaya çalışman, performans açısından çok akıllıca olmayabilir. 3D oyunlar da tabii ki konumuz dışında. XBOX LIVE özelliklerini, sadece XNA oyunları için kullanabilirsin.
Bu konuda tek kısıt, Silverlight arayüzü ile XNA arayüzünün aynı anda kullanılamamasıdır
Bir uygulama için seçilecek olan kullanıcı arayüzü, bu teknolojilerden yalnızca biri olabilir, Marketplace sertifikasyonu,Silverlight ve XNA ' in uygun olmayan bir biçimde Harmanlanmasını yasaklar !
XNA ile uygulama geliştirmek:
XNA kullanarak oyun dışında bir uygulama kodlayabilirsin. Ancak Button ve Listbox gibi en temel kontrolleri yeniden yaratma ihtiyacının doğmasının dışında, XNA uygulamaları şu anda kullanıcının; telefon teması, uygulama çubuğu (application bar), tarayıcı kontrolü (web browser control) ve benzeri çok sayıda özelliğin avantajlarından yararlanabilme yeteneğine sahip değildir. Ayrıca XNA için çok sayıda üçüncü parti kontrol kütüphaneleri (control libraries) mevcuttur.
Silverlight ile XNA'i Birlikte Kullanmak:
Bir Windows phone uygulaması içerisinde Silverlight ve XNA'in fonksiyonelliğini harmanlayabilirsin. Marketplace' te yer alan Silverlight uygulamalarının bir kısmı; mikrofonu kullanmak, ses efektlerini çalmak gibi XNA fonksiyonelliklerinden de faydalanmıştır. Ayrıca XNA uygulamaları içinde bir web tarayıcı kullanılmamasına rağmen, Silverlight' ın ağ ile ilgili sınıflarını kullanarak bir web kaynağına talep de yapabilirsn.