31 Oca 2008 WAP ile ilgili yazmış olduğum Makaleler Kategori: Benden Etiketler: .NET FrameworkWindows Phone 0 Yorum http://www.yazilimgunlugu.com/ArticleDetails.aspx?ArticleID=428 > Wap'a Giris http://www.yazilimgunlugu.com/ArticleDetails.aspx?ArticleID=430 > Wap Kontrolleri http://www.yazilimgunlugu.com/ArticleDetails.aspx?ArticleID=431 > Ilk Wap Sitemiz Okumanızı tavsiye ederim J
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