Makale Özeti

Merhaba arkadaşlar, bu makalemizde kendi WAP sitemizi nasıl yapacağımıza bakacağız..

Makale

İlk 2 makalemiz de WAP’ a giriş yapmış ve WAP’ da kullanabileceğimiz kontrolleri incelemiştik. Bu makalemiz de ise tüm bu bilgileri toparlayıp kendi WAP sitemizi geliştiriyor olacağız. Bunun için gerekli olan Materyaller şu şekildedir J

Visual Studio,

MS Access (Siz isterseniz SQL Server yada MySQL de kullanabilirsiniz),

ASP.NET Destekli Bir Hosting.

Access de kullanacağımız tablolar aşağıdaki gibidir. Kategoriler ve Icerikler isimli 2 tablo oluşturuyorum.

İçerisini kendimize göre dolduralım J

Kategoriler

Hakkımda

Resimler

Haberler

Icerikler

Hakkımdaki bilgilere buradan ulaşabilirisiniz

Resimlerimi burada bulabilirsiniz

Benden haberleri buradan takip edebilirsiniz

Evet bilgilerimizi bu şekilde oluşturduk. Şimdi asıl konumuza dönelim ve wap sayfamızı oluşturalım.

Yeni Bir Web projesi oluşturalım ve projemize Default.aspx ve Icerik.aspx isimli 2 adet mobil form ekleyelim. Default.aspx de Kategorilerimiz listelenecek. Icerik.aspx de ise o kategoride yer alan haberler listelenecek.

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>

<html xmlns="http://www.w3.org/1999/xhtml">

<body>

    <mobile:Form ID="Form1" Runat="server" Title="Sem GÖKSU - WAP">

        <mobile:Image ID="Image1" Runat="server" ImageUrl="csharp.gif" NavigateUrl="default.aspx">

        </mobile:Image>

        <br />

        <mobile:Panel ID="Panel1" Runat="server">

        </mobile:Panel>

        <mobile:Label ID="Label1" Runat="server">

        </mobile:Label>

        <mobile:Image ID="Image2" Runat="server" ImageUrl="google.gif" NavigateUrl="http://wap.google.com">

        </mobile:Image>

    </mobile:Form>

</body>

</html>

 

 

Default.aspx.cs

protected void Page_Load(object sender, EventArgs e)

    {

        try

        {

            OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("wapsite.mdb"));

            OleDbDataAdapter Da = new OleDbDataAdapter("Select * from Kategoriler", Conn);

            DataSet Ds = new DataSet();

            Da.Fill(Ds, "tbl");

            for (int i = 0; i < Ds.Tables[0].Rows.Count; i++)

            {

                Link myLink= new Link(); // myLink isimli yeni Bir Link Türetiyoruz.

                myLink.Text = Ds.Tables[0].Rows[i]["KategoriAdi"].ToString(); //Text Özelliğinde Kategori Adı Yazacak..

                myLink.NavigateUrl = "Icerik.aspx?KategoriID=" + Ds.Tables[0].Rows[i]["KategoriID"].ToString() + "&KategoriAdi=" + Ds.Tables[0].Rows[i]["KategoriAdi"].ToString(); // Gideceği sayfayı belirtiyoruz...

                Panel1.Controls.Add(myLink); // Oluşturduğumuz Linki panel içerisine ekliyoruz.

            }

        }

        catch (Exception)

        {

            //  Response.Write("Bağlanamıyorum :(");

            // Bu şekilde kullanamıyoruz

            Label1.Text = "Sistem de hata meydana geldi, Lütfen daha sonra tekrar deneyiniz :(";

        }

    }

 

Ana sayfamızın son hali yukarıdaki gibidir. Şimdi içerikleri görüntüleyeceğimiz sayfaya geçelim.

Icerik.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Icerik.aspx.cs" Inherits="Icerik" %>

 

<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>

<html xmlns="http://www.w3.org/1999/xhtml">

<body>

    <mobile:Form ID="Form1" Runat="server">

        <mobile:Image ID="Image1" Runat="server" ImageUrl="csharp.gif" NavigateUrl="default.aspx">

        </mobile:Image>

        <br />

        <mobile:TextView ID="TextView1" Runat="server">

        </mobile:TextView>

        <mobile:Link ID="Link1" Runat="server" NavigateUrl="default.aspx">Ana Sayfa</mobile:Link>

        <br />

        <mobile:Image ID="Image2" Runat="server" ImageUrl="google.gif" NavigateUrl="http://wap.google.com">

        </mobile:Image>

        <mobile:Label ID="Label1" Runat="server">

        </mobile:Label>

    </mobile:Form>

</body>

</html>

 

Icerik.aspx.cs

  protected void Page_Load(object sender, EventArgs e)

    {

        if (Request.QueryString["KategoriID"] != null && Request.QueryString["KategoriAdi"] != null)

        {

            try

            {

                OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("wapsite.mdb"));

                OleDbDataAdapter Da = new OleDbDataAdapter("Select * from Icerikler where KategoriID = " + Request.QueryString["KategoriID"], Conn);

                DataSet Ds = new DataSet();

                Da.Fill(Ds, "tbl");

                string Content = "";

                Content ="<b>" +Request.QueryString["KategoriAdi"].ToString() + "</b><br/>";

                Form1.Title = Request.QueryString["KategoriAdi"].ToString();

                for (int i = 0; i < Ds.Tables[0].Rows.Count; i++)

                {

                    Content += Ds.Tables[0].Rows[i]["Icerik"].ToString();

                }

                TextView1.Text = Content;

            }

            catch (Exception)

            {

                //  Response.Write("Bağlanamıyorum :(");

                // Bu şekilde kullanamıyoruz

                Label1.Text = "Sistem de hata meydana geldi, Lütfen daha sonra tekrar deneyiniz :(";

            }

        }

        else

        {

            RedirectToMobilePage("default.aspx"); // Mobile Formlarda yönlendirme bu şekilde oluyor.

        }

    }

 

İçerik sayfamızda şekildeki gibi, geriye kalan tek şey Emulatorden yada cep telefonumuzdan ilk wap sitemizi test etmek.

İşte Sonuç :)

Bu makalenin de sonuna geldik. Bir sonraki makale de görüşmek üzere. İyi çalışmalar dilerim

Makale ile ilgili dökümanı indirmek için tıklayınız

Sem Göksu
sem.goksu@yazilimgunlugu.com
www.semgoksu.com | www.yazilimgunlugu.com

Kaynaklar

http://www.w3schools.com

http://www.msdn.com