emreordukaya.com

Kişisel & Akademik Blog

HTML5 Dünyasına Giriş

Merhaba arkadaşlar, bugün yeni teknolojilerden HTML5’ e değineceğiz. Daha sonraki bir dizi yazı dizimizde HTML5 ile Asp.NET teknolojilerinin beraber kullanımını da incelemiş olacağız. Bugün bu yazı dizisinin ilk ayağı ile başlamış olalım. Kısa ve öz olarak HTM5 teknolojisine bir giriş olsun bizim için.

Basit HTML5 Yapısı

Basit olarak da HTML5 ana yapı olarak eski HTML gibi bir yapıdan oluşmaktadır.

<!DOCTYPE html>
<html>
<head>
<title>HTML5 Dünyasına hoş geldiniz.</title>
</head>
<body>
<h1>Merhaba HTML5!</h1>
</body>
</html>

HTML5 Kodlarının Doğrulanması ve HTML5 Browser Puanı

Bu yazmış olduğumuz kodları http://validator.w3.org adresinden kontrolden de geçirerek yazdığımız kodların geçerliliğini kontrol etmiş oluruz.

Ayrıca kullanmış olduğumuz browserımızın HTML5 için ne kadar desteği olduğunu http://html5test.com adresini ziyaret ederek görebiliriz. Buradan kullanmış olduğumuz browser için HTML5 desteği için kaç puan aldığını görebilmiş oluruz.

 

HTML5 İçin Gelen Yeni Etiketler

Bunun yanında eski HTML yapısına ek olarak bazı etiketler HTML5 için kullanılabilir hale gelmiştir. Bunlardan bazıları;
<article>, <header>, <hgroup>, <footer>, <section>, <summary>, <aside>, <nav>: Sayfayı daha görsel ve daha düzenli olarak yapılandırabilmemize olanak sağlar.
<figure>, <figcaption>: Resimleri ve resim başlıklarını sayfamıza daha düzenli ekleyebilmemiz için gelmiş etiketlerdendir.
<audio>, <video>: Sayfaya müzik ve video ekleyebilmemizi sağlayan etiketlerdir.
<canvas>: Javascript kodları yardımı ile sayfaya resim, yazı yada şekil ekleyeceğimiz yeri bu etiket ile belirleriz.

Bunlarla ilgili sonraki yazılarımızda bolca örneklerimiz olacak inşallah.

 

Dinamik Olarak Browserımızın HTML5 Desteğini Sağlamak

Bu aşamada http://modernizr.com adresinden mevcut olan hazır javascript kütüphanelerini kullanarak yazmış olduğumuz kodun açıldığı herhangi bir browser için HTML5 desteğini kontrol ederek kullanıcıyı bilgilendirmiş oluruz.
Bunun için modernizr-2.5.3.js script dosyasını kullanarak aşağıdaki htm sayfasını oluşturalım.

<!DOCTYPE html>
<html>
  <head>
      <title>HTML5 Dünyasına Hoşgeldiniz</title>
      <script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script>
      <script type="text/javascript" src="scripts/modernizr-2.5.3.js"></script>
      <script type="text/javascript">
          $(document).ready(function () {
              if (Modernizr.audio) {
                  $("#Message").append("Kullanmış olduğunuz Browser HTML5 Müzik etiketini desteklemektedir. <br/>");
              }
              if (Modernizr.video) {
                  $("#Message").append("Kullanmış olduğunuz Browser HTML5 Video etiketini desteklemektedir. <br/>");
              }
              if (Modernizr.canvas) {
                  $("#Message").append("Kullanmış olduğunuz Browser HTML5 Canvas etiketini desteklemektedir. <br/>");
              }
              if (Modernizr.draganddrop) {
                  $("#Message").append("Kullanmış olduğunuz Browser HTML5 Sürükle - Bırak etiketini desteklemektedir. <br/>");
              }
          });
      </script>
  </head>
  <body>
      <h1>Merhaba HTML5!</h1>
      <div id="Message">
      </div>
  </body>
</html>

Burada görüldüğü gibi, audio, video, canvas ve draganddrop desteklerini tek tek kontrol ederek kullanıcıya geri dönüş vermiş oluyoruz. Geri dönüş ekranımız aşağıdaki gibi oluyor.

İşte olay bu kadar basit. Bundan sonra yaptığımız tüm projelere bu kısmı implemente ederek her projemizde hem ön kontrol yapabiliyoruz hem de durum hakkında kullanıcıyı bilgilendirebiliyoruz.
İnşallah bir sonraki yazımızda yine HTML5 konusunda biraz daha derinlere dalmak ve hatta belki de Asp.Net ile de bütünleşik olarak ele almak ümidiyle görüşmek üzere.

Mix Mode ile Sql Server 2008 Kurulumu

Merhaba arkadaşlar,

Bu makalemizde Mix Mode ile Sql Server 2008 kurulumunu en baştan en sona kadar adım adım anlatmaya çalışacağız.

Öncelikle "Sql Server 2008.iso" dosyasını bilgisayarımıza kaydediyoruz. 

Daha sonra Deamoon Tools benzeri bir program ile iso dosyasını göstererek setup olayını başlatıyoruz.

iso dosyasını gösterme işlemini aşağıdaki şekildeki gibi yapıyoruz.

Daha sonra karşımıza çıkan ekrandan Setup.Exe çalıştır komutunu tıklayarak kurulumu başlatıyoruz. Bu komut çalıştırıldıktan sonra Windows karşımıza Kullanıcı Hesabı Denetimi Ekranını çıkaracaktır. Çıkan ekrandan da Evet seçilmelidir.

Sonraki adımda Programı Çalıştır Diyerek devam ediyoruz. uyumsuzluk uyarısı veriyor. bazı işletim sistemlerine göre vermeyebilir.

Sonraki ekranda ise Installation sekmesini seçerek en üstteki seçeneği seçiyor ve devam ediyoruz.

"New SQL Server stand-alone installation or add featıres to an existing installation"

Bir sonraki ekranda yine uyumsuzluk bildirimi. Programı çalıştır diyerek devam ediyoruz.

Aşağıdaki ekran ön gereksinimleri test ediyor.

Lisans Sayfasını geçiyoruz.

Anlaşmayı kabul etmek çok önemli tabi..

Destek dosyalarını yüklüyor.

Burada da kurulumun ön gereksinimlerini test ediyor ve Güvenlik duvarı kısmı Warning olarak karşımıza çıkıyor.

Bu hatayı gidermek için Denetim Masası -> Windows Güvenlik Duvarı -> Bildirim Ayarlarını Değiştir yolunu izleyerek ayarlarımızı aşağıdaki gibi değiştirerek Tamama basarız.

Daha sonra ise testi tekrar çalıştırdığımızda bu ufak hatanın artık kaybolduğunu görürüz.

Sonraki ekrandan bize lazım olan bileşenleri seçerek kuruluma devam ederiz.

Bir sonraki adımda ise MSSQLSERVER hangi instance ile kullanacağımızı sormaktadır. Burada Default instance diyerek local olarak MSSQLSERVER'a bağlanacağız.

Bir sonraki adımda ise Disk gereksinim bilgisi vermektedir. Burada kurulacak olan bellek bölgesinin kapasitesi ile ilgili bilgilendirme yapılır.

Bu kısımda ise bileşenlerin çalışacağı hesaplar ayarlanmaktadır. Biz ilk kısımda hepsini Network Service olarak seçiyoruz.

Bu adım SQL Server 2008'e girişte kullanacağımız giriş tipini belirlediğimiz kısım. Sadece Windows hesabı ile mi yoksa kullanıcı adı ve şifre ile (Örn: sa) ve Windows hesabı ile yani karışık modda mı çalışsın. Buna karar veriyoruz. Benim tercihim Mix Mode seçip bir de şifre vermeniz Şifre olarak da 1 vermenizi tavsiye ederim, unutulmaz..

Bu arada burada yapmamız gereken şey; Mix Mode seçip Şifre kısmına 1 yazıp "Add Current User" butonuna tıklayarak aktif kullanıcıyı yetkilendirmek. Takibinde ise Next butonuna basılarak devam edilir.

Bu kısım ise hata ve kullanım raporlarını programı kullanım sırasında Microsoft firmasına göndermesini sağlar.

Son olarak kurulum için bir test daha çalıştırılıp herşey yolunda ise yine devam ediyoruz.

Ve artık bize kurulum öncesi yaptığımız tüm ayarların bir raporu sunuluyor. Install butonuna bastığımızda kurlum başlıyor.

Kurulum tamamlandıktan sonra bize sonuç için bir rapor daha sunuluyor.

Ve kurulumun tamamlandığına dair bir ekran sunuluyor.

Kurulum tamamlandıktan sonra Güvenlik Duvarını tekrar aşağıdaki gibi ayarlayarak bilgisayarımızın güvenliğini aktifleştirmiş oluyoruz.

Daha sonra ise SQL Server Management Studio programını açarak aşağıdaki gibi giriş yapabiliyoruz.

Şimdi alınan bir hata üzerine ufak bir ayar daha yapmamız gerekiyor. Veritabanında tablo oluşturduğumuzda daha sonra aynı tabloyu düzenlemek istersek bir ksııt mesajı alıyoruz. Sistem bize tabloyu tekrar silip yeniden oluşturmamız gerektiğini söylüyor. Bunu aşabilmek için SQL Server Management Studio programına bağlandıktan sonra Tools -> Options komutlarına basıyoruz.

Açılan penceredeki Designers sekmesinde Table and Database Designers kısmına tıklayarak ayarlarımızı aşağıdaki gibi değiştiriyoruz. Bu bize artık tabloyu tekrar silip oluşturmamıza gerek kalmadan işlem yapmamızı sağlamış oluyor.

Hepinize kolay gelsin..

Yeni Yaşımda Yeni Görevim

Merhaba sevgili arkadaşlar. Bugün sizlerle hayatımda oluşan yeni gelişmelerden birini sizlerle paylaşacağım. Bilindiği üzere bu sene Selçuk Üniversitesi'nde doktora öğrenimime adım atmıştım. Bugün de Yıldız Teknik Üniversitesi'nde, hem de 12 Şubat olan doğum günümde, ilk dersime girdim. Böyle güzel bir gelişmenin böyle anlamlı bir günde meydana gelmesi de beni ekstra motive etti diyebilirim.

Daha nice güzel günleri buradan sizlerle paylaşmak ümidiyle, kendinize çok iyi bakın :-)

Windows Phone 7 platformunda runtime modunda Listbox nesnemize eleman ekleyelim.

Merhaba WP7 Severler,

Daha önce projelerimde listbox nesnesine çalışma zamanında eleman ekleyebilmemiz ile ilgili yaptığım araştırmalar neticesinde bir kaç sonuç elde ettim. En profesyonel ve mantıklı çözümü burada bulabildim. Ancak yapım şekli olarak ciddi profesyonel çalışması hasebiyle bu işe yeni başlayan arkadaşların, benim dahi çok zorlanmama sebep oldu saolsun :) , anlayabileceği basit bir konsep oluşturmaya çalıştım.

Neticede basit bir yapı ile durumu hallettim sayılır. Tabi bu basit yapının artıları ve eksileri muhakkak olacaktır performans açısından. Bu konuda bizi yorum ile bilgilendirmek isteyen arkadaşlara şimdiden teşekkürlerimi sunuyorum. Şimdi isterseniz koda başlayalım.

Yapımız MainPage.xaml ve MainPage.xaml.cs olmak üzere sadece tek sayfalı bir uygulama.

Öncelikle MainPage.xaml sayfamıza bakalım;

<phone:PhoneApplicationPage 
    x:Class="listboxApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True" Loaded="PhoneApplicationPage_Loaded">
    
    <!--LayoutRoot is the root grid where all page content is placed-->
    <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 APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="page name" 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">
            <ScrollViewer>
                <StackPanel>
                    <ListBox x:Name="lstMain" ItemsSource="{Binding myItems}" Height="537">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel>
                                    <Grid x:Name="grdInListbox" Background="Transparent" Margin="10">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="0.33*"/>
                                            <ColumnDefinition Width="0.77*"/>
                                        </Grid.ColumnDefinitions>
                                        <TextBlock x:Name="name" TextWrapping="Wrap" Text="{Binding name}" Grid.Column="0"/>
                                        <TextBlock x:Name="surname" TextWrapping="Wrap" Text="{Binding surname}" Grid.Column="1"/>
                                    </Grid>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                    <Button Content="Add More" Name="btnLoader" Click="btnLoader_Click" />
                </StackPanel>
            </ScrollViewer>                      
        </Grid>
    </Grid>    
</phone:PhoneApplicationPage>

Burada bir scrollviewer içerisine bir adet listbox koyduk. Bu bizim elemanlarımızı liste halinde sunacak. Hemen altında ise bir buton ile Add More, yani daha fazla elemanı listboxa eklememizi sağlayacağız.

MainPage.xaml.cs sayfamızda ise;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

namespace listboxApp
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }
        List<myItem> myItems = new List<myItem>();
        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                myItem Item = new myItem();
                Item.name = "Name_" + i;
                Item.surname = "Surname_" + i;
                myItems.Add(Item);
            }
            lstMain.ItemsSource = myItems;
        }

        private void btnLoader_Click(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                myItem Item = new myItem();
                Item.name = "Name_" + i;
                Item.surname = "Surname_" + i;
                myItems.Add(Item);
            }
            lstMain.ItemsSource = null;
            lstMain.ItemsSource = myItems;
        }
    }
    public class myItem
    {
        public string name { get; set; }
        public string surname { get; set; }
    }
}

Bu kod kısmında ise sayfa çağrılma anında listboxa 10 eleman ekliyoruz. Bu 10 elemanı List yapısında oluşturmuş olduğumuz myItem sınıf tipinde arka planda tutuyoruz. butona her tıkladığımızda btLoader_Click olayı tetikleniyor ve tuttuğumuz List elemanına 10 eleman daha ekliyoruz ve List elemanının son halini ListBox elemanımıza bağlıyoruz.

Burada biz verileri for döngüsü içinde manuel olarak oluşturduk. Bunları veritabanından yada  web servisleri ile alarak da bağlamamız mümkün. Aynı zamanda biz sadece string tipinde veri oluşturup bağlamış olduk. Yine ihtiyaca göre her türlü veri yada resim oluşturulup, çağrılıp listboxımıza bağlayabiliriz.

Şimdilik bizden bu kadar :) Kaynak kodumuzu buradan indirebilirsiniz. --> listboxApp.rar (208,68 kb)

Windows Phone 7 ile mesaj verdirelim.

Merhabalar,

Bugün Windows Phone 7 ortamında basit bir giriş olması hasabiyle ufak bir örnek yapalım dedim. Bu maksatla daha WP7 ortamı ile tanışmamış yada kafasında acaba nasıldır bu ortam diyenlere ufaktan bir yol gösterme görevi de görmüş olursak ne ala :)

Bu arada ilerki zamanlarda daha üst seviye paylaşımlarımız da olacaktır muhakkak.

Öncelikle yapacağımız örnek ile bildiğimiz textbox içerisine yazacağımız bir notu ekrana mesaj olarak vereceğiz. Giriş olarak çok basit gibi görünsede en azından ortamı kullanmaya başlıyacağız.

Hele bir ortamlara göz atalım dersek hem Blend hem de Visual Studio ortamlarına bir göz atalım dersek;

Blend için;

Visual Studio 2010 için;

Öncelikle XAML (MainPage.xaml) kodumuzu aşağıdaki gibi güncelleyelim.

<!--LayoutRoot is the root grid where all page content is placed-->
	<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 APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
			<TextBlock x:Name="PageTitle" Text="page name" 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="72" HorizontalAlignment="Left" Margin="-4,38,0,0" Name="txtMesaj" Text="" VerticalAlignment="Top" Width="460" />
            <Button Content="Mesaj Ver" Height="72" HorizontalAlignment="Left" Margin="-2,116,0,0" Name="btnMesaj" VerticalAlignment="Top" Width="456" Click="btnMesaj_Click" />
        </Grid>
    </Grid>

Daha sonra hazırladığımız şablon XAML için yazdığımız kod sayfasına (MainPage.xaml.cs) buton click olayını eklersek;

private void btnMesaj_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Merhaba, textbox içeriği: " + txtMesaj.Text);
        }

 Şimdi de bu yaptığımız uygulamanın çalışmasına bakarsak. Debug düğmesine bastığımızda yani Debug modunda çalıştırdığımızda aşağıdaki emulatör çalışacaktır. 

Uygulamamızı çalıştırdığımızda

Mesaj Ver butonuna bastığımızda

Dolayısı ile artık bir uygulamamız var ve çalışıyor. Yani WP7 platformuna ayak bastık. Birşeyler yaptık. Darısı sonraki paylaşımlarımıza inşallah.

Kaynak dosyalarını buradan indirebilirsiniz --> goal.rar (185,72 kb)

WP7 ile kalın, Görüşmek dileğiyle..

Windows Phone 7 ile yapmış olduğum ilk uygulamam yayında.

Turk's Weather 

Merhabalar, az evvel almış olduğum bir mail ile güzel bir haber aldım. Yüzümde oluşturduğu hafif bir tebessüm ile diyebilirim ki, markette yayınlanan bir uygulama sahibi olmak sanırım biraz mutluluk verici bir durum. Bana gelen mailde uygulamamın yayınlandığı, yaklaşık 4-6 saat sonrası için marketten görülebileceği notu vardı, bekliyeceğiz.. Buna mukabil, bu durum yazılımcıya yeni programlar yazması için extra bir motivasyon kaynağı oluyor, benden söylemesi :) İlk uygulamam ücretsiz, hedefimde bir ücretsiz bir de ücretli olarak düşündüğüm iki uygulama daha var.

Bu arada Windows Phone 7 Platformu henüz Türkiye lokasyonunda destek sağlanan bir platform değil. Sebebi ise Türkçe klavye desteği sorunu nedeniyle Microsoftun daha Türkiye piyasasında yerini almamış olması. Ama 2012 üçüncü çeyreğinde Türkiye piyasanda ciddi bir varlığı olacağını düşünüyorum. Dünya piyasasında ise durum farklı. Benim uygulamam dünya lokasyonuna açık. Türkiye için yazmış olduğum ama Türkiyede indirilemeyen (şimdilik) bir program. Ancak ben bu programın kodlarından blogumdan örnek kesitler sunacağım makaleler yazmayı ve isteyen Windows Phone 7 telefonlarına deployment edebilecekleri .xap dosyasını da ileride blogumdan sunuyor olacağım. Esenlikle kalmanızı ümit ederek hepinize iyi günler diliyorum ;-)

ASP.NET Projelerimizde Twitter ve Facebook Takipçi Sayılarını Görüntüleyelim.

Merhabalar, bugün kısa bir ipucu olması açısından twitter ve facebook takipçilerini ASP.Net projelerimizde nasıl görüntüleyeceğimizden bahsedeceğiz.

İlk olarak bir asp.net uygulamasında Default.aspx sayfası açtığımızı varsayarak body tagları arasını aşağıdaki gibi düzenliyoruz.

<body>
    <form id="form1" runat="server">    
    <div>
        Twitter: <asp:Label ID="lblTwitter" runat="server" Text=""></asp:Label><br />
        Facebook: <asp:Label ID="lblFacebook" runat="server" Text=""></asp:Label><br />     
        <asp:Button ID="btnEnter" runat="server" Text="Aboneleri Göster" onclick="btnEnter_Click" />
    </div>    
    </form>
</body>

Hemen ardından codebehind sayfamız olan Default.aspx.cs isimli sayfaya aşağıdaki olayları ekleyerek işlemimizi tamamlıyoruz.

public string GetTwitterFollowersCount(string UserName)
{
    XDocument xdoc = XDocument.Load("http://api.twitter.com/1/users/show.xml?screen_name=" + UserName + "&include_entities=false");
    return (from item in xdoc.Descendants("user")
            select item.Element("followers_count").Value).SingleOrDefault();
}
public string GetFacebookLikes(string FaceBookURL)
{
    string URL = "https://api.facebook.com/method/fql.query?query=select%20%20like_count,%20total_count,%20share_count,%20click_count%20from%20link_stat%20where%20url=%22" + FaceBookURL + "%22";
    XElement xdoc = null;
    XElement counts = null;
    xdoc = XElement.Load(URL);

    IEnumerable<XElement> total_Like_count =
        from elem in xdoc.Descendants()
        where elem.Name.LocalName == "like_count"
        select elem;

    counts = total_Like_count.First();
    string FBLikes = Convert.ToString(counts.Value);
    return FBLikes;
}
    protected void btnEnter_Click(object sender, EventArgs e)
{
    lblTwitter.Text = GetTwitterFollowersCount("emreordukaya");
    lblFacebook.Text = GetFacebookLikes("http://www.facebook.com/nettutsplus");    
}

Yukarıdaki örneğimizde twitter ve facebook'un soruzsuz çalıştığını gözlemleyerek yazımızı noktalıyoruz.

Uygulamayı buradan indirebilirsiniz. --> twitFaceCounter.rar (2,69 kb) 

İnşallah Paylaşımlarımızın artması ümidiyle..

List yapısındaki bir veriyi session ile sayfalar arası taşıyalım.

Merhabalar, bugün tarafımızdan oluşturduğumuz class yapısındaki list veri grubunu yada DataTable yapısındaki veri grubunu web sitemizdeki sayfalar arası nasıl taşıyabileceğimiz konusunu kısaca incelemiş olacağız.

Öncelikle veriyi tutacağımız class yapımızı oluşturalım;

namespace ordukaya
{
    public class informations
    {
        public string name;
        public string surname;
        public string isActive;
        public string country;
        public informations(string name, string surname, string isActive, string country)
        {
            this.name = name;
            this.surname = surname;
            this.isActive = isActive;
            this.country = country;
        }
    }
}

Oluşturduğumuz class yapısını ordukaya namespac'i içerisine yerleştirdikten sonra harici bir ordukaya.cs ismi ile kaydettik. Oluşturduğumuz classımızı kullanmak istediğimiz sayfalarda namespace olarak aşağıdaki gibi eklememiz gerektiğini unutmayalım.

Bu işlemler bittikten sonra Default.aspx sayfamızın body tagını aşağıdaki şekilde değitiriyoruz. Burada taşımak istediğimiz bilgileri kullanıcıdan alıyor olacağız. 

<body>
    <form id="form1" runat="server">
    <div>Adı:<br />
        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
        <br />
        Soyadı:<br />
        <asp:TextBox ID="txtSurname" runat="server"></asp:TextBox>
        <br />
        Ülkesi<br />
        <asp:DropDownList ID="ddlCountry" runat="server">
            <asp:ListItem Text="Türkiye" Value="1"></asp:ListItem>
            <asp:ListItem Text="Yurtdışı" Value="2"></asp:ListItem>
        </asp:DropDownList>
        <br />
        Hesap Durumu:<br />
        <asp:RadioButtonList ID="rblStatus" runat="server">
            <asp:ListItem Value="1">Aktive</asp:ListItem>
            <asp:ListItem Value="2">Passive</asp:ListItem>
        </asp:RadioButtonList>
        <br />
        <asp:Button ID="btnEnter" runat="server" Text="Transfer Et" 
            onclick="btnEnter_Click" />
    </div>    
    </form>
</body>

Kullanıcıdan aldığımız bilgileri Default.aspx.cs sayfasındaki btnEnter_Click isimli olayın içerisinde oluşturduğumuz class yapısından bir list oluşturarak kullanıcıdan alınan bilgileri bu list grubuna ekliyoruz. Burada bir adet kayıt ekledik ama bu kayıt sayısı isteğe göre daha fazla olabilir. Yani adı gibi liste :)

Daha sonra bu list elemanımızı direk olarak oluşturduğumuz session elemanına atıyoruz.

Burada yorum satırına çevirdiğim bir kod bloğunda ise DataTable nesnesini nasıl taşıyabileceğimiz ile alakalı örnek yapıdır.

Takiben yaptığımız kod satırı ise ikinci sayfaya yönlendirme işlemi oluyor.

protected void btnEnter_Click(object sender, EventArgs e)
    {
        List<informations> myList=new List<informations>();
        myList.Add(new informations(txtName.Text,txtSurname.Text , ddlCountry.SelectedItem.Text, rblStatus.SelectedItem.Text));
        Session["transfer"] = myList;
        
        //Aynı şekilde verileri DataTable olarak da sayfalar arası taşıyabiliyoruz.
        //DataTable myData = new DataTable();
        //Session["transfer"] = myData;

        Response.Redirect("secondPage.aspx");
    }

İkinci sayfamızın olan secondPage.aspx sayfamızın body togı içerisini de aşağıdaki gibi düzenledik. Burada önceki sayfadan gelen verileri ekrana yazacağımız label elemanlarını kullanmış olduk.

<body>
    <form id="form1" runat="server">    
    <div>
    <asp:Label ID="lblName" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Label ID="lblSurname" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Label ID="lblCountry" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Label ID="lblStatus" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>

secondPage.aspx sayfamızın codebehind kısmı olan secondPage.aspx.cs sayfasındaki Page_Load olayını da aşağıdaki gibi düzenledik. Burada yine oluşturmuş olduğumuz class yapısından bir list oluşturarak session ile taşıdığımız veriyi gerekli çevirme işlemini yaparak değişkenimize atadık. Ardından myList değişkenimizin içindeki taşıdığımız veriyi sırası ile ilgili label elemanlarına atamış olduk.

protected void Page_Load(object sender, EventArgs e)
    {
        List<informations> myList = new List<informations>();
        myList = (List<informations>)Session["transfer"];
        lblName.Text = myList[0].name;
        lblSurname.Text = myList[0].surname;
        lblCountry.Text = myList[0].country;
        lblStatus.Text = myList[0].isActive;
        Session.Remove("transfer");
    }

Şimdi yazdığımız yazılımı test etme zamanı geldi sanırım :)

Öncelikle Default.aspx sayfasını browserdan çalıştırdık. Gerekli girdileri yaptıktan sonra Transfer Et butonuna tıklayarak secondPage.aspx sayfasına yönlenmemizi sağladık.

 secondPage.aspx sayfasında ise taşıdığımız verileri görüntülemiş olduk. 

Kısa bir pratik olması açısından bugün de böyle bir yazı yazmış olduk. Bol yazılımlı günler ile karşılaşmamız ümidiyle.

Uygulamanın kaynak kodlarını buradan indirebilirsiniz --> listTransfer.rar (4,77 kb)

Geçmiş yıllarda yapılan ve eski blogumda yayınlanan etkinliklerimiz..

Merhabalar, Bugün, daha önce yayından kaldırdığım sitemdeki geçmiş yıllarda yapmış olduğumuz etkinliklerin listesini toplu olarak yayınlamaya karar verdim. Buradan peşinen unuttuğum etkinlikler için af diler ve etkinliklerimize katılan tüm arkadaşlara teşekkürlerimi sunarım.

  

Bağcılar Ticaret Meslek Lisesi

 

Hikmet Nazif Kurşunoğlu Lisesi

 

Ümraniye Ticaret Meslek Lisesi

 

STFA Anadolu Teknik Lisesi

Yeni bir sayfa açalım dedik..

Herkese Merhabalar,

Uzun zamandır gerek iş, gerekse akademik sebeplerle pasif olarak kullanımda olan blogumu tekrar ve son bir karar ile blogengine altyapısına taşıyarak daha aktif paylaşımlarda bulunabilme hedefiyle yeniden hizmete açmış bulunuyorum.

Bu günden sonra ilk olarak eski blogumdaki makale ve sosyal paylaşımlarımı buraya taşıma hedefindeyim.

Akabinde freamwork 4 kullanılarak yeni makale paylaşımlarda bulunurum diye ümit ediyorum.

İnşallah düzenli bir paylaşım süreci ile hep birlikte yazılıma gönül veren tüm genç kardeşlerimize yardımcı olacak bir kaynak sitesi oluşturmuş oluruz.

 Hepimize Kolay Gelsin diyorum...