Serap Şen

Bilişim hakkında herşey…

WPF (Windows Presentation Foundation)

Merhaba Arkadaşlar,

Bu yazımda WPF nedir? Nasıl kullanılır? ? Ne işe yarar? WPF’de yenilikler neler? Bunlardan bahsedeceğim.

WPF (Windows Presentation Foundation) nedir?

WPF yeni nesil kullanıcı ara yüzü geliştirme ve görüntüleme platformudur. XML’e benzer yapısı ile XAML (eXtensible Application Markup Language ) dilini kullanarak(zamel olarak telaffuz edilir), HTML kullanarak hazırladığımız ara yüzlerdeki gibi WPF’de de kolaylıkla esnek kullanıcı ara yüzleri oluşturabiliriz. XAML dili ile programcı ve tasarımcı arasındaki bağımlılığı ortadan kaldırmaktır. Tasarımcı XAML dilini kullanarak ara yüzü oluşturacak, programcı ise çalışması gereken kodları yazacak, uygulamanın sonunda da programcının kodları ile tasarımcının hazırladığı ara yüz birleştirilerek uygulama hazır hale getirilecek. Bu noktada zamandan kazanmak olası bir durumdur. Oysa bundan önceki programlama modelinde kullanıcı ara yüzünü geliştirmek kod ile gerçekleştiğinden ara yüzün hazırlanması ve kodların yazımı tamamen programcının sorumluluğunda olan bir durumdu.

WPF’de neler yeni?

  •  Dağıtım sorununa çözüm gelmektedir ki; hazırladığımız WPF uygulamalarının Internet Explorer ve FireFox gibi popüler tarayıcılar vasıtasıyla da kullanıcılara kullandırma imkânı vermesi uygulamalarımıza esneklik kazandırmaktadır. Web uygulamalarına oldukça benzeyen WPF uygulamalarına XBAP (XAML Browser Application) denilmektedir. Bu sayede kullanıcıya içerik ve kapasite olarak oldukça zengin uygulama kullanma imkânı verebiliriz.
  •  Yeniliklerle beraber WPF mimarisinin getirdiği kolaylıklardan birisi de button, textbox,menü gibi pencere kontrollerinin oluşturulması ve özelleştirilmesi gelmektedir.
  • Geliştiricilerin en çok başını ağrıtan durumlardan birisi de çözünürlük bağımsız (Resolution independence) kullanıcı ara yüzü tasarlamaktır. Buna çözüm olarak çözünürlük problemi olmadan esnek zoom yapabilirsiniz.

 

WPF’de Mimari

 

Çoklu katmanlardan meydana gelen WPF mimarisinde temel olarak WPF ile oluşturulan yönetilebilir (managed) nesnelerin (pencereler veya kontroller gibi) alt katmanlarda DirectX kullanarak çizilip yönetilmeyen (unmanaged) nesneler oluşturularak ekranda görüntülenmesi temel prensibine dayanmaktadır. WPF nesnelerinin DirectX ile etkileşimi milcore.dll (Media Integration Layer) isimli yönetilmeyen kod ile yazılmış bir birim tarafından gerçekleştirilmektedir. Böyle bir yapının tek nedeni direk grafik kartı ile işlem yapılacağından daha hızlı çalışabilen yönetilmeyen kod kullanılarak yüksek seviyede performans elde edilmek istenmedir.

PresentationFramework, WPF’de en üst katmanda olup uygulama geliştirirken kullanılan button,textbox, panel,stil, şablonlar gibi WPF nesnelerini barındırır. Tüm bu nesnelerin sınıf karşılıkları da PresentationFramework.dll içerisinde yer alır.

PresentationCore, WPF’deki nesnelerin temel bileşenlerini oluşturan ilerde değineceğimiz Visual gibi nesnelerin bulunduğu birimdir. Eğer WPF’deki nesnelerin verdiği imkânlar dışında özelleştirilmiş nesnelere ihtiyaç duyulduğunda bu katmandaki nesnelerle işlemler yapmak gerekecektir. Yine bu katmandaki tüm nesneler PresentationCore.dll içerisinde yer alır.

Milcore, WPF’de kontrollerin oluşturulması ve görüntülenmesindeki en temel işlemleri meydana getiren birimdir. DirectX API’sinin Direct3D kısmını kısmından yararlanarak WPF nesnelerinin

donanım seviyesine yakın işlemlerle çizilip görüntülenmesi sağlamaktadır. Yani WPF katmanı ile DirectX katmanı arasında köprü görevini yapmaktadır.

 WPF Kullanıcı Ara yüzü Mimarisi

Kullanıcı ara yüzünü oluşturacak nesneleri inceledikten sonra şimdi basit bir ara yüzü oluşturulduğunda bunun WPF mimarisinde arka planda iki ağaç modeli ile gerçeklediği görülür.

Bu ara yüzü oluşturan WPF nesneleri ilk önce “Logical Tree” denilen bir ağaç yapısına çevrilir. Bu yapı ekrandaki nesnelerin bire bir yapısal durumunu tutar ve çalışma zamanında bu yapıdan yola çıkılarak görsel ara yüz oluşturulmaya başlanır. Yani logical tree aşağıdaki gibi yapılandırılarak program ara yüzünü oluşturacak nesneler organize edilir.

Bir uygulama yapalım:

 Wpf yapısı itibariyle XAML okuyarak çalıştığı için tasarımları oluştururken XAML üzerinde değişiklikler yapmak oldukça zor. Bunu en kolaya indirgemek için Expression Blend 4‘ ü kurup Wpf Application’ ı seçip oldukça hızlı ve rahat bir şekilde tasarımlar yapabilirsiniz. Biz örnek uygulamamızı Blend 4 üzerinde yapacağız.

Asserts/Button ekle. “Properties” den rengini değiştirebilirsiniz.

Arka planda XAML kodlarını görelim.

 

Yararlanılan Kaynaklar:

http://www.csharpnedir.com/articles/read/?id=896&title=WPF’i%20Anlamak

http://www.wpftutorial.net/WPFIntroduction.html

NOT: Bu makalem www.readmee.com da yayınlanmıştır. Yazılarımı orada da takip edebilirsiniz.


Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Follow Me

Microsoft Imagine Cup 2012 Repharm Project

Makalelerimi takip edebilirsiniz…

Arşivlerim

Readmee E-dergimiz

Anketler

Web Sitemi Beğendin mi?

  • Kötü (24%, 35 Votes)
  • Fena değil (8%, 12 Votes)
  • İdare eder (10%, 15 Votes)
  • İyi (18%, 27 Votes)
  • Çok iyi (40%, 57 Votes)

Total Voters: 146

Loading ... Loading ...

Kaç Kişi Online?