06 Şub 2008 WAP – Mobil Aygıta Göre Sayfaların Render Edilmesi Kategori: Mobil Etiketler: Windows Phone 0 Yorum Merhaba arkadaşlar, bu makalemizde WAP kontrollerinden device specific kontrolünden bahsedeceğiz. Bu kontrol bize telefon modeline göre sonucun WML, HTML, XHTML, CHTML olarak render edilmesini sağlıyor.Daha önceki makalem de Wap kontrollerini anlatırken çok kısa da olsa bu kontrolün ne ise yaradıgını anlatmıstım. Hatırlatmak gerekirse; Cep telefonlarının destekledigi markup diline göre kodumuzun render edilmesini saglar. Örnegin html destekleyen bir telefonda sonuç html üretilir, WML destekleyen bir telefonda sonuç WML olarak üretilir. XHTML destekleyen telefonda da XHTML olarak üretilir. Bu kontrolü niçin kullanırım? Bir wap uygulaması gelistirdigimizde her ziyaretçinin uygulamayı sorunsuz sekilde kullanabilmesi için bu kontrolü kullanırız. Kullanıcı arka planda telefonun ne destekledigini bilemeyeceginden yada bu uygulama bu telefon da çalısmaz diyemeyecegimizden bu kontrol ile uygulamamızın tüm telefonlar da çalısmasını saglarız. Choice Render edilecek Markup dili belirliyor. WML render edilecekse içerisine WML'e göre kod yazıyoruz. Html ise Html'e göre yazıyoruz. ContentTemplate Her yerde oldugu gibi burada da ContentTemplate çıkıyor karsımıza. Content Template içerisine Choice'de seçilen dile göre content template içerisindeki kod render edilecek. DeviceSpecific Kullanımı Uygulamanın WML ve HTML destekleyen telefonlar da çalısabilmesi için asagıdaki gibidir; <mobile:Panel ID="Panel1" runat="server"> <mobile:DeviceSpecific ID="DeviceSpecificControl" Runat="server"> <Choice Filter="isWML11"> <ContentTemplate> <!- WML Render Edilecek --> </ContentTemplate> </Choice> <Choice Filter="isHTML32"> <ContentTemplate> <!-- HTML Render edilecek --> </ContentTemplate> </Choice> </mobile:DeviceSpecific> </mobile:Panel> Bu kodun çalısması için WebConfig dosyasına Tanımlı DeviceFilter'ları eklememiz gerekir. Genel olarak 2 DeviceFilter kullanılsa da farklı devicefitlerlar'da bulunmaktadır. Asagıda bazı device filter'lar gösterilmistir. <deviceFilters> <filter name="isWML11" compare="PreferredRenderingType" argument="wml11" /> <filter name="isHTML32" compare="PreferredRenderingType" argument="html32" /> <filter name="isCHTML10" compare="PreferredRenderingType" argument="chtml10" /> <filter name="isMyPalm" compare="Browser" argument="MyPalm" /> <filter name="isPocketIE" compare="Browser" argument="Pocket IE" /> <filter name="isJPhone" compare="Type" argument="J-Phone" /> <filter name="isEricssonR380" compare="Type" argument="Ericsson R380" /> <filter name="isNokia7110" compare="Type" argument="Nokia 7110" /> <filter name="supportsColor" compare="IsColor" argument="true" /> <filter name="supportsCookies" compare="Cookies" argument="true" /> <filter name="supportsJavaScript" compare="Javascript" argument="true" /> <filter name="supportsVoiceCalls" compare="CanInitiateVoiceCall" argument="true" /> </deviceFilters> Farklı bir Filter(örnegin CHTML ve PocketIE) ile render yapılmasını istiyorsak; asagıdaki gibi kullanırız. <mobile:Panel ID="Panel1" runat="server"> <mobile:DeviceSpecific ID="DeviceSpecificControl" Runat="server"> <Choice Filter=" isCHTML10"> <ContentTemplate> <!- WML Render Edilecek --> </ContentTemplate> </Choice> <Choice Filter=" isPocketIE "> <ContentTemplate> <!-- HTML Render edilecek --> </ContentTemplate> </Choice> </mobile:DeviceSpecific> </mobile:Panel> Örnek Konu ile basit bir örnek yapalım. Örnegimizde WML ve HTML destekleyen basit bir sayfa hazırlayacagız. Projemize yeni bir Mobile Form ekleyelim. Mobile Formumuza bir DeviceSpecific kontrolü ekleyelim. Yukarıda anlattıgım DeviceFilter'ları da webCofig'e ekleyelim. Formum yukarıdaki gibi bir görüntü olustu. Simdi html kısma gidelim; asagıdaki kodları yazalım. DeviceSpecific.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DeviceSpecific.aspx.cs" Inherits="WAPSamples_DeviceSpecific" %> <%@ 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:Panel ID="Panel1" Runat="server"> <mobile:DeviceSpecific ID="DeviceSpecificControl" Runat="server"> <Choice Filter="isWML11"> <ContentTemplate> Bu Sayfa WML ile Render Edilmistir... </ContentTemplate> </Choice> <Choice Filter="isHTML32"> <ContentTemplate> Bu Sayfa HTML ile Render Edilmistir... </ContentTemplate> </Choice> </mobile:DeviceSpecific> </mobile:Panel> </mobile:Form> </body> </html> Gördügünüz gibi çok basit. Simdi sayfamızı test edelim. Evet; farklı telefonlar da farklı sonuçlar aldık. Birde Web'den bakalım Evet artık wap uygulamalarımızı her yerde çalıstırabiliyoruz J Bu makalenin de sonuna geldik. Bir sonraki makale de görüsmek üzere. Iyi çalısmalar dilerim Sem Göksusem.goksu@yazilimgunlugu.com www.semgoksu.com | www.yazilimgunlugu.com Kaynaklar http://www.w3schools.comhttp://www.msdn.com
01 Şub 2008 Kendi WAP Sitemizi Nasıl Yaparız? Kategori: Mobil Etiketler: Windows Phone 0 Yorum Merhaba arkadaşlar, bu makalemizde kendi WAP sitemizi nasıl yapacağımıza bakacağız..Ilk 2 makalemiz de WAP' a giris yapmıs ve WAP' da kullanabilecegimiz kontrolleri incelemistik. Bu makalemiz de ise tüm bu bilgileri toparlayıp kendi WAP sitemizi gelistiriyor olacagız. Bunun için gerekli olan Materyaller su sekildedir J Visual Studio, MS Access (Siz isterseniz SQL Server yada MySQL de kullanabilirsiniz), ASP.NET Destekli Bir Hosting. Access de kullanacagımız tablolar asagıdaki gibidir. Kategoriler ve Icerikler isimli 2 tablo olusturuyorum. Içerisini kendimize göre dolduralım J Kategoriler Hakkımda Resimler Haberler Icerikler Hakkımdaki bilgilere buradan ulasabilirisiniz Resimlerimi burada bulabilirsiniz Benden haberleri buradan takip edebilirsiniz Evet bilgilerimizi bu sekilde olusturduk. Simdi asıl konumuza dönelim ve wap sayfamızı olusturalım. Yeni Bir Web projesi olusturalı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 Özelliginde Kategori Adı Yazacak.. myLink.NavigateUrl = "Icerik.aspx?KategoriID=" + Ds.Tables[0].Rows[i]["KategoriID"].ToString() + "&KategoriAdi=" + Ds.Tables[0].Rows[i]["KategoriAdi"].ToString(); // Gidecegi sayfayı belirtiyoruz... Panel1.Controls.Add(myLink); // Olusturdugumuz Linki panel içerisine ekliyoruz. } } catch (Exception) { // Response.Write("Baglanamıyorum :("); // Bu sekilde kullanamıyoruz Label1.Text = "Sistem de hata meydana geldi, Lütfen daha sonra tekrar deneyiniz :("; } } Ana sayfamızın son hali yukarıdaki gibidir. Simdi içerikleri görüntüleyecegimiz 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("Baglanamıyorum :("); // Bu sekilde kullanamıyoruz Label1.Text = "Sistem de hata meydana geldi, Lütfen daha sonra tekrar deneyiniz :("; } } else { RedirectToMobilePage("default.aspx"); // Mobile Formlarda yönlendirme bu sekilde oluyor. } } Içerik sayfamızda sekildeki gibi, geriye kalan tek sey Emulatorden yada cep telefonumuzdan ilk wap sitemizi test etmek. Iste Sonuç :) Bu makalenin de sonuna geldik. Bir sonraki makale de görüsmek üzere. Iyi çalısmalar dilerim Makale ile ilgili dökümanı indirmek için tıklayınız Sem Göksusem.goksu@yazilimgunlugu.com www.semgoksu.com | www.yazilimgunlugu.com Kaynaklar http://www.w3schools.com http://www.msdn.com
31 Oca 2008 WAP’ da Kullanılan Kontroller Kategori: Mobil Etiketler: Windows Phone 0 Yorum Merhaba arkadaşlar, bu makalemizde wap sitesi yapmak için kullandığımız kontrolleri inceliyor olacağız… WAP' da Hangi Kontrolleri Kullanırız? Makalemizin ilk bölümünde de söyledigim gibi WAP' da kullanabilecegimiz kontrol sayısı sınırlı sayıdadır. Gridview, DataList ve diger Listeleme kontrolleri bulunmuyor. (Bunların yerine ObjectList ve List Kontrolü Geldi). Kontrolleri incelemeye basladıgımız da karsımıza tanıdık kontroller çıkacak. Form: Her Wap sayfasında en az bir Mobile Form olmalıdır. Web sayfalarında oldugu gibi bir sayfada birden fazla da Mobile Form da olabilir. Label: WAP Sayfalarında metinleri göstermek için kullanılır. Yine web' deki label ile aynı isi yapar ve aynı özelliklere sahiptir. (Font, Text, vb gibi.). Not: Wapda Label,Tek satırlık veri gösterilmesine izin verir. Textbox: Kullanıcıların WAP Sayfalarında tek satırlık veri girisini yapmasını saglayan kontroldür. Web' dekinden farkı sadece tek satır olmasıdır. Diger özellikleri web ile aynıdır. (Alignment, Font, Text, MaxLenght gibi.) Panel: WAP Sayfalarında diger kontrollerin içerisini eklenmesini saglayan kontroldür. Diger kontroller de oldugu gibi web deki ile tüm özellikleri aynıdır. Image: Mobil sayfalar da resimlerin gösterilmesini saglar. AdRotator: WAP Sayfalarında resimlerin rastgele gösterilmesini saglayan reklam kontrolüdür. Calendar: WAP Sayfalarında kullanabilecegimiz takvim kontrolüdür. Validation Controlleri: Kullanıcıların Textboxlara girdigi verileri dogrulamak için kullanılan kontrollerdir. Webdekilerle aynı olan kontroller bunlar ama Mobile özel kontroller de var. Simdi bunları da inceleyelim. Command: Aslında Webdeki buton ile aynı isi yapar. Microsoft böyle bir isimlendirmeye gitmistir. Ilgili islemin post edilmesini saglar. Bazı özellikleri söyledir; CommandName:ItemCommand eventi ile iliskili bir commanddir. CommandArgument: Command hakkında ek bilgi tutulmasını saglar. Format: Command'in formatını belirler. Buton yada Link gibi görünmesini saglar. TextView: Label ile aynı isi yapar yanı metinlerin gösterilmesini saglar. Label'dan farkı birden fazla satır içerebilir. Içerisine yazılabilen metin içerisinde diger html kodların yazılmasına izin verir. Bunun dısında tüm özellikleri Mobile Label ile aynıdır. List: WAP sayfaların da liste olusturmak için kullanılır. DataSource , DataTextField ve DataValue özelligi vardır. Bu sayede database'den doldurulabilir. ItemsAsLinks : Bu özellikle liste içerisindeki verileri link olarak da gösterebiliriz. Webdeki listbox'a benzer. Tüm eventleri Listboxdaki ile aynıdır. SelectionList: WAP sayfalarında seçim yapılabilecek Liste kontrolü olusturmamızı saglar. List'den farkı Dropdown gibi çalısır. Tek bir eleman seçmemizi saglar. SelectType: Bu özellik SelectionList'in nasıl gösterilecegini belirler. DropDown ListBox Radio MultiSelectListBox CheckBox ObjectList: Wap sayfalarında verilerin gösterilmesini saglar. Gridview ve Datalist gibidir. StyleSheet: Wap sayfalarında kullanılan kontrollere sitil uygulanmasını saglayan sitilleri belirler. HTML destekleyen telefonlar da görüntülenir. DeviceSpecific: Cep telefonunun destekledigi markup diline(WML, HTML, XHTML, CHTML) göre ilgili kodun render edilmesini saglar. Örnegin Sony Ericcsonnda t600 de bir sayfa WML olarak render edilirken Nokia n70 de XHTML olarak render edilir. PhoneCall: Belirtilen telefon numarasının aranmasını saglayan WAP kontrolüdür. En önemli propertysi; PhoneNumber'dır. PhoneNumber: Aranacak olan telefon numarası. Örnek -1 Ilk olarak basit bir örnek yapalım J Yazgelistir.com'daki RSS'lerden haberleri çekip bunu sayfamızda gösterelim. Burada asıl deginmek istedigim Textview Kontrolüdür. Yukarıda da belirttigim gibi textview kontrolünün text özelliginde html kontrolünü kullanabiliyorduk. Simdi formumuza bir textview ekleyelim. Daha sonra da formun loadında RSS' den haberleri datasete çekip güzel bir görünüm ile sayfamızda gösterelim. protected void Page_Load(object sender, EventArgs e) { DataSet Ds = new DataSet(); Ds.ReadXml("http://rss.yazgelistir.com/XML/Rss.aspx/1000000000"); // XML'deki verileri datasete alıyoruz. string content = ""; content = "<b>ASP.NET Makaleleri</b><br/><br/>"; // Ilk satırda Bu yazacak for (int i = 0; i < Ds.Tables[3].Rows.Count; i++) { content +="<b>" + Ds.Tables[3].Rows[i]["title"] + "</b><br/>"; // Makalenin baslıgını yazdırıyoruz. content += Ds.Tables[3].Rows[i]["description"] + "<br/>"; // Makalenin özetini yazdırıyoruz. } TextView1.Text = content; // Olusan içerigi textview'in text özelligine set ediyoruz. } Not: Ilk makale de verdigim emulatoru kullanacaksanız dosyaları Emulatorun ulasabilecegi bir adreste tutmanız gerekmektedir. Simdi yazdıgımız kodu test edelim. Bunun için ilk makale de verdigimiz emulatoru kullanabiliriz. (Isterseniz telefonunuzda da test edebilirsiniz) Hayırlı Olsun J Örnek - 2 Bu Örnegimiz de Wap kontrollerinden Object List'i inceleyecegiz. Zaten neredeyse en çok kullanılacak kontrollerden biri budur. Yeni bir proje açalım ve projemize yeni bir mobile form ekleyelim. Mobile form içerisine de bir ObjectList ekleyelim. ObjectList içerisinde Kategoriler tablosundan Kategori adlarını görüntülenmesini saglayacagız. Olusturdugum sayfa su sekildedir. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ObjectList.aspx.cs" Inherits="ObjectList" %> <%@ 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:ObjectList ID="ObjectList1" Runat="server" CommandStyle-StyleReference="subcommand" LabelStyle-StyleReference="title"> <Field Title="Kategoriler" DataField="CategoryName" /> </mobile:ObjectList> <mobile:Label ID="Label1" Runat="server"> </mobile:Label> </mobile:Form> </body> </html> Simdi mobile formumuz yüklenirken verilerin gelmesini saglayacagız. protected void Page_Load(object sender, EventArgs e) { try { SqlConnection Conn = new SqlConnection("Server=localhost; database=Urbanlulu; trusted_connection=yes"); SqlDataAdapter Da = new SqlDataAdapter("Select * from Categories",Conn); DataSet Ds = new DataSet(); Da.Fill(Ds, "tbl"); ObjectList1.DataSource = Ds; ObjectList1.DataBind(); } catch (Exception) { // Response.Write("Baglanamıyorum :("); // Bu sekilde kullanamıyoruz Label1.Text = "Baglanamıyorum :("; } } Simdi yazdıklarımızı test edelim. Bunun için ilk makale de verdigimiz emulatoru kullanabiliriz. (Isterseniz telefonunuzda da test edebilirsiniz) Süper sonuç J Evet arkadaslar ilk makalemiz de WAP' a hızlı bir giris yapmıstık. Bu makalemizde de WAP kontrollerini inceledik. Bir sonra ki makalemiz de görüsmek üzere. Iyi çalısmalar dilerim. Sem Göksusem.goksu@yazilimgunlugu.com www.semgoksu.com | www.yazilimgunlugu.com Kaynaklar http://www.w3schools.com http://www.msdn.com
29 Oca 2008 WAP’A GİRİŞ Kategori: Mobil Etiketler: Windows Phone 2 Yorum Merhaba arkadaşlar bu makalemizde wap sitelerinin nasıl geliştirildiğine, geliştirme için neye ihtiyaç duyduğumuza bakıp WAP Dünyasına hızlı bir adım atacağız.WAP Nedir?Wap [Wireless Application Protocol] mobil telefonlar ve wireless aygıtlar ile Internet servislerine baglanmamamızı saglayan bir standarttır. Evinizdeki bilgisayarınız da internet üzerinden yapabildiginiz her seyi Cep telefonunuz ile de yapabilmenizi saglıyor.Aslında WEB'den çok fazla bir farkı yoktur. Host edilmesi, gelistirme ortamı aynı web'de oldugu gibidir. Bazı cihazlar WML desteklerken son dönem de özellikle tüm telefonlar da XHTML hatta HTML formatlarını desteklemeye basladı.WAP - WEB Ne Fark Var?Aslında çok fazla fark yoktur. Özellikle gelisen teknoloji ile hemen hemen her cep telefonunda ve Mobile aygıtlar da Mobile browser'lar oldukça gelisti. Bu yüzden WEB'de yaptıgımız her seyi WAP'ta da yapabiliyoruz. WAP ilk zamanlarda Mobil Eglence için kullanıldıysa da simdi neredeyse tüm web sitelerinin birde wap servisi var. Bunun için en iyi örnek bankaların Internet Subelerini WAP' a tasımalarıdır... Teknik olarak farklılıklara bakacak olursak, Bazı eski telefonlarda ve aygıtlarda CSS (Sitil Dosyaları) kullanılamıyor. Ekran boyutunun küçük olması nedeniyle ne yazık ki WEB' de oldugumuz kadar özgür degiliz. Bu yüzden telefonların ve mobile aygıtların izin verdigi kadar esneyebiliyoruz. Örnek WAP Sitelerihttp://wap.garanti.com.tr > Garanti Wap Subesihttp://wap.monster.com.tr > Monster Kariyer Sirketi Wap Sitesihttp://wap.logizmo.com > Logo Melodi Eglence ServisiBenzer olarak kullanılan bir çok Web Sitesi vardır. Nasıl WAP Sitesi Gelistirebiliriz?WAP Sitemizi Host etmek için Web Sunucusu,WAP Sitemizi Görüntülemek için Internet Explorer,WAP Sitemizi Gelistirmek için Visual Studio (HTML, WML, ASP, ASPX, PHP vs. bütün programlama dilleri ile WAP sitesi gelistirebiliriz),Yazdıgımız Kodu handle etmek için .Net Framework,Test etmek için WAP emulator örnegin: http://waprunner.wap3.net/emu_wap3/p/wap3/ WAP NASIL ÇALISIR?Wap sitelerinin çalısma prensibi aynı web sitelerinde oldugu gibidir. Sayfaya bir istek geldiginde istek internet aracılıgıyla IIS'e iletilir. Talep Framework tarafından handle edildikten sonra asp.net tarafından compile edilir istegi yapan kullanıcıya geri döndürülür. Bu duruma göre HTML, WML ve XHTML olabilir..NET MOBILE .NET Mobile Microsoft .Net Framework ve ASP.NET'in için bir extension'dır. .Net Mobile mobil telefonlar ve mobil aygıtlar için uygulamalar gelistirmeyi saglayar ve sunucu bazlı çalısan form kontrollerini kullanmamızı saglar. Yukarı da belirttigim gibi farklı aygıtlar da farklı sonuçlar üretebilir(HTML, WML, CHTML, XHTML gibi...)VISUAL STUDIO ORTAMINDA WAP SITESI GELISTIRMEK Yeni bir wap sitesi gelistirmek için çok fazla bir sey yapmamıza gerek yok. Bunun için proje olarak yeni bir web sitesi olusturmamız yeterli olacaktır. Ben bos bir WEB Site Olusturuyorum. Farklı olarak Projemize Webform degil MobileWebForm ekleyecegiz. Bunun için projemize yeni bir Item ekleyelim. Gelen Ekranda gördügümüz gibi Mobile Web Formu seçtim.Evet, Formumuzu biraz inceleyelim. Ilk olarak design tarafına bakalım.Gördügümüz gibi Web Formdan biraz daha farklı bir sekilde. HTML Kısmına bakacak olursak. <%@Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %><htmlxmlns="http://www.w3.org/1999/xhtml" ><body><mobile:Form id="Form1" runat="server"></mobile:Form></body></html> Ilk bakısta WEB Form'dan çok fazla bir fark yok. Web Formda oldugu gibi Code behind çalısabiliyoruz. Biraz daha incelersek NameSpace ve Assembly'lerin System.Web.UI.MobileControlsve System.Web.Mobileolarak formumuza eklendigini göreceksiniz. Gördügünüz gibi WEB' de oldugu gibi WAP' dada bazı kontroller var. Bunların isimleri farklı olsa da WEB' deki kontrollerle aynı isi yapıyorlar. Tabi Visual Studio Simdilik bize WEB' deki kadar çok kontrol saglamıyor JSimdi basitçe bir örnek yapalım. Yukarıda olusturdugumuz bir projeye yeni bir mobile site ekleyelim. Toolbox'dan Mobile Web Forms Içerisinden 2 label, 1 textbox, 1 Command ekleyelim. Not: Bu kontrolleri ilerleyen makaleler de inceliyor olacagız. <%@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"><mobile:Label ID="Label2" Runat="server" Font-Bold="True">YAS ÖLÇER</mobile:Label><mobile:TextBox ID="TextBox1" Runat="server"></mobile:TextBox><mobile:Command ID="Command1" Runat="server" OnClick="Command_Click1">Yas Kaç ?</mobile:Command><br /><mobile:Label ID="Label1" Runat="server"></mobile:Label></mobile:Form></body></html> Kod tarafında çok basit bir algoritma hazırladım. protected void Command_Click1(object sender, EventArgs e){int Yas = Convert.ToInt32(TextBox1.Text);if (Yas >= 18){Label1.Text = "Yasınız Resit";}else{Label1.Text = "Büyüde Gel";}}Simdi yazdıgımız kodu test edelim. Yukarıda örnegini verdigim emulator'den projemizi test edelim.Hayırlı ugurlu olsun J Bu makalemizin de sonuna geldik. Makalenin 2. Serisinde WAP Kontrollerini inceliyor olacagız. Sem Göksusem.goksu@yazilimgunlugu.com www.semgoksu.com | www.yazilimgunlugu.com Kaynaklarhttp://www.w3schools.comhttp://www.msdn.com