Skip to content

C# Programlama dili ile Stored Procedure Çağrımı

C # programlama dilini kullanarak stored procedure ‘ler yardımıyla bir sisteme kayıt nasıl olunur sorusuna yanıt aramış olacağız.

Geliştirme ortamı olarak  Microsoft Visual Studio’yu kullanıyor olacağım.Şimdi Visual Studio’yu açalım ve ardından new project seçeneğini seçelim. Visual C #  altında Windows Form Application seçeneği seçip projemize bir isim verelim.

Formumuza aşağıdaki gibi 2 adet label ,2 adet textbox ve 1 adet buton ekleyelim.Burada hedeflenen kullanıcıdan kullanıcı adı ve şifresi gibi bilgiler alarak sisteme  kayıt işlemi gerçekleştirmektir.

13

 

Kullanıcıdan gerekli bilgileri almak için ilk başta bizim bir veritabanına ihtiyacımız olacaktır.Burada  veritabanı ve gerekli tabloları oluşturduktan sonra stored procedure yardımıyla gerekli kayıt işlemini gerçekleştirmiş olacağız.Öncelikle SQL Server Management Studio ortamında veritabanımızı oluşturmamız gerekmektedir.Sql Server Management Studio ‘ya tıkladığımızda karşımıza aşağıdaki gibi bir ekran gelmektedir.

14

 

Server type seçeneğinde hangi server tipine bağlanmak istediğimiz belirlenir.Server name seçeneği ile ise bağlanmak istediğimiz server adı yazılır.

Bu adımı geçtikten sonra Databases kısmına tıklayıp new database deyip ; veritabanımıza bir isim veriyoruz.Sol tarafta Databases kısmının altında oluşturduğumuz veritabanımızı görebiliriz.Burada table seceneğine tıklayıp new table dedikten sonra kullanıcı adı ve sifresini aldığımız Kisiler adında bir tablo oluşturuyoruz.

15

 

Burada KullaniciId adında bir primary key belirleyip ekleme işlemi yapıldığında id’nin otomatik olarak artmasını sağlıyoruz.

Yukarıdaki işlemi tamamladıktan sonra Visual Studio da ki projemize geri dönebiliriz.Oluşturduğumuz veritabanını projemize ekledikten sonra stored procedureleri oluşturma zamanımız gelmiş demektir.

Visual Studio ‘ da server explorer altında eklemiş olduğumuz veritabanımız gözükmektedir.Burada Stored Procedures seçeneğine tıklayıp Add New Stored Procedure diyelim ve ardından aşağıdaki işlemleri yerine getirelim.

CREATE PROCEDURE KullaniciEkle

@Kullanici_Adi nchar(10)=0,

@Kullanici_Sifre nchar(10)=0

AS

insert into Kisiler(KullaniciAdi,KullaniciSifre)

values (@Kullanici_Adi,@Kullanici_Sifre)

RETURN

 

Burada alınan  bilgileri “Kisiler” adlı tablomuzdaki gerekli alanlara ”insert” komutuyla ekliyoruz.

Stored Procedure kısmını oluşturmuş olduk.Şimdi gelelim proje içersinde KullaniciEkle adlı procedure ‘müzü nasıl çağırmamız gerektiğine..

 

Kayıt adlı butonumuzun Click eventinin altına gerekli işlemleri yapabilmek için aşağıdaki kod satırları yazalım.

private void BtnKayıt_Click(object sender, EventArgs e)

{

SqlConnection baglan = new SqlConnection(@”Data Source=DAMLA-PC;Initial Catalog=Database;Integrated Security=True”);

SqlCommand sorgu = new SqlCommand();

if (TxtKullaniciAdi.Text == “” || TxtKullaniciSifre.Text == “”)

{

MessageBox.Show(“Lütfen bos birakmayiniz.”);

}

 

else

{

baglan.Open();

sorgu.Connection = baglan;

sorgu.CommandType = CommandType.StoredProcedure;

 

sorgu.CommandText = “KullaniciEkle”;

 

 

sorgu.Parameters.AddWithValue(“@Kullanici_Adi”, TxtKullaniciAdi.Text);

sorgu.Parameters.AddWithValue(“@Kullanici_Sifre”, TxtKullaniciSifre.Text);

 

sorgu.ExecuteNonQuery();

if (sorgu.ExecuteNonQuery() == 1)

{

MessageBox.Show(“eklendi”);

}

baglan.Close();

}

 

Bu işlemleri de tamamladıktan sonra Kullanıcı  gerekli alanları doldurduktan sonra sisteme giriş yapabilecektir. 🙂

 

Php Programlama Dili ile Html Kullanımına Örnek

Php programlama dilinde basit 4 işlemi yapan bir hesap makinesiyle giriş yapmıştık.Bugün kullanıcının adını,soyadını,yasını ve cinsiyetini alan ve bunları gösteren ufak bir uygulama yapacağız.Böylelikle html de dropdownlist kullanımı ve php de bu kullanımın nasıl çağrılması gerektiğini öğrenmiş olup aynı zamanda tablo kullanımıyla ilgili bir örnek de yapmış olacağız.İlk başta Adobe Dreamweaver CS3 programını açıp  burada Kisisel adında bir html sayfası açıyoruz.Burada aşağıdaki gibi kullanıcının bilgilerini almak için gerekli olan textleri,butonları tanımlıyoruz.Unutmayalım ki bu tanımlamaları body tagları arasına yapıyoruz.

Adiniz :  <input type=text name=adi >

Soyadiniz <input type=text name=soyadi>

Yasiniz :  <input type=text names=yas >

Cinsiyetiniz :

<select name=”Mydropdown”>

<option name=bayan>Bayan</option>

<option name=bay>Bay</option>

</select>

<input type=submit value=Tamam width=”40″ >   <td/> <tr/>

Yukarıdaki işlemleri tamamladıktan sonra gelelim tablo oluşturma işlemimize .İlk başta tablo işlemlerimiz <table> <table/> tagları arasında olduğunu bilmeliyiz.Daha sonrasında bu taglar arasında kullanılan <tr> ve <td> taglarının ne işe yaradıgını öğrenmeliyiz.

<tr> tagı : Satır oluşturmamızı sağlar.      <td> tagı :Sütun oluşturmamızı sağlar.

Bu bilgiler doğrultusunda işlemlerimiz aşağıdaki gibi olmalıdır.

<table    border=”0″ bordercolor=”red” height=”60″>

<tr> <td width=”100″> Adiniz :  <td/>  <td><input type=text name=adi > <td/>  <tr/>

<tr>  <td width=”100″>Soyadiniz :  <td/>  <td> <input type=text name=soyadi>  <td/>  <tr/>

<tr>  <td width=”100″> Yasiniz :  <td/>  <td> <input type=text names=yas >  <td/>  <tr/>

<tr>  <td width=”100″> Cinsiyetiniz :  <td/>

<td> <select name=”Mydropdown”>

<option name=bayan>Bayan</option>

<option name=bay>Bay</option>

</select>  <td/>  <tr/>

<tr>    <td colspan=”2″ width=”100″ align=”right”> <input type=submit value=Tamam width=”40″ >   <td/> <tr/>

<table/>

Bu işlemi de gerçekleştirdikten sonra Hesap makinesi örneğinde olduğu gibi diğer sayfaya yani Kisisel2.php sayfasına gitmek için işlemlerimize <form > tagını da eklemek zorundayız ve Kisisel.html sayfamızın son hali aşağıdaki gibidir.

<form action=kisisel2.php method=post>

<table    border=”0″ bordercolor=”red” height=”60″>

<tr> <td width=”100″> Adiniz :  <td/>  <td><input type=text name=adi > <td/>  <tr/>

<tr>  <td width=”100″>Soyadiniz :  <td/>  <td> <input type=text name=soyadi>  <td/>  <tr/>

<tr>  <td width=”100″> Yasiniz :  <td/>  <td> <input type=text names=yas >  <td/>  <tr/>

<tr>  <td width=”100″> Cinsiyetiniz :  <td/>

<td> <select name=”Mydropdown”>

<option name=bayan>Bayan</option>

<option name=bay>Bay</option>

</select>  <td/>  <tr/>

<tr>    <td colspan=”2″ width=”100″ align=”right”> <input type=submit value=Tamam width=”40″ >   <td/> <tr/>

<table/>

<form/>

DİPNOT : Yukarıda  <td> tagları içersinde kullandığım colspan ifadesi iki sütunu birleştirmek için kullanılmaktadır.

Sıra geldi Kisisel2.php adlı sayfamızda Kisisel.html sayfasından gelen değerleri almaya.Bu işlemleri de ilk örnek olan Hesap makinesi örneğinden hatırlayacaksınız.

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;

<html xmlns=”http://www.w3.org/1999/xhtml”&gt;

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

<title>Untitled Document</title>

</head>

<body>

<?php

$adi;

$soyadi;

$yas;

$cinsiyet=Bayan;

$adi=$_POST[‘adi’];

$soyadi=$_POST[‘soyadi’];

$yas=$_POST[‘yas’];

$cinsiyet=$_POST[‘Mydropdown’];

echo $adi,” “,$soyadi,” “,$cinsiyet;

?>

</body>

</html>

İşlemimiz tamamlanmıştır.Sıra geldi programımızı çalıştırmaya  🙂

12

Php Programlama Dilinde Hesap Makinesi

Merhaba arkadaşlar bugün php programlama diline giriş yapacağız.İlk olarak bilgisayarımızda gerekli olacak  programlamlardan bahsedelim.Adobe Dreamweaver CS3  php dilini kullanabileceğimiz bir ortam sağlamaktadır.Apache2triad ise web serverımızdır.Bilgisayarımıza gerekli yazılımları kurduktan sonra hesap makinesi yapmaya başlayabiliriz.İlk olarak Adobe Dreamweaver CS3 de bir html sayfasını açalım ve girilen sayıları alabileceğimiz  2 adet text ;İslem seçimi yapabileceğimiz bir adet text ve islemi gerçekleştirebilmemiz  için bir adet buton tanımlamamız gerekmektedir.

Damlaaa

İlk başta form tagları arasındaki aşağıdaki işlemlere bakalım.Burada sayıları alma ve islemi seçme  olayları gerçekleşmektedir.

<br/> tagı : Bir alta geçirir.

<p> tagı :  Paragraf yapmamızı sağlar.

1.sayiyi giriniz : <input type=text name=sayi1> <br/>

2.sayiyi giriniz : <input type=text name=sayi2> <br/>

Islem seciniz <br/>   1-toplama : <br/> 2-cikarma : <br/> 3-carpma: <br/> 4-bolme :<br/> <p> <input type=text name=islem>

<p/>

<br />

<input type=submit value=Tamam >

Bu işlemleri tamamladıktan sonra bir adet php sayfası açalım ve burada html sayfasından gelen sayi1,sayi2 ve islem seceneklerini burada alıp gerekli işlemleri yapalım.

<body>

<?php

$sayi1;

$sayi2;

$islem;

$sayi1=$_POST[‘sayi1’];

$sayi2=$_POST[‘sayi2’];

$islem=$_POST[‘islem’];

if($islem==1)

{

$toplam=$sayi1+$sayi2;

echo “Isleminizin sonucu :$toplam”  ;

break;

}

if($islem==2)

{

$toplam=$sayi1-$sayi2;

echo “Isleminizin sonucu :$toplam”  ;

break;

}

if($islem==3)

{

$toplam=$sayi1*$sayi2;

echo “Isleminizin sonucu :$toplam”  ;

break;

}

if($islem==4)

{

$toplam=$sayi1/$sayi2;

echo “Isleminizin sonucu :$toplam” ;

break;

}

?>

</body>

İşlemlerimiz body tagları arasında gerçekleşmiştir.Şimdi ” islemler.html ” sayfasından “islem.php” sayfasına nasıl geçiş yapıldığından bahsedelim.İslemler.html sayfamıza gelip sayıları almadan önce form tagları tanımladık ve burada hangi sayfaya gideceksek onun yazılmasını sağladık.

<body>

<form action=islem.php method=post>

1.sayiyi giriniz : <input type=text name=sayi1> <br/>

2.sayiyi giriniz : <input type=text name=sayi2> <br/>

Islem seciniz <br/>   1-toplama : <br/> 2-cikarma : <br/> 3-carpma: <br/> 4-bolme :<br/> <p> <input type=text name=islem>

<p/>

<br />

<input type=submit value=Tamam >

<form/>

</body>

Böylelikle 4 işlem yapabilen basit bir hesap makinesi yapmış olduk.

Windows Phone 8 de Sayfalar Arası Veri Gönderimi

Merhaba Arkadaşlar bugün bir sayfadan diğer sayfaya verinin nasıl gönderildiği ile ilgili bir uygulama yapacağız.İlk başta her zaman ki gibi File–>New–>Project diyoruz ve ardından Windows Phone sekmesi altında Windows Phone App dosyamızı  seçiyoruz ve projemize bir isim veriyoruz.

MainPage.Xaml adlı sayfamıza aşağıdaki gibi 2 adet textblock 2 adet textbox ve 2 adet buton ekliyoruz.

1

Xaml tarafında eklediğimiz buton,textblock ,textbox’ın name’ini ,content’ini aşağıdaki gibi değiştiriyoruz.

<Button x:Name=”BtnKaydet” Content=”Kayıt Ol” HorizontalAlignment=”Left” Margin=”262,372,0,0″ VerticalAlignment=”Top” Click=”BtnKaydet_Click” Height=”88″ Width=”162″ Background=”#FF100C36″/>
<Button x:Name=”BtnGiris” Content=”Giriş” HorizontalAlignment=”Left” Margin=”41,377,0,0″ VerticalAlignment=”Top” Width=”167″ Click=”BtnGiris_Click” Height=”79″ Background=”#FF0D0A2E”/>
<TextBox x:Name=”txtKullaniciAdi” HorizontalAlignment=”Left” Height=”72″ Margin=”145,150,0,0″ TextWrapping=”Wrap” VerticalAlignment=”Top” Width=”301″/>
<TextBox x:Name=”txtSifre” HorizontalAlignment=”Left” Height=”72″ Margin=”148,238,0,0″ TextWrapping=”Wrap” VerticalAlignment=”Top” Width=”299″/>
<TextBlock HorizontalAlignment=”Left” Height=”33″ Margin=”7,174,0,0″ TextWrapping=”Wrap” Text=”Kullanıcı Adı :” VerticalAlignment=”Top” Width=”140″/>
<TextBlock HorizontalAlignment=”Left” Height=”38″ Margin=”8,260,0,0″ TextWrapping=”Wrap” Text=”Şifre :” VerticalAlignment=”Top” Width=”125″/>

Daha sonra BtnKaydet adlı butonumuzun click eventine gidiyoruz.Burada aşağıdaki işlemleri yapıyoruz.

namespace Uygulamam
{
public partial class MainPage : PhoneApplicationPage
{
public string[] dizi1 = new string[25];
public string[] dizi2 = new string[25];
public int say1=0,say2=0;
// Constructor
public MainPage()
{
InitializeComponent();

// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}

private void BtnKaydet_Click(object sender, System.Windows.RoutedEventArgs e)
{
dizi1[say1]=txtKullaniciAdi.Text;
dizi2[say2] = txtSifre.Text;
say1++;
say2++;
MessageBox.Show(“Kayıt işlemi gerçekleştirilmiştir.”);

}

Kaydet işlemimiz bittikten sonra projemizin isminin üzerine gelip sağa tıklıyoruz Add–>New İtem dedikten sonra projemize Page2.xaml adında bır sayfa ekliyoruz ve Mainpage.xaml sayfamızdaki giriş butonumuzun click  eventine gidiyoruz.
private void BtnGiris_Click(object sender, System.Windows.RoutedEventArgs e)
{
string ad,sifre;
ad = txtKullaniciAdi.Text;
sifre=txtSifre.Text;

for (int i = 0; i < say1 ; i++)
{
if (ad == dizi1[i])
{
if (sifre == dizi2[i])
{

NavigationService.Navigate(new Uri(“/Page2.xaml?isim=” + ad, UriKind.Relative));
}
else MessageBox.Show(“Hatalı şifre girdiniz.”);
}

else MessageBox.Show(“Girilen kullanici adı yanlıştır.”);
}

Yukarıdaki kodlarda kullanıcın girdiği şifrenin ve kullanıcı adının doğru olup olmadığı kontrol ediliyor ve doğruysa  kullanıcıyı 2.sayfaya yönlendiriyor .Bu arada  kullanıcı adı bilgisini de diğer sayfaya taşıyoruz.Şimdi gelelim Page2.Xaml adlı Sayfamıza.Buraya bir adet textblock koyalım ve adını txtveri olarak değiştirelim.Page2.Xaml.cs sayfasına aşağıdaki kodları yazalım

protected override void OnNavigatedTo(NavigationEventArgs e)
{
string KullaniciIsmi = “”;
if (NavigationContext.QueryString.TryGetValue(“isim”, out KullaniciIsmi))
{
txtveri.Text = KullaniciIsmi;
}

}

Burada Mainpage.xaml sayfasında aldıgımız kullanıcı adını Page2.xaml sayfasındaki txtblock da göstermiş olduk.Şimdi projemizi çalıştıralım.

2

3

5

Uygulamamız gerektiği gibi çalışmaktadır. 🙂

Windows Phone 8 de Isolated Storage Kullanımı

İlk başta Visual Studio ile File–>New–>Project diyoruz ve ardından Windows Phone sekmesi altında Windows Phone App dosyamızı  seçiyoruz ve projemize aşağıdaki gibi bir isim veriyoruz.

1

Ardından  Projemize Visual Studio’nun Blend tarafında aşağıdaki gibi 2 adet textbox ,2 adet textblock ve 2 adet buton ekliyoruz .

2

Kaydet adlı butonumuzun click eventine gidelim ve Isolated Storage classımızı kullanalım.İlk başta projemize using System.IO.IsolatedStorage;  sınıfımızı eklemek  zorundayız .Ekledikten sonra  işlemlerimizi yapmaya başlayabiliriz.

private void BtnKaydet_Click(object sender, System.Windows.RoutedEventArgs e)
{
IsolatedStorageSettings.ApplicationSettings[“Kullanici”] = TxtKullaniciAdi.Text;
IsolatedStorageSettings.ApplicationSettings[“Sifre”] = TxtSifre.Text;
IsolatedStorageSettings.ApplicationSettings.Save();
MessageBox.Show(“Kaydınız Gercekleşmistir.”);
}

Textboxlar yardımıyla Kullanıcı Adını ve şifremizi almış bulunduk ve bunu ısolated stroage ‘de tuttuk.Şimdi Giriş butonumuzun click eventine gidelim ve aşağıdaki kodları yazalım.

private void btnGiris_Click(object sender, System.Windows.RoutedEventArgs e)
{

public IsolatedStorageSettings Sifre,Kullanici;


Kullanici=IsolatedStorageSettings.ApplicationSettings;
Sifre = IsolatedStorageSettings.ApplicationSettings;
if (TxtKullaniciAdi.Text == Kullanici[“Kullanici”].ToString() && Sifre[“Sifre”].ToString() == TxtSifre.Text)

{

NavigationService.Navigate(new Uri(“/Page1.xaml”, UriKind.Relative));

//Projemize Page1.xaml adında bir sayfa ekledik.Bu kod satırıyla MainPage.xaml sayfasından Page1.xaml sayfasına geçiş yapmış olduk.

}
Page1.xaml sayfasına 1 adet texblock ekledim ve adını  TxtVeri olarak değiştirdim ve Page1.xaml.cs dosyasına aşağıdaki kodları yazdım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;

namespace IsolatedStorage
{
public partial class Page1 : PhoneApplicationPage
{
public Page1()
{
InitializeComponent();
TxtVeri.Text = “Sayfamıza giriş yapıldı.”;
}
}
}

Bu işlemi de yaptıktan sonra projemizi çalıştırabiliriz.

3

Kullanıcı Adı ve şifremizi girdikten sonra kaydet butonuna bastığımızda aşağıdaki ekran karşımıza çıkar.

4

Şimdi sıra geldi kullanıcı adı ve şifresiyle giriş yapmaya.Gerekli alanları doldurduktan sonra giriş butonuna tıkladığımızda aşağıdaki ekran karşımıza gelir ve uygulamamızı tamamlamış oluruz 🙂

5

Windows Phone 8 de Hello World

Merhaba arkadaşlar.Bugün Windows Phone 8 ‘e başlangıç yapıyoruz.İlk başta Visual Studio 2012 ile File–>New–>Project diyoruz ve ardından  Windows Phone sekmesi altında Windows phone app  dosyasını seçiyoruz ve projemize aşağıdaki gibi bir isim veriyoruz.

12

Bu işlemi tamamladıktan sonra  Projemize bir adet textbox ve buton ekliyoruz. Ben bu ekleme işlemlerini Visual  Studio 2012 ile gelen Blend tarafında gerçekleştirdim.

15

Textboxımın ismini textveri olarak değiştirdim ve butonumuzun click eventine gelip gerekli kodları aşağıdaki gibi yazdım.

private void Button_Click_1(object sender, System.Windows.RoutedEventArgs e)
{
MessageBox.Show(“Hoşgeldiniz Sayın” + textveri.Text);
}

Şimdi projemizi çalıştıralım.

13

–> Textboxımıza bir isim girdiğimizde karşımıza çıkan ekran  aşağıdaki gibidir.

14

Windows 8 Uygulamalarında Semantic Zoom

Windows 8 ile gelen Semantic Zoom ;  kullanıcıya elindeki data üzerinde gerek bütün olarak dolaşabilmeye imkan verirken gerekse veriyi gruplayarak ;bunun üzerinde kullanıcının dolaşmasına imkan sağlamaktadır.

Windows 8 üzerinde Semantic Zoom’un kullanıldığı  yerlerden biri Start Screen’dir.Start Screen kısmında Zoom-in/out yaptığımızda StartScreen içerisinde bulunan itemlar ekranda aşağıdaki gibi daha ufak bir biçimde gösterilir.Bunu dokunmatik özelliği olmayanlarda Ctrl +/- tuşları yardımı ile yapabilirsiniz.

10

Şimdi semantic zoom la basit bir uygulama yapalım.İlk başta Visual Studio 2012 ile File–>New–>Project diyip Other Project Types  altında bir Visual Studio Solutions oluşturuyoruz ve isim verdikten sonra  Add->New Project diyorum ve WCF sekmesi altinda bulunan WCF Service Application’i secerek  Servisimin ismini WebServisi2 koyuyorum.

Servis olustuktan sonra oncelikle Interface sinifimda olan IService1.cs sinifimda gerekli  işlemleri yapıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WebService2
{

[ServiceContract]
public interface IService1
{
[OperationContract]
string YemekAdı(string ad);
} }

Daha sonra Servis1.svc dosyamıza gidiyoruz.Aşağıdaki işlemleri yapıyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WebService2
{

public class Service1 : IService1
{
public string YemekAdı(string ad)
{
return ad;
}
}
}

Servis1.svc üzerine gelip sağa tıklayıp View in Browser dediğimizde projemizin çalışıp çalışmadığını öğrenmiş olacağız.Bu adımı geçtikten sonra  Web Servisle ilgili gerekli işlemleri tamamlıyor olduk.Daha sonra Add–>New Project diyip Windows Store sekmesi altındaki Blank app sayfasını seçiyoruz.

WCF projemize ek olarak Windows Store projeside eklemiş olduk. Oncelik olarak Windows Store projemizin çalışması gerekli.Bunun için projenin üzerine gelip sağa tıklayıp Set As A StartUp Project seçeneğini seçmeliyiz. Aksi halde projemizi calistirmak istedigimizde WCF servisinizin Test kismi calisacaktir.

Projemizi olusturduktan sonra  web servisimizi eklemis oldugumuz windows store projemize referans olarak gostermemiz gerekmektedir. Bunun için projenin üzerinde sağa tıklayıp Add Service Referance seçeneğini seçmemiz gerekmektedir.

Projemize servisimizi ekledikten sonra MainPage.xaml sayfasına aşağıdaki gibi 1 adet textblock,1 adet combobox,1 adet textbox,bir adet buton ekleyelim.

11

Daha sonra 1 adet appbar ekleyip  aşağıda gösterildiği gibi xaml tarafında bir kaç değişiklik yapalım.
<TextBox Name=”Txtveri” HorizontalAlignment=”Left” Margin=”134,88,0,0″ TextWrapping=”Wrap” Text=”” VerticalAlignment=”Top” Width=”345″/>
<Button Content=”Ekle” HorizontalAlignment=”Left” Margin=”548,51,0,0″ VerticalAlignment=”Top” Width=”105″ Height=”59″ Click=”Button_Click_1″/>
<AppBar VerticalAlignment=”Bottom” Margin=”10,0,-10,10″>

<Button Name=”btnExit” Content=”Çıkış” HorizontalAlignment=”Left” Width=”112″ Click=”btnExit_Click”/>
</AppBar>

Bu değişiklikler:

1) Textboxın adını Txtveri olarak değiştirdim.

2)Butonun Content’ini Ekle olarak değiştirdim.

3)Appbar kısmına 1 adet buton ekledim ve bu buton ile kullanıcının uygulamadan çıkmasını sağlamak için ilk başta butonun adını btnExit olarak değiştirdim.

İlk başta appbar da bulunan butonun click eventine aşağıdaki kodları yazdım.

private void btnExit_Click(object sender, RoutedEventArgs e)
{
Application.Current.Exit();
}

Appbar kullanıma hazır.Şimdi ise uygulamamıza 1 adet semantic zoom ekleyelim.

<SemanticZoom>

    <SemanticZoom.ZoomedInView>
       <GridView/>
    </SemanticZoom.ZoomedInView>
    <SemanticZoom.ZoomedOutView>
       <GridView/>
    </SemanticZoom.ZoomedOutView>
</SemanticZoom>
               SemanticZoom kontrolünü uygulamaya ekledikten sonra oluşan XAML kodumuz yukarıdaki şekildedir.  Oluşan XAML kodunda 2 adet property ortaya çıkmaktadır. Bunlardan biri ZoomedInView diğeri de ZoomedOutView. Kullanıcı Zoom-in yaptığında oluşacak görünümü ZoomedInView’a  koyacağız, yine kullanıcı zoom-out yaptığında da oluşacak görünümü de ZoomOutView’a  koyacağız.

<SemanticZoom HorizontalAlignment=”Left” Margin=”71,150,0,0″ VerticalAlignment=”Top” Width=”720″ Height=”192″>
<SemanticZoom.ZoomedInView>
<GridView Name=”Yemek” ScrollViewer.IsHorizontalScrollChainingEnabled=”False” ScrollViewer.IsVerticalScrollChainingEnabled=”False”/>

</SemanticZoom.ZoomedInView>
<SemanticZoom.ZoomedOutView>
<ListView x:Name=”listview1″ >

<x:String>Ana Yemekler</x:String>
<x:String>Tatlılar</x:String>
<x:String>Çorbalar</x:String>

</ListView>

</SemanticZoom.ZoomedOutView>
</SemanticZoom>

Daha sonra yukarıdaki gibi Xaml tarafında değişiklikler yaptık .

Şimdi sıra geldi aldığımız bilgileri gridview da göstermeye. Ekle Butonumuzun click eventine gidelim.Burada aşağıdaki işlemleri yapalım.

private async void Button_Click_1(object sender, RoutedEventArgs e)
{

ServiceReference1.Service1Client ServistenAl = new ServiceReference1.Service1Client();

public int sayi1 = 0;
public int sayi2 = 0;
public int sayi3 = 0;
public string anayemek, corba, tatli;

public string[] dizi1 = new string[25];
public string[] dizi2 = new string[25];
public string[] dizi3 = new string[25];
if (combobox1.SelectedIndex==0)
{

anayemek =await ServistenAl.YemekAdıAsync(Txtveri.Text);
dizi1[sayi1] = anayemek.ToString();
Yemek.Items.Add(anayemek);
sayi1++;

}
if (combobox1.SelectedIndex == 1)
{
corba =await ServistenAl.YemekAdıAsync(Txtveri.Text);
dizi1[sayi2] = corba.ToString();
Yemek.Items.Add(corba);
sayi2++;

}
if (combobox1.SelectedIndex == 2)
{

tatli = await ServistenAl.YemekAdıAsync(Txtveri.Text);
dizi1[sayi3] = tatli.ToString();
Yemek.Items.Add(tatli);
sayi3++;

}

}

Uygulamamız bitti.Şimdi çalıştıralım ve görelim ekran görüntülerimizi.

screenshot_05102013_170313

Yukarıda görüldüğü gibi  comboboxtan  ekleyeceğimiz yemeğin türünü seçiyoruz daha sonrasında ekranda eklediklerimiz gözüküyor.Faremizin sağ tuşuna tıkladığımızda appbarımızda bulunan çıkış butonunu görüyoruz.Asıl gelelim semantic zoom olayına .Bilgisayarımda Ctrl – tuşuna bastığımda aşağıdaki ekran karşıma çıkıyor.

screenshot_05102013_170326

Evet uygulamamız başarıyla tamamlanmış oldu 🙂

Windows 8 AppBar Kullanımı

Windows 8 ile  gelen uygulamalarda ekranı sade tutabilmek için uygulama komutları AppBar’larda saklanmaktadır. Bu barlar ekranın üst ve alt kısımlardan kullanıcı isteği üzerine ekrana  gelip bir toolbar gibi komutları listeyebilir.Ekranın alt veya üstünden  AppBar’ların gelmesi için kullanıcının parmağı ile ekranın dışından içeriye doğru üstten veya alttan bir sürükleme işlemi yapması gerekir. Dokunmatik olmayan cihazlarda ise ekranda herhangi bir yerde fareye sağ tuşla tıklamak veya Ctrl+Alt+A kısayolunu kullanmak gerekir.

Şimdi bir appbar örneği yapmaya başlayım.İlk olarak Visual Studio’yu açalım ve  File–>New–>Project dedikten sonra Windows Store altında Blank App dosyası ekleyelim.

8

MainPage.xaml kısmına gelip Toolbox altında bulunan All XAML Controls bölümünden AppBar ‘ı projemize ekliyoruz. VerticalAlignment’ta Top verdiğimiz zaman AppBar’ımız ekranın üstünden, Bottom verdiğimizde ise altından gelecektir. Şimdi VerticalAligment özelliğini “Bottom” yapalım.

9

Yukarıda eklediğimiz Appbar için Xaml kodları aşağıdaki gibidir.

<Grid Background=”{StaticResource ApplicationPageBackgroundThemeBrush}”>
<AppBar VerticalAlignment=”Bottom”>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Orientation=”Horizontal”/>
<StackPanel Grid.Column=”1″ HorizontalAlignment=”Right” Orientation=”Horizontal”/>
</Grid>
</AppBar>
</Grid>

Daha sonra 1 adet buton ekledim ve butonun click eventine aşağıdaki kodları yazdım.
private void Btn1_Click(object sender, RoutedEventArgs e)
{

Application.Current.Exit();
}

Böylelikle kullanıcı butona bastığında basit olarak direk uygulamadan çıkabilecektir.Şimdi  uygulamamızı biraz daha değiştirelim. AppBar’ın içerisine 3 adet buttonu yan yana dizebilmek için StackPanel kontrolü ve 1 adet textblock ekliyoruz. Daha sonra buttonlarımızı koyuyoruz.Aşağıda Xaml kodları gösterilmiştir.

 

<Grid Background=”{StaticResource ApplicationPageBackgroundThemeBrush}”>
<AppBar VerticalAlignment=”Bottom” Margin=”10,0,-10,10″>
<StackPanel Orientation=”Horizontal” HorizontalAlignment=”Left”>

<Button x:Name=”btnPause” Content=”Duraklat”></Button>

<Button x:Name=”btnStop” Content=”Durdur”></Button>

</StackPanel>
</AppBar>
</Grid>

TextBlock ‘ın name’ine txtveri ismini atıyoruz.Aşağıda xaml kodları gösterilmiştir.

<TextBlock  Name=”txtveri” HorizontalAlignment=”Left” Margin=”404,184,0,0″ TextWrapping=”Wrap” Text=”TextBlock” VerticalAlignment=”Top” Height=”67″ Width=”466″ FontFamily=”Global User Interface” FontSize=”25″/>

Daha sonra buttonların click eventlerine uygulama için gerekli olan kodları aşağıdaki gibi yazıyoruz.

private void btnexit_Click(object sender, RoutedEventArgs e)
{
Application.Current.Exit();
}

private void btnPause_Click(object sender, RoutedEventArgs e)
{
txtveri.Text= ” Uygulama Duraklatıldı”;

}

private void btnStop_Click(object sender, RoutedEventArgs e)
{
txtveri.Text = ” Uygulama Durdu”;
}

Şimdi projemizi çalıştıralım.Çalıştırdığımızda aşağıdaki ekranı görüyoruz.

screenshot_05092013_022205

Örneğin ; Duraklat butonuna bastığımızda textblock aracılığı ile  uygulama duraklatıldı yazısı gelmeli.Aşağıda bu yazının geldiği görülmektedir.

screenshot_05092013_021802

Windows 8 de Web Servis Kullanımı

Geçen gün windows 8 de sayfalar arası geçişin nasıl yapılacağını öğrenmiştik.Şimdi ise hem sayfalar arası geçiş hem de web servisi kullanarak bir uygulama geliştireceğiz hep birlikte.

İlk başta Visual Studio 2012 ile File–>New–>Project diyip Other Project Types  altında bir Visual Studio Solutions oluşturuyoruz.

1

Solution1 ismini verdikten sonra  Add->New Project diyorum ve WCF sekmesi altinda bulunan WCF Service Application’i secerek aşağıdaki gibi Servisimin ismini WebServisi2 koyuyorum.

2

Servis olustuktan sonra oncelikle Interface sinifimda olan IService1.cs sinifimda gerekli  işlemleri yapıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WebServisi2
{

[ServiceContract]
public interface IService1
{
[OperationContract]
string GirilenAd(string isimsoyad);

}
}

Daha sonra Servis1.svc dosyamıza gidiyoruz.Aşağıdaki işlemleri yapıyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WebServisi2
{

public class Service1 : IService1
{
public string GirilenAd(string isimsoyad)
{
return isimsoyad + ” , Hosgeldiniz 🙂 Lütfen gerekli alanları doldurunuz.”;
}
}
}

Servis1.svc üzerine gelip sağa tıklayıp View in Browser dediğimizde projemizin çalışıp çalışmadığını öğrenmiş olacağız ya da web servisimizi doğrıdan çalıştırırız ve karşımıza  WCF Test Client ekranı çıkar.Bu ekranda  Request penceresinde bulunan isimsoyad karsisinda bulunan Value kismina String bir deger girdikten sonra  hemen altta bulunan Invoke tusuna bastığımızda projemizi test etmiş oluruz.

Web Servisle ilgili gerekli işlemleri yaptıktan sonra Solution1 üzerine gelip Add–>New Project diyip Windows Store sekmesi altındaki Blank app sayfasını seçiyoruz.

3

WCF projemize ek olarak Windows Store projeside eklemiş olduk. Oncelik olarak Windows Store projemizin çalışması gerekli.Bunun için projenin üzerine gelip sağa tıklayıp Set As A StartUp Project seçeneğini seçmeliyiz. Aksi halde projemizi calistirmak istedigimizde WCF servisinizin Test kismi calisacaktir.

Projemizi olusturduktan sonra  web servisimizi eklemis oldugumuz windows store projemize referans olarak gostermemiz gerekmektedir. Bunun için projenin üzerinde sağa tıklayıp Add Service Referance seçeneğini seçmemiz gerekmektedir. Karsimiza asagidaki gibi bir pencere geldikten sonra discover butonuna tıklarız .Böylelikle oluşturduğumuz web servis adres çubuğuna gelmiş olur.

4

Projemize servisimizi ekledikten sonra MainPage.xaml sayfasına aşağıdaki gibi bir textbox,bir adet buton ekleyelim.

5

Textboxımızın name’ine txtisim adını atadıktan sonra butonun üzerine 2 kere tıkladığımızda click özelliğinin içine aşağıdaki kodları yazdım.

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
Service1Client ServistenAl = new Service1Client();
string SonucYazdir = await ServistenAl.GirilenAdAsync(txtisim.Text);
txtisim.Text = SonucYazdir;

this.Frame.Navigate(typeof(BlankPage1));
}

Şimdi sıra geldi 2.sayfamızı oluşturmaya . Solution Explorer pencerisi altında projemizin isminin yazılı oldugu alana sağ tıklayıp Add —>Add New İtem dedikten sonra projemize bir adet aşağıdaki gibi Blank page ekliyoruz ve ismine BlankPage1 yazıyoruz.

6

BlankPage1.xaml adlı dosyamıza 3 adet textbox,3 adet textblock bir adet buton ekleyip,Mainpage.xaml sayfasında aldığımız kişinin doğumtarihi,numarası,yaşadığı şehir gibi bilgileri bu sayfada almaya çalışacağiz.

7

BlankPage1.xaml.cs dosyamızda Buttonun click özelliğinin içerisine aşağıdaki kodları yazdım.

private void Button_Click_1(object sender, RoutedEventArgs e)
{
string yas, no, sehir;
yas = txtdtarihi.Text;
no = txtno.Text;
sehir = txtsehir.Text;

var messageDialog = new MessageDialog(“Kaydınız basariyle gerceklestirildi.”);

messageDialog.ShowAsync();
}

Şimdi projemiz hazır.Çalıştıralım ve görelim.

screenshot_05072013_173713

Butona tıklağımızda  ise aşağıdaki gibi bir ekran gelmelidir 🙂

screenshot_05072013_173759

Windows 8 Uygulamasında Sayfalar Arası Geçiş

Öncelikle yeni bir proje açıp ardından uygulamamıza isim vererek Blank App altında projemizini oluşturuyoruz.

7

Daha sonra  Solution Explorer penceresinin altında bulunan MainPage.xaml dosyasına çift tıklayarak karşımıza aşağıdaki gibi bir tasarım ekranı geliyor.

10

Yukarıda görüldüğü gibi  ekranımıza 3 adet textblock ,3 adet textbox ve 1 adet buton ekledik ve Xaml tarafında textboxlara name atadık.

<TextBox Name=”txtsoyad” HorizontalAlignment=”Left” Margin=”335,183,0,0″ TextWrapping=”Wrap” Text=”TextBox” VerticalAlignment=”Top” Width=”340″/>
<TextBox Name=”txtad” HorizontalAlignment=”Left” Margin=”335,146,0,0″ TextWrapping=”Wrap” Text=”TextBox” VerticalAlignment=”Top” Width=”340″/>
<TextBox Name=”txtyas” HorizontalAlignment=”Left” Margin=”335,220,0,0″ TextWrapping=”Wrap” Text=”TextBox” VerticalAlignment=”Top” Width=”340″/>

Yukarıdaki işlemi tamamladıktan sonra Solution Explorer pencerisi altında projemizin isminin yazılı oldugu alana sağ tıklayıp Add —>Add New İtem dedikten sonra projemize bir adet aşağıdaki gibi Blank page ekliyoruz.

11

Eklediğimiz Page2.xaml adlı dosyamıza bir adet textbox yerleştirip,Mainpage.xaml sayfasında aldığımız ad,soyad,yaş gibi bilgileri bu sayfada göstermeye çalışacağiz.

12

Yukarıda eklediğimiz textboxımızın rengini kırmızı olarak ayarladık ve Xaml kısmında textboxımızın adını txtveri olarak değiştirdik.Tek tek Xaml tarafında rengini ayarlamak veya textboxın boyutunu ayarlamak yerine Visual Studio 2012 de var olan Blend uygulamasıyla daha basit bir şekilde tasarım yapabiliriz.

///Visual Studio 2012 için Blend, Microsoft Windows uygulamalarını görsel olarak oluşturmanıza ve düzenlemenize olanak tanıyan doğru tasarım yüzeyini ve araçlarını sağlayarak ilgi çekici ve gelişmiş kullanıcı arabirimleri tasarlamanıza ve oluşturmanıza yardımcı olur.

13

Daha sonra MainPage.xaml kısmına gelip butonumuza çift tıklayarak MainPage.xaml.cs dosyasına geliyoruz .Burada  gerekli  işlemleri  aşağıdaki gibi yapıyoruz.

private void Button_Click_1(object sender, RoutedEventArgs e)
{
ad = txtad.Text;
soyad = txtsoyad.Text;
yas = txtyas.Text;
dizi[0] = ad;
dizi[1] = soyad;
dizi[2] = yas;
this.Frame.Navigate(typeof(Page2), dizi);
}

///Burada en önemli kod kısmı “this.Frame.Navigate” metodudur. Bu metod iki adet parametre almaktadır. Aldığı ilk parametreye sayfanın tipini, ikinci parametreye de göndereceğimiz veriyi giriyoruz.

Bu işlemi tamamladıktan sonra Page2.xaml.cs dosyasındaki “OnNavigatedTo” metodunun içersine kodlarımızı yazacağız.

protected override void OnNavigatedTo(NavigationEventArgs e)
{

var veri = e.Parameter as String[];
txtveri.Text = veri[0].ToString() + ” ” +veri[1].ToString() +” “+ veri[2].ToString();
}

İşlemimiz tamamlandı.Şimdi sıra projemizi çalıştırmakta 🙂

screenshot_05032013_040350

Yukarıda gerekli alanları doldurduktan sonra Kayıt ol adlı butona tıkladığımızda 2.sayfaya yönlenmemiz gerekmekte.

screenshot_05032013_100945

Görüldüğü gibi projemiz istenildiği gibi çalışmaktadır.Bugün Windows 8 uygulamalarında sayfalar arası geçişin nasıl yapıldığını hep beraber öğrenmiş olduk.