.NET 3.0 çıktı dedik, peki ne bu .NET 3.0? Biraz da bundan bahsetmek lazım sanırım. .NET 3.0, .NET 2.0’ın biraz daha genişletilmiş hali. Arka tarafda aslında değişek hiç bir şey yok. .NET 2.0 ile gelen CL tamamen aynı. Ancak Windows Presentation Foundation,Windows Communication Foundation,Windows WorkFlow Foundation ve CardSpace gibi yeni kavramlar mevcut. Aslında bu konuların hepsi çok ayrıntılı ve çok güzel kavramlar. Hepsini burada anlatmak isterdim ama ne yazık ki şu an ki bilgi düzeyim ve ilgi alanım hepsini içermiyor. Şu sıralar, hatta uzun bir süredir Windows Presentation Foundation ile ilgilenmekteyim. WPF ile ilgili öğrendiğim şeyler sanırım burada daha bir öncelikli olacak.
WPF, Microsoft’un yeni arayüz sistemi. GDI ve GDI+, Win32 uygulamaları geliştiren ve grafiksel işler ile uğraşanların çok yakından bildiği kavramlardır sanırım. WPF için ise yeni nesil GDI demek sanırım çok da yanlış olmaz. Microsoft, WPF’yi sunarken bunu çok belirtmesede şahsen GDI olayının yeni nesil Windows uygulamaları için pek geçerli olacağını sanmıyorum. Tabi ki bu uzun zaman alacak. WPF, kavramı managed code diye adlandırdığımız .NET Framework altyapısına dayanıyor. Tabi ki bu sadece bizim bilmemiz gereken, yada bilmemiz istenen bir şey. Aslında arka tarafta olanlar biraz daha farklı. WPF ile Windows ve Web uygulamalarının grafiksel yönleri DirectX alt yapısı ile oldukça güçleniyor. WPF çok arka taraflarında Media Integration Layer denen bir kavram var, bu sayede ekran kartının core elementleri uygulamalarda DirectX alt yapısını kullanarak ön plana çıkıyor. Yani ne kadar iyi bir ekran kartınız varsa WPF o kadar eğlenceli gelecek.
WPF’nin bir diğer güzelliği ise, UI(user interface) ve code kısımlarını biraz daha uzaklaştırması. Bu XAML denen, XML’den türeyen yeni bir markup dili ile gerçekleşiyor.Extensible Application Markup Language kavramı ile artık XML yapısına benzeyen bir yapı ile UI tasarlayabiliyoruz. XAML’de her tag aslında bir class’a denk geliyor ve XAML parser arka planda bu tagları objelere parse ediyor. Yani XAML yerine standart kodlama ile de isterseniz aynı şeyleri yapabiliyoruz. Madem öle neden XAML? Bence bu sorunun tek cevabı, esneklik.XAML ile normal kodlayarak yapabileceğiniz şeyleri çok daha kontrollü ve kolay şekilde yapabiliyorsunuz. Sonradan değiştirmesi ve deployment kısmındaki sağladığı kolaylıklar ise capası…Belki arka planda yapılan parse işlemleri falan, “Ya bunlar sistemi yavaşlatır ne gerek var böyle şeylere” demenize neden olabilir, ama gelişen işlemci ve bellek teknolojisi sanırım buna cevap olur. .NET’in hantallığını bu şekilde savunarak zamanında baya başarılı olan Microsoft, arkasına aldığı bu teknolojik gelişmeler ile bu hantallığı baya bir unutturdu aslında. Neyse devam edelim…XAML’in tasarım konusunda sağladığı esneklikten biraz daha ayrıntılı bahsetmek istiyorum. XAML’in en büyük özelliklerinden biri program mantığını arayüzden ayırması. Aslında .NET ile uygulama geliştirirken, bu kavramı ister istemez kullanıyorduk. Arayüzlerin ayrı bir yerde tutulması ve kodların ayrı bir yerde tutulması işimizi biraz olsun kolaylaştırıyor. XAML’de bu olay biraz daha gelişiyor ve program logic’ini tamamen arayüzden bağımsız yapabiliyoruz, ya da bunun tam tersi. Bu da arayüz kontrollerinin dinamik olarak yaratılmasının önünü açan en büyük faktör aslında. Microsoft’un .NET 3.0 konseptine uyan yeni uygulamaları ile bu özelliği ister istemez çok kullanacağız. Mesela Expression uygulamasında, yaptığınız veya yarattığınız tasarımları XAML şeklinde export edip uygulamanızda çok rahat kullanabiliyor olacaksınız.
WPF’ye giriş niteliğinde ki bu yazı ile öğrendiğim bazı şeyleri paylaşmak istedim.Ne kadar faydalı olur bilemiyorum ama ilerleyen günler içerisinde yeni yazılar ile WPF ile nasıl uygulama geliştirilir,ne nasıl yapılır, kendi bilgim doğrultusunda anlatmaya çalışacağım…