net web kullanıcı kontrolleri

Upload: dr-kerem-koseoglu

Post on 30-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 .NET Web Kullanc Kontrolleri

    1/3

    erkese merhaba! Bu ay, .NET ile

    Web uygulamalar gelitiren or-ta dzeydeki programclar se-vindirecek bir yaz ilekarnzdayz. C# ile Web uygu-

    lamalar gelitiriyorsunuz. Gelitirdiiniz sayfa-larda zaman zaman Web User Controllara da yerveriyorsunuz. Peki, User Controllarnzdan ye-terli verimi alabildiinizden emin misiniz?

    Gelin, ie temel kavramlar yle bir hatrlaya-rak balayalm... Web User Controln ne oldu-unu herkes biliyor, yle deil mi?Hatrlayacanz gibi, .NET, bir web projesi ieri-sinde iki temel arabirim seenei sunuyordu: Web formu ve Web kontrolleri. Web formlar, C#ve HTML destei ile hazrlanan ve dinamik bir e-kilde Web sayfas retebilen elerdir. Web kon-trolleri ise tek balarna altrlamayan, ancak Web formlar (sayfalar) ierisine dahil edilebilenkk kod / tasarm paralardr.

    Web kontrollerinin hazrlanmas srasnda yi-ne C# ve HTML dillerinden faydalanlr.

    Web Kontrollerinin Avantajlar

    Peki, durup dururken niye bir Web kontrol kul-lanmak isteyelim? Bunun en nemli sebebi, Webkontrollerinin bize salad nesne temelli prog-ramclk avantajlardr. Farkl Web sayfalarndasklkla kullandmz bir tasarm Web kontrolierisinde bir kez kodladmzda, sz konusu ta-sarm, dhil ettiimiz sayfalar ierisinde otoma-tik olarak belirecektir.

    Ortak tasarm zerinde bir deiiklik yapmak istediimizde, Web kontrol barndran (belki de yzlerce) sayfaya hi dokunmadan, sadece Webkontroln modifiye etmemiz yeterlidir.

    Buraya kadar anlalmayan bir ey yok, deilmi? Gzel... Birok Web programcsnn, Web

    kontrolleri hakkndaki temel tecrbeye zaten sa-hip olduunu tahmin ediyorum.

    Etkileimli Web KontrolleriPeki, ya size Web kontrollerinin (tasarmn te-sinde yer alan) programclk ihtiyalarna da ce-vap verebildiini sylersem? Evet, sonuta Webkontrol dediimiz ey de temelde bir snftr, y-le deil mi? Bu durumda; bir Web kontrol de hersnf gibi ilevlere sahip olabilir.

    Bir Web kontrol ierisine ekleyeceimiz eks-tra fonksiyonlar sayesinde, sz konusu kontrol,

    H

    W i n d ow s & . N ET Ma ga z i n e A U S T O S 2 0 0 5 w w w . w i n n e t m ag . c om . t r

    Planlama

    30

    Web KullancKontrolleri

    Kerem [email protected] xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Web kontrolleri, tek balarna bir ieyaramamalarna ramen, Web sayfalarierisinde olduka faydal olabilir...

    ekil 1:

    Farkl sayfalar arasndaki ortak zelliklerimerkezi bir yerden idare etmek, Webkontrolleri sayesinde mmkndr.

    ekil 2:

    .NET le etkileimli Web Kullanc Kontrollerini kullanarakhayatnz kolaylatrn

    kerem 8/2/05 12:10 PM Page 1

  • 8/9/2019 .NET Web Kullanc Kontrolleri

    2/3

    iinde bulunduu sayfadan gelen ko-mutlara cevap verecek hale getirebiliriz.

    Kark m geldi? Panik yok! rnei-miz hazr bile... Konuyu incelemeye, ba-sit bir Web sayfas ve bu sayfa ierisine yerletirilmi basit bir Web kontrol ilebalayalm.

    Sayfann sol tarafndaki turuncu

    alan, sayfaya gml bir ekilde alanbir Web kontroldr. Sa taraftaki ma-vi alan ise, sayfann kendisine ait kod-lardr. sterseniz gelin, WebForm1.aspx ve WebUserControl1.ascx adl dosyalar-da saklanan Web kodlarna yle bir gzatalm.

    WebUserControl1.ascx

    WebForm1.aspx WebForm1

    Buras Web Sayfas!

    Grdnz gibi, olduka basit birkontrol ve sayfa sz konusu. imdi ge-lelim rneimizin hedefine... Bu rneiyle bir hale getireceiz ki; ziyaretimiz WebForm1 ierisindeki TRKE d-mesine tkladnda, sayfaya gmlhalde bulunan kontrolmz Trke birmetin grntleyecek. Ayn ekilde; N-

    GLZCE dmesi ngilizce bir metnin, ALMANCA dmesi ise Almanca birmetnin grntlenmesini salayacak.

    Hedefimizi hayata geirmeye ncekontrolmzden balayalm. Kontrol-mze ait kod ierisine, deiik dillerdemetin gsterebilen 3 tane fonksiyon ek-leyeceiz.

    WebUserControl1.ascx.cspublic class WebUserControl1 :

    System.Web.UI.UserControl{protected System.Web.UI.WebControls.La-

    bel label1;

    private void Page_Load(object sender,System.EventArgs e)

    {}

    public void displayTR()

    {label1.Text = "Hogeldiniz!";}

    public void displayEN(){label1.Text = "Welcome!";}

    public void displayDE(){label1.Text = "Willkommen!";}}

    Srada, kontrol barndran sayfayaeklememiz gereken kodlar var. Sayfa

    iinde tek yapmamz gereken ey, tkla-nan dmenin diline ait WebUserCon-trol1 fonksiyonunu armak olacak. Yani, ziyaretimiz Trke dmesinetklarsa displayTR(), ngilizce dmesi-ne tklarsa displayEN(), Almanca d-mesine tklarsa displayDE()fonksiyonunu aracaz.

    WebForm1.aspx.cspublic class WebForm1 :

    System.Web.UI.Page{protected System.Web.UI.WebCon-

    trols.Button btn1;protected System.Web.UI.WebCon-

    trols.Button btn2;protected System.Web.UI.WebCon-

    trols.Button btn3;protected WebUserControl1 concon;private void Page_Load(object sender,

    System.EventArgs e){}private void btn1_Click(object sender,

    System.EventArgs e){concon.displayTR();}

    private void btn2_Click(object sender,System.EventArgs e)

    {concon.displayEN();}

    private void btn3_Click(object sender,System.EventArgs e)

    {concon.displayDE();}}

    w w w . w i nn e t m ag . c o m . t r W i n d o w s & . N E T M ag az i ne AU S T O S 20 0 530

    Web Kullanc Kontrolleri

    Olduka basit bir sayfa, yledeil mi?ekil 3:

    Kontrolmzn, sayfadantklanan dmeye ait dilde metingrntlemesini istiyoruz.

    ekil 4:

    kerem 8/2/05 12:10 PM Page 2

  • 8/9/2019 .NET Web Kullanc Kontrolleri

    3/3

    Olduka ak, yle deil mi? imdigelin, projemizi alr durumda gre-lim. Trke dmesine tkladmzda;sayfamz aadaki grnty alacaktr.

    ngilizce dmesine tkladmzda, Web kontrolmzde ngilizce bir metingrntleniyor olacak.

    Son olarak Almanca dmesine tkla- yacaz.

    Evet, hepsi bu kadar... Bu yazda; Web kontrollerinin, iinde barndklarsayfalardan izole bir ekilde almak zorunda olmadn grm olduk. Kon-trolmz iine ekleyeceimiz fonksi- yonlar ve sayfamzdan yapacamz ynlendirmeler sayesinde, sayfamzlakontrolmzn ibirlii ve uyum ieri-sinde almasn rahatlkla salayabili-riz. Bu rnee ait proje dosyalarn,dergi Web sitesinin Ad geen dosya-lar blmnden indirebilirsiniz.

    .NET Web User Controller NeZaman Kullanlr?

    Eer ASP.NET ierisinde standartolarak gelen bir kontrol iinizin b- yk bir ksmn gryorsa; ancak Keke uras yle olsayd gibi birtakm endieleriniz varsa, bu stan-dart kontrol Inherit eden bir WebUser Control yaratmak ve Override yntemiyle kendi kontrolnz iste-diiniz hale getirmek mantkl ve ve-rimli bir zm olacaktr.

    Eer ASP.NET standardnda bulun-mayan bir kontrole ihtiyacnz varsa,kontrol bir Web formu ierisindekodlamaya almak yerine yeni bir Web User Control yaratmak iyi bir fi-kir olacaktr.

    Web projenizin farkl sayfalarndatekrar tekrar kullandnz zerk kodbloklarn Web User Control halinegetirmeniz, sizin ve projenizin lehineolacaktr. rnein; deiik sayfalardagrntlemek istediiniz ziyaretianketlerini farkl sayfalarda tekrartekrar kodlamak yerine; AN-KET.ASCX adl bir User Control ya-ratmanz ve anket koymak istediiniz

    sayfalara bu kontrol dahil etmeniz yerinde olur. Benzer ekilde, farkl sayfalarda tek-

    rarlanan tasarm bloklar da WebUser Control haline getirilebilir. r-nein; sitenin her sayfasnda yer alandinamik bir men sz konusuysa, bumenye ait tasarm deiik sayfalar-da tekrarlamak yerine tek bir WebUser Control haline getirip farkl say-falara dahil etmek yerinde olacaktr.

    Eer bir ASP.NET sayfasnn kodla-mas gittike karyorsa ve iindenklmaz bir hal alyorsa, sayfa ze-rindeki eleri (programclk mant- erevesinde) mantksal bloklaradntrp, her bir blou bamszve dinamik birer User Control halinegetirmek ileri daha kolay bir hale ge-tirecektir.

    Yardmc linkler:http://msdn.microsoft.com/library/de-fault.asp?url=/library/en-us/vbcon/html/vbwlkWalkthroughCreatingWe-bUserControls.asp --> Az tecrbeli C#programclar, adm adm Web UserControl yaratma konusunda bu sayfayabavurabilir.

    http://msdn.microsoft.com/lib-rary/default.asp?url=/library/en-us/vbcon/html/vbwlkWalkthroughCreatingWebUserControls.asp --> Az tecr-beli VB.NET programclar, adm adm Web User Control yaratma konusundabu sayfaya bavurabilir.

    http://msdn.microsoft.com/lib-rary/default.asp?url=/library/en-us/dv_vjsharp/html/vjwlkwalkthroughcreatingwebusercontrolwithvisualj.asp --> Tecrbesiz J# programclar iinadmadm Web User Control yaratma.

    W i n d o w s & . N E T Ma g az i n e A U S TO S 2 0 0 5 w w w . w i n n e tm a g . c om . t r30

    Planlama

    Trke dmesine tkladktansonra...ekil 5:

    ngilizce dmesine tkladktansonra...ekil 6:

    Almanca dmesine tkladktansonra...ekil 7:

    kerem 8/2/05 12:10 PM Page 3