Ağustos 2011 | Sayı : 22
      WPF’ye Giriş Ağustos 2011 | Sayı : 22

WPF'Lİ GÜNLER SERİSİ - WPF'YE GİRİŞ

Merhaba sevgili okurlar. BilişimDergi'de bu benim ilk makalem. Umarım son makalem de olmaz. Makale yazmak sanıldığı kadar kolay bir iş değil. Hatta bazı sitelere sadece makale yazarak para kazananlar bile bulunmakta. Fakat buralarda da herkesin makaleleri boy gösteremez çünkü buradaki makalelerin belli başlı standartları vardır. Bunlara en az 1000 kelime olması, konuya odaklı ve genel kitle seviyeleri gibi kıstasları örnek gösterebilirim. Ben de, mümkün olduğunca bu standartlara uygun olmaya çalışacağım. Makalelerimde bazen belli konuları bildiğinizi varsayacağım, bazen ilk kez karşılaşıyormuşsunuz gibi basite indirgemeye çalışacağım. Burada yapmak istediğim, aslında her okuyucuya hitap etmek, çok fazla konulara dalıp sıkmamaktır. Kısa bir açıklamadan sonra konumuza dönebiliriz.

İlk önce, "WPF nedir? Bu harfler de neyin nesi?" diyebilirsiniz. WPF (Windows Presentation Foundation)'nin Türkçede tam karşılığı yok şu an. WPF, .NET Framework 3.0 ailesiyle birlikte Microsoft tarafından çıkarılan yeni bir teknolojidir. Bu teknoloji ile WCF (Windows Communication Foundation) ve WF (Workflow Foundation) de .NET ailesine katılmıştır. Makalelerini okuduğum büyüklerim, bundan 10 sene kadar öncesinde, bizim çok sık kulladığımız Windows pencerelerini C programlama dilinde Windows API'lerini kullanarak ya da C++ programlama dilinde Windows Foundation Class'ları kullanarak geliştirdiklerini anlatmışlardır hep. C ile böyle bir şeyi düşünemiyorum bile. Bu yüzden, yeni rejenerasyon olarak kolaylık yönünden şanslıyız belki ama bu kolaylık da insanları tembelliğe, hazırcılığa itmekte. Konuyu daha fazla dağıtmadan sizlere WPF'nin tarihini, WPF'nin ne olduğunu anlatmaya çalışacağım.

WPF'nin tarihine kısaca bakacak olursak; 2003 senesinde PDC (Professional Developer Conference)'de .NET 3.0 ile lanse edilmiştir. Kod adı Avalon olarak ortaya çıkmıştır. Aynı zamanda, bu tarihte Silverlight WCF ve WF de geliştiricilere duyurulmuştur. Şimdi, karşılaştırmalı olarak WPF'yi canlandıralım.

Bir Web projesinde, arayüz tasarımcısı yani grafik kodlama, Web ön yüz tasarımı yapan kişiler ve bir de code behind tarafında çalışan geliştiriciler yer almaktadır yani bir ayrım söz konusudur. Fakat Windows form uygulamalarında bu ayrım yoktu WPF çıkana kadar. Eski yapılan uygulamalara bakarsanız (Örneğin; bir mağazada, kasada kullanılan bilgisayarda bulunan muhasebe programları vb.) her şey standart gri Windows formlar, standart köşeli butonlar, MDI-parent tarzında kontrollerle tasarlanmıştır. WPF, masaüstü uygulamalara da bu yönde yeni bir tarz kazandırmıştır. Artık Web uygulamaları kadar güzel Windows Forms uygulamaları yapabileceksiniz. Visual Studio 2010'a, Office 2010'a baktığınızda WPF yeteneklerini görebilmektesiniz. Ne kadar göze hitap ediyor, değil mi? Tasarımcı arkadaşları heyecanlandırdı mı acaba? Yani kısaca, size WPF sayesinde uygulama geliştirme aşamasında,  tasarım ve kodlamanın birbirinden bağımsız olduğunu anlatmaya çalıştım. Tasarımcı yeteneklerini konuştururken geliştirici de hünerlerini gösterebilir ve bu iki durum oluştuğunda da günümüz uygulamalarından çok daha iyileri çıkabilir.

Şimdi, biraz daha teknik konulara gelelim. Tasarımla kodlamayı birbirinden ayırdığımızı söyledik ama nasıl? WPF'nin tasarım aşamasında, tıpkı HTML gibi bir işaretleme dili kullanılmaktadır ve XML yapısına da benzemektedir. Bu işaretleme diline XAML (Extensible Application Markup Language) denir. İşte bu noktada, tasarımcıların yeri tam burasıdır.

 
Resim 1: WPF Sample

Yukarıda gördüğünüz gibi, tasarımcının ortamı HTML yada XML'e benzemektedir. Bu kısım, tasarım kısmının yapılacağı kısımdır. Burada, Windows kontrolü üzerine Toolbox'tan istediğiniz kontrolü drag-drop şeklinde koyabilirsiniz. Bu arada, ufak bir önemli not vermek isterim. Her Windows kontrolü üzerinde tek layout olmak zorundadır fakat iç içe layout'larla kontrollerinizi yönetebilirsiniz. Aslında bu klasik Windows formlarda container'a denk gelmektedir ve aynı mantık çerçevesindedir. Layout kavramını ilerki makalelerinde detaylı bir şekilde ele alacağım. Yukarıdaki örneğimizde bir Window tagımız bulunmaktadır. Bu tag'ın içinde olması gereken tek bir tane grid layout'umuz yer almaktadır ve bu layout'da da button kontrolümüz yer almaktadır. Aslında, belli bir hiyerarşi şeklindedir. Günümüzde 2D ve 3D kübik ekranlı uygulamalar, çoklu masaüstü, animasyonlar ve yeni nesil uygulamalar WPF sayesinde mevcuttur. Eski Windows formlarda bunları yapabilmek için GDI, GDI+, Open GL, DirectX gibi kütüphaneleri kullanmanız gerekmekte. Aynı zamanda uygulamanız da RAM belleği ve CPU'yu da kullanmaktaydı. Bu yüzden, ekran titremeleri ve animasyonlarda tutarsız yapılar oluşmaktaydı. WPF'de Windows formların altyapısında kullanılan GDI+ aksine DirectX kütüphanesi kullanılmıştır. Bu sayede, daha hızlı görüntü işleme (rendering) münkün olmuştur. Ayrıca WPF, piksel tabanlı değil vektörel  bir sistem üzerine kuruludur. Hep sizlere masaüstü uygulamasından bahsettim ama WPF'nin bir diğer özelliği de, isterseniz Web uygulaması da yapabilmenizdir. Fakat bu uygulamalar bilgisayarınıza indirilerek çalışmakta, aslında yine bir nevi masaüstü uygulama olmaktadır. Aslında bu, Java'daki appletlere benzer. XBAP/WPF Browser Application denir buna. Zaten Visual Studio'da WPF projesi açmak istediğinizde orada, WPF Application ve WPF Web Application seçeneklerini  göreceksinizdir. WPF ve Silverlight için Microsoft, aynı zamanda "Expression Ürün Ailesi" denilen bir dizi tasarım araçları da çıkarmıştır. Önemli bir not daha vermek isterim; WPF uygulamaları Windows XP SP3 öncesinde çalışmamaktadır. Aslında bu hiç çalışmaması değil, WPF'nin getirdiği yeniliklerden yararlanılamamasıdır.

Evet arkadaşlar, sizlerle bu makalede WPF'e giriş yapmaya ve onu tanımaya çalıştım. Unutmayın; ben de aslında WPF'yi çok iyi bilmiyorum. Ben de sizlerle birlikte öğrenmekteyim. WPF serisine elimden geldiği kadar özen göstererek devam ettirmeye çalışacağım. Bir sonraki makalede sizlerle "WPF uygulamasına nasıl başlanır, XAML nedir, kısaca XAML sözdizimi kuralları nelerdir, WPF kütüpheneleri nelerdir (hiyerarşi şekli), application sınıfı nedir ve WPF Application Life Cycle nedir?" sorularına yanıt bulmaya çalışacağız.

Bir sonraki makaleye kadar sağlıcakla kalın.

 

Kaynaklar:

      Çetin İMRE
İ.Ü. Bilgisayar Mühendisliği 4. Sınıf
- Ağustos 2011 -
Editörden... | Ercan ZENGİN Sonsuzluk ve Sayılabilirlik | Yrd. Doç. Dr. Olcay KURŞUN Bilgisayar Üzerinde Sıvı ile Soğutma | Ahmet Burak ABDİKOĞLU CSS3 ve Yenilikler | Can YILDIRIM WPF’ye Giriş | Çetin İMRE Mafia II | Erman TEPE Web Lab | Gökhan KESİCİ Information Retrieval Nedir? | Selçuk SÖZÜER Yaşam Yazılım Döngüsü | Rukiye Şerife BAŞTUĞ Android Cihaz İncelemeleri | Rabia Tuğçe KESER XML ve XML Teknolojileri | Sefa YILMAZ Mobil İşletim Sistemleri | Fatma COŞKUN & Özge ÖZPUNAR
« önceki sayfa - 4 - sonraki sayfa »

Ana Sayfa | Künye | Dergimiz | | İletişim
© 2009-2010 Bilisimdergi.Com Tasarım - Kodlama : İU BİLGİSAYAR

Creative Commons License
Bilişim Dergi içeriği  Creative Commons  lisansı ile korunmaktadır.
Kaynak göstermek ve link vermek şartıyla yazılarımızı kullanabilirsiniz.