Windows Phone 8 - Sayfalar Arası Data Taşımak

5 Eylül 2013 Perşembe

Web Programcılıkta oldukça fazla kullanmış olduğumuz QueryString yapısı burada da mevcut. "&" ifadesi ile birden fazla değer taşımak mümkün.

Page1.xaml

this.NavigationService.Navigate(new Uri("/Page2.xaml?d1=Main&q=666", UriKind.Relative));


Page2.xaml


txtMesaj.Text = "Alınan değer " + this.NavigationContext.QueryString["q"];






Continue Reading...

Windows Phone 8 - WebBrowser

Basit anlamda WebBrowser nesnesi uydgulamamız içerisinde web sitesi görüntülemeye yarar. Günümüz uygulamalarına baktığımızda bir çok büyük çaplı kurumsal firma windows phone 8 için uygulama yaptık dediklerinde arka planda webBrowser çalıştırdıklarını gördük. Yapılabilecek en basit adım ile bu markette yol almanın yolunu bulmuş gibiler:)



<phone:WebBrowser HorizontalAlignment="Stretch" Margin="0,70,0,0" Name="webBrowser1" VerticalAlignment="Stretch" />

      


VerticalAlignment = Stretch özelliği ekrana kendini full döşemesini sağlar oldukça çok kullanılan bir parametresidir. 


webBrowser1.Navigate(new Uri("http://twitter.com", UriKind.Absolute));


Navigate özelliği ile açmak istediğimiz sayfaya yönlendiririz. Bizden 2 parametre ister
1.Hangi linki çalıştıracağını
2.Sayfayı ne türde açağını sorar.



Tüm sayfa kodları xaml;

<Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="MY FIRST APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="Mini Browser" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBox Height="Auto" HorizontalAlignment="Stretch" Margin="-10,4,81,0" Name="textBox1" Text="http://www.xbox.com" VerticalAlignment="Top" />
            <Button Content="Go" Height="70" HorizontalAlignment="Right" Margin="0,4,-3,0" Name="button1" VerticalAlignment="Top" Width="91" Click="button1_Click" />
            <phone:WebBrowser HorizontalAlignment="Stretch" Margin="0,70,0,0" Name="webBrowser1" VerticalAlignment="Stretch" />
        </Grid>
    </Grid>


private void button1_Click(object sender, RoutedEventArgs e)
        {
            string site;
            site = textBox1.Text;
            webBrowser1.Navigate(new Uri(site, UriKind.Absolute));
        }


Bu tip uygulamalar windows marketin pek sevmediği yapıdadır. Sebebi ise içeriğinin yönetemeyecek olmalarıdır. +18 içerik yayınlamaya oldukça elverişlidir.

Bir diğer kontrol tanıtımında görüşmek üzere


Continue Reading...

Genel bakış - Hello World !

1 Eylül 2013 Pazar

Windows 8 app Geliştirmek
Microsoft’un akıllı Pazar sektöründe geç kaldığını bilmeyeniniz yoktur. Şirketin SEO değişikliği çok kritik bir zamanda yapıldı ve Steve Ballmer’ın bu yıl içerisinde aldığı en iyi karar istifa edecek olmasıdır. Sırasıyla Apple, Android, Blackberry derken sonunda piyasaya girmeyi windows 8 store olarak başardı.
İşi biraz aceleye getirdiği ufak incelemelerden sonra ortaya çıktı.
Win8 programlamak 2 aydır SDK’da yapılıyor. Yani masaüstü ve tabletler ayrı SDK, telefon için olanlar ayrı SDK’da yapılıyor. Ve bu marketlerde birbirinden farklı. Yani 2 farklı market söz konusu. Masaüstü ve tabletler için Windows Store, telefon uygulamaları için Windows Phone 8 olarak kullanılıyor. Developperlar için 2 ayrı iş çıkıyor ve 2 ayrı paralı hesap almaları gerekiyor uygulamalarını markete yüklemek için.
İkinci olarakta Windows 8’de yapılan uygulamalar Windows 7’de çalışmıyor.
Şuan amerika pazarında %12 ile 3. Konumda ve büyüme hızı devam ediyor.
Dediğimiz gibi akıllı Pazar sektöründe geri kalmanın verdiği panikle biraz yamalı bohça şeklinde idare ederek sektöre girmişler.
Tabi bunların zaman içerisinde çıkacak servis pack’lerle düzeleceğini en kısa zamanda umuyoruz.

Coding olarak bize 3 farklı yol sunuyor Microsoft.
1-      XAML ve C#
2-      HTML ve JS,CSS
3-      Akvicx ve C++
Yani farklı platformlarda uzmanlıkları olan herkese gel demiş microsoft :)
Bizim kullanacağımız  1. yöntem olacaktır.
Visual Studio 2012 ve framework 4.5 kullanacağız



File > New > Project > Installed > Visual C# > Windows Store > Blink App(XAML) sekmesinden yeni projemizi açıyoruz.

Projemizi oluşturduktan sonra Solition Explorer penceresi içindekileri tanıyalım.
MainPage.xaml è Projemizin ana çalışma dosyası budur. index.html olarak düşünebilirsiniz.XAML kodların barındığı yer. ASP.NET bilenler için bir .ASPX sayfası olarak düşünebilirler.
MainPage.xaml.cs è C# kodlarımızı tutan sayfa budur. Yine ASP.NET bilenler için default.aspx.cs olarak düşünebilirler. XALM kodlarının barındığı yer.
App.xaml è Sayfasını projenin kontrol merkezi olarak düşünebiliriz. Global olarak tüm açılan XALM sayfalarını etkiler. App.xaml.cs ise yine C# kodların tuttuğu yerdir.
Assets è Bu klasör içinde projenin zengin medya içerikleri tutulur (Resim, video, mp3 vb.)
Common è Projenin stil dosyaları bu klasörde tutulur. CSS klasörü gibi düşünülebilir.

Biraz stil dosyalarının kullanımdan bahsedelim. Aynı web’de kullanılan  3 tip stil belirtme şekli var XALM mantığında.
1-      Direk kontrollere verilen style’lar. 

    <TextBlock FontSize="50" Foreground="Red" Width="500" Height="100" Margin="50" Text="Başlık"></TextBlock>
2-      Sayfa tepesinde yapılan tanımlamalar, yani sayfa bazlı tanımlamalar;
<Page.Resources>
        <Style x:Key="BenimCSSClassim" TargetType="TextBlock">
            <Setter Property="FontFamily" Value="Segoe UI"></Setter>
            <Setter Property="FontWeight" Value="Light"></Setter>
        </Style>
</Page.Resources>
<TextBlock Text="Başlık" Style="{StaticResource BenimCSSClassim}"></TextBlock>

Burda bir husustan bahsetmek istiyorum stil classımızı oluştururken başına hangi nesnelerin ulaşacağını TargetType ile belirttik. O değeri boş geçip tüm kontrollerde çalışması malesef işe yaramıyor boş geçilmiyor çünkü illa bir değer yazmalısınız.

3-  Common dosyasında yeni bir stil tipinde dosya tanımlanacak ve sayfaya app.xaml’den include edilecek.


Düzenli projeler için 3.yöntemi öneriyoruz tabiki.


Bu ufak anlatımımızdan sonra geldi sıra geleneksel Hello World yazdırmaya.

Sayfaya ToolBox’dan 1 adet textblock ve bir adet buton sürükleyip bırakalım.

<TextBlock Name="tbMesaj" FontSize="50" Foreground="Red" Style="{StaticResource benimsin}"></TextBlock>
        <Button Name="btnYaz" Content="Hello World" FontSize="50" Margin="50" Click="btnYaz_Click"   />

private void btnYaz_Click(object sender, RoutedEventArgs e)
        {
            tbMesaj.Text = "Hello World";
        }

XAML tarafında sürekleyip attığımız butona çift tıklayarak Click Event’ini açıyoruz.

MessageBox uyarısını çalıştırmak için tepeye
using Windows.UI.Popups; sınıfını ekleyip alttaki kodu veriyoruz.

MessageDialog dia = new MessageDialog("İçerik", "Başlık");
dia.ShowAsync();

Projeler 3 şekilde çalıştırılır.
 Simulatorè Projenizi tablet ekranında çalıştırır oldukca gelişmiştir.
 Local Machine è Geleneksel yöntem ile kendi makinanızda çalıştırır.
 Remote Machine. è IP kurulumlarının ardından başka bilgisayarda çalıştırmanızı sağlar.


Böylece ilk uygulamamızı çalıştırmış olduk. Diğer makalelerde görüşmek üzere..




Continue Reading...