WPF’Lİ GÜNLER SERİSİSeri-1-WPF’e GirişMerhaba arkadaşlar,Bilişim-Dergi’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 anlatıcı kitle seviyeleri gibi kıstasları örnek gösterebilirim. Ben de münkü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) türkçe’de tam karşılığı yok şu an benim bildiğim kadarıyla. hatta google translate bile çeviremedi. 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)‘da .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 yada 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ıkta insanları tembelliğe, hazırcılığa itmekte. Konuyu daha fazla dağıtmadan sizlere WPF tarihini,WPF’nin ne olduğunu anlatmaya çalışacağım.WPF’i tarihine kısaca bakacak olursak:2003 senesinde PDC(Professional Developer Conference)’da .NET 3.0 ile lanse edilmiştir.Kod adı Avalon olarak ortaya çıkmıştır.Aynı zamanda bu tarihte Silverlight WCF ve WF’da developerlara duyurulmuştur.Şimdi Karşılaştırmalı olarak WPF’i canlandıralım.Bir web projesinde Arayüz tasarımcısı yani Grafik Kodlama ,Web Ön yüz Tasarımı yapan kişiler ve birde 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(örn: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 controllerle tasarlanmıştır.WPF masaüstü uygulamalarada bu yönde yeni bir tarz kazandırmıştır.Artık Bir Web ugulamaları kadar güzel Windows Forms uygulamaları yapabileceksiniz. Visual-Studio-2010’a ,Windows Office 2010’a baktığınızda WPF yeteneklerini görebilmektesiniz ne kadar göze hitap ediyor değilmi.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 developer’da hünerlerini gösterebilir ve bu iki durum oluştuğumdada 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’in 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.WPF SampleYukarıda gördüğünüz gibi tasarımcının ortamı HTML ya da XML’e benzemektedir.Bu kısım tasarım kısmının yapılacağı kısımdır.Burada Window controlu üzerine Toolbox’dan istediğiniz kontrolu drag-drop şeklinde koyabilirsiniz.Bu arada ufak bir önemli not vermek isterim her Window kontrolu üzerinde tek layout olmak zorundadadı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 Layoutumuz yer almaktadır ve bu layoutdada button kontrolumuz yer almaktadır. Aslında belli bir hiyerarşi şeklindedir.Günümüzde 2D ve 3D kubik ekranlı uygulamalar,çoklu masaüstü ,animasyonlar ve yeni nesil uygulamalar WPF sayesinde mevcuttur.Eski Windows Formlarda bunları yapabilmek için GDI,GDI+,OpenGL,DirectX gibi kütüphaneleri kullanmanız gerekmekte aynı zamanda uygulamanızda Ram belleği kullanmakta ve CPU’da işlenmekteydi.Bu yüzden ekran titremeleri ,animasyonlarda tutarsın 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’in bir diğer özelliğide 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’da Apletlere benzer.XBAP/WPF Browser Application denir buna zaten eğer Visual Studio’da WPF projesi açmak istediğinizde orada göreceksinizdir WPF Application ve WPF Web Application seçeneklerini. 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’in 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 bende aslında WPF’i çok iyi bilmiyorum bende sizlerle birlikte öğrenmekteyim.WPF serisine elimden geldiği kadar özen göstererek devam ettirmeye çalışıcam .Bir sonraki makalede sizlerle WPF uygulamasına nasıl başlanır,XAML nedir?,kısaca XAML sintaks 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:http://en.wikipedia.org/wiki/Windows_Presentation_Foundationhttp://ferruh.mavituna.com/wpf-windows-presentation-framework-nedir-oku/http://aspalliance.com/articles/LearnWPF.aspxWPF- Aykut Taşdelen’in KitabıÇetin arkadaşımın katkılarıyla!!