Windows 8 – İlk Metro Uygulamamız

   Windows 8 ile birlikte biz yazılım geliştiricilerin öğrenmesi gereken pek çok yenilik geldi. Windows 8 makale serisinde yeri geldikçe bahsettiğim bu yeniliklerden biriside Windows 8 Release Preview ile birlikte tanıştığımız Metro Stili uygulamalar. Bu makalemde, Windows Store üzerinden oldukça geniş bir yelpazede cihazlara/son kullanıcıya satış yapabileceğiniz ve tamamen yeni bir arayüz, yeni bir kullanıcı deneyimi sunan Metro stili uygulamalara hızlı bir başlangıç yaparak ilk metro stil uygulamamızı geliştireceğiz.

   Metro stil uygulama geliştirmenin en güzel yanlarından birisi programlama dili bağımsızlığı. Uygulamalarınızı C# ve Visual Basic ile geliştirebileceğiniz gibi C++ ve hatta Html 5 alternatifiniz de bulunuyor. Bu sayede web developer’lar bile Windows 8 üzerinde uygulama geliştirme şansına sahip olabilmekte. Hem bloğumun C# üzerine yoğunlaşmış olmasından dolayı hem de makaleyi mümkün olduğunca basit tutabilmek adına ilk uygulamamızı C# ile geliştireceğiz; ama ilerleye yazılarımda en azında diğer dillerden de örnekler vermeyi hedefliyorum.

   Metro stil uygulama örneğimize başlamadan önce sizi uyarmam gereken bir konu var; maalesef ki metro uygulamaları sadece Windows 8 üzerinde geliştirilerek test edilebilmekte. Dolayısıyla öncelikle Windows 8 kurulu bir bilgisayarın başına geçmelisiniz. Bunun için mevcut sisteminizi bozmak istemiyor ya da Windows 8’in RTM olmasını bekliyorsanız sanal makine üzerindeki bir kurulumda çalışabilir ya da Windows 8’i sanal hard disk ile sisteminizi açarak geliştirme yapabilirsiniz. İhtiyacınız olan tüm araçlara Metro stil uygulama geliştirme araçları sayfasından ulaşabilirsiniz.

   Ok, Windows 8 makinenizin başına geçtiğiniz ve gerekli tüm kurulumları gerçekleştirdiğiniz, artık Metro stil uygulama geliştirmeye hazırsınız. Eğer daha önceden WPF üzerinde uygulama geliştirdiyseniz, yani bir XAML developer iseniz size güzel bir haberim var; hiç vakit kaybetmeden ilk Metro stil uygulamanızı geliştirmek için bir engeliniz yok. C# ile metro stil uygulama geliştiriyorsanız uygulamanızın bir WPF uygulamasına ne kadar da çok benzediğini göreceksiniz 😉

  Daha fazla vakit kaybetmeden uygulama geliştirmeye başlayalım. Visual Studo’yu açtınız ve yeni proje ekranına geldiğinizde göreceksiniz ki metro stil uygulama geliştirme için kullanabileceğimiz şablolar “Windows Metro style” başlığı altında toplanmış. İlk örneğimiz olması nedeniyle ben Blank App (XAML) şablonunu seçiyorum;

Windows 8 için ilk metro stil projemizi oluşturmak için bir şablon seçiyoruz

 

   Eğer ilk defa bir Windows 8 uygulama projesi oluşturuyorsanız Visual Studio sizde öncelikle bir geliştirici lisansı edinmeniz için sizi yönlendirecektir;

Windows 8 geliştirici lisans diyaloğu

   Windows 8 geliştirici lisansı almak için öncelikle bir live id sisteme giriş yapmanız istenecektir;Windows 8 geliştirici lisansı almak için öncelikle bir live id sisteme giriş yapmanız istenecektir.

   Mevcut verilen lisanslar bir bitiş sahibine sahip. Bir aylık kullanım süreli verilen bu lisansı aldığınızda bu konu hakkında bir diyalogla bilgilendiriliyorsunuz;

Mevcut Windows 8 geliştirici lisansları süreli olarak verilmekte

 

  Bu noktada durup Windows 8 geliştirici lisanslarını bir inceleyelim. Öncelikle, Windows 8 geliştirici lisanslarının ücretsiz olduğunu belirtmeliyim. Üstelik bitmesi sonrasında da istediğiniz sürece bir yenisini alabilmeniz mümkün. Geliştirici lisansı almak için bir Windows Store hesabınızın olması gerekmiyor; ama en azından bir live id’nizin olması şart. Tabi bunu söylerken şunu da belirtmeden geçemeyeceğim; bir Windows Store hesabınızın olması ilerleyen zamanlarda daha uzun ömürlü Windows 8 geliştirici lisansına sahip olmanız gibi ek avantajlar sunacaktır. Windows 8 üzerinde metro stil uygulama çalıştırmak sıkı kurallara bağlanmıştır. Öncelikle uygulamanın Windows Store’dan indirilmesi şart. Tabi buna iki istisna bulunuyor. Yukarıdaki gibi bir süreci takip ederek bir geliştirici lisansı ile uygulamanızı yerelde test edebilirsiniz ya da sideloading süreci yardımıyla uygulama makineye yüklenebilir. Bu makalenin konusu olmaması nedeniyle sideloading hakkındaki daha detaylı bilgilendirmeleri ilerleye makalelere saklıyorum. Eğer geliştirme sürecinde lisansınızın süreci dolacak olursa paniğe kapılmanıza gerek yok. Tek yapmanız gereken Visual Studio ana menüsünden Project –> Store –> Acquire Developer License menüsü yardımıyla mevcut lisansınızı yenilemek.

    Windows 8 geliştirme lisansı hakkında unutmamanız gereken bir başka nokta da bu lisansın sadece kurulduğu makine için geçerli olduğudur. Bu durumda, geliştirdiğiniz bir Windows 8 metro stil uygulamasını test için bir başka makineye yükleyerek uzaktan hata ayıklama (remote debug) yapmak istediğinizde öncelikle bu makine için de bir lisans alınması gereklidir. Aksi durumda ilk debug denemenizde bu lisansı edinmeniz gerektiğine dair bir bilgilendirme mesajı ile karşı karşıya kalırsınız.

   Geliştirme lisansı hakkındaki bu bilgiler ardından, kaldığımız yerden devam edecek olursak, sıra geldi ilk uygulamamızın kodlarını yazmaya. Projemizi oluşturduğumuzda karşımıza ilk açılacak olan dosya App.xaml dosyasıdır. Windows.UI.Xaml.Application sınıfından türetilen bu sınıf aslına bakarsanız WPF geliştiricilerin yabancı olmadıkları bir sınıftır. Uygulamanın genel yaşam döngüsünden sorumludur. Bu sınıfın constructer’ını daha önceden alışkın olduğumuz main() ya da WinMain() metotlarına benzetebiliriz. Uygulamanın ilk açıldığında, bekletildiğinde, paylaş, ara v.b. etkileşimleri gerçekleştirildiğinde çalıştırılacak olan kod parçacıkları bu sınıf yardımıyla sunulabilir.

   Sıfırdan oluşturduğumuz projemizde yer alan tek arayüz kodu ise MainPage.xaml dosyasında yer alacaktır;

Windows 8 projemizin ilk arayüz kodları MainPage.xaml dosyası içerisinde yer almakta

   MainPage.xaml dosyası içerisine sol tarafta yer alan toolbox içerisinden StackPanel, TextBlock, TextBox ve Button bileşenlerini sayfamız içerisine sürükleyerek xaml kodumuzu aşağıdaki şekle getirelim;

<Page
    x:Class="MerhabaDunya.MainPage"
    IsTabStop="false"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MerhabaDunya"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <StackPanel Grid.Row="1" Margin="0" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <TextBlock x:Name="mesaj" Text="Enterprisecoding ile Metro stil uygulama geliştirmeye hoş geldiğiniz" FontSize="36" Margin="30,30,0,0"/>
        <StackPanel Orientation="Horizontal" Margin="0,20,0,20">
            <TextBox x:Name="mesajGirdi" Width="300" HorizontalAlignment="Left" Margin="30,0,0,0"/>
            <Button x:Name="mesajDegistir" Content="Mesajı Değiştir" Margin="10,0,0,0"/>
        </StackPanel>
    </StackPanel>

</Page>

  Bu kod bie basit bir text bloğu içerisinde “Enterprisecoding ile Metro stil uygulama geliştirmeye hoş geldiğiniz” yazarken hemen altında da text girebileceğimiz bir alan ve bir de buton oluşturacaktır;

Oldukça basit bir kaç adım sonrası ilk metro stil uygulama arayüzümüz hazır

 

   Arayüzdeki butonumuza aynı bir Windows forms uygulamasında olduğu gibi çift tıklayarak varsayılan olay kodunu ekleyebiliriz; ki bir buton için varsayılan olan tıklamadır. Yine WPF ya da Windows forms uygulamalarında olduğu gibi basit şekilde bu butona tıklandığında text alanın içeriğini değiştirebiliriz;

private void mesajDegistir_Click(object sender, RoutedEventArgs e) {
    mesaj.Text = "Girilen değer : " + mesajGirdi.Text;
}

Bu basit işlemler ardından uygulamamızı çalıştırdığımızda bir splash screen ardından uygulamamız açılacak ve textbox içerisine girdiğimiz değer text alana yansıyacaktır;

Uygulamamızı çalıştırdığımız bu ekranla karşılaşacağız

Ilk-Windows-8-Metro-Uygulamasi-Merhaba

 

   Gördüğünüz gibi Windows 8 üzerinde Metro stil uygulama geliştirmek oldukça kolay, özellikle de daha önce WPF/Xaml ile kod geliştirdiyseniz.Tabi ki alışkın olduğumuz Windows masaüstü uygulama geliştirmeden farklı olduğu pek çok yanı da bulunmakta, ama hem gözünüzü korkutmamak, hem de makalemi mümkün olduğunca giriş düzeyinde tutabilmek adına bunlardan ilerleyen makalelerimde değineceğim 😉

   Bu noktada, aslında farkında olmadan C# ile Windows Runtime üzerinden işletim sistemiyle etkileşime geçtik bile; fakat bu süreç C# ile o kadar uyumlu ve iç içe ki eminim ki pek çoğunuz fark etmedi bile…

Info

   Güncelleme, 25 Eylül 2012 : Windows 8 ile birlikte tanıştığımız ve uzun süre Metro Stil (Metro Style) olarak andığımız/anmaya alıştığımız bu uygulama türünü ilerleyen makalelerimde Windows Store apps (Windows Mağazası uygulamaları) olarak göreceksiniz

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

7 yorum

  1. veyseloglu   •  

    Visual Studio 2010’da çok çalışıp bir uygulama yazmıştım.. Şimdi ise sıra o yazılımı indirip kuran bir metro uygulaması yazmaya geldi.. Verdiğiniz bilgiler için teşekkür ederim (:

  2. Mustafa   •  

    Java ile win8 uygulaması geliştirip mağazaya koyamaz mıyız?

    • Fatih Boy   •     Yazar

      Merhaba Mustafa,
      Windows 8 desteği konusunda Java tarafından yapılan açıklamalarda Java’nın sadece Windows 8 masaüstü tarafında destekleneceği, Windows Mağazası uygulamalarının desteklemeyeceği yönünde. Bu sebeple Oracle tarafından aksi bir açıklama gelene kadar Java ile Windows Mağaza uygulaması geliştirilemez.

  3. Okan   •  

    Faydalandım tşkler

  4. Hasan   •  

    Teşekkr ediyorum bu yazı için takipçilerdenim

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir