C#nedir?com
 
YAZAR HAKKINDA
Turhal Temizer
Turhal Temizer
http://www.turhaltemizer.com
İletişme geçmek için tıklayın.
92 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: birlikte disinda eklentiler framework gelistirilmis ilgili internet istendiginde olanak sorunsuz studio uygulamalar uygulamalari yardimi yenilikler .NET 3.x Turhal Temizer
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : .NET 3.x
Yayınlanma Tarihi : 14.12.2007
Okunma Sayısı : 29991
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 21.1.2018
Turhal Temizer 'in Blogu
C# – IRR Function 21.1.2018
Burak Selim Şenyurt
Sadece Tarayıcı Kullanarak Web API Servisini Google Cloud Platform Üzerinde Yayınlamak 21.1.2018
Burak Selim Şenyurt
AWS Lambda Üzerinde .Net Core Koşturmak 21.1.2018
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
WPF - .NET Framework 3.5 ile Gelen Yenilikler
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Visual Studio 2008 ‘i yakından takip edenler hatırlar ki 3 hafta(20 Kasım 2007) önce tam sürümü biz geliştiricilere sunulmuştu. Bu tam sürümün piyasaya sunulması ile birlikte birçok sorun düzeltilmişken Windows Vista kullanıcılarında bazı sorunlar ile karşılaştır. Fakat bu sorunlarda çözülemeyecek kadar vahim değildi. Bazıları .NET kütüphanelerine ulaşamıyorlardı, bazıları ise hiçbir kod yazmadan boş projeyi derleyemiyorlardı. Bu tür sorunların çözümleri tahmin edeceğiniz üzere oldukça kolaydı. Nerelerde çalışacaklarını belirtmemiz yeterliydi.

Bu gelişimlerin ötesinde birde çok güzel bir olay yaşandı. .NET3.0 ömrünü doldurmuş yerini .NET3.5 almıştır. Bu gelişimler olurken bizlerinde .NET3.0 bünyesinde yer alan yeni nesil dillerin ne tür değişiklikler yaşadığını merak etmeye başlamıştık. Bu meraklar ilk olarak eski özellikler kaybolup kaybolmadığı ile ilgiliydi. Fakat bunun yersiz bir merak olduğunu ve kaybolması yerine birçok ek özellikle geldiğini öğrenmiş olarak içimizi rahatlatıyorduk. Peki, .NET3.5 ‘te neler yeniydi. İlk olarak bu sorunun cevabını bulmamız gerekiyordu.

.Net3.0 ile aramıza katılmış olan WPF, WCF, WF ve CardSpace .NET3.5 bünyesinde yerlerini almışlardı. Peki daha yeni ne vardı. Hatırlayacağınız kadarıyla Visual Studio 2005 ’e .NET3.0 ile birlikte Linq to SQL, Ajax gibi eklentilerde kuruyorduk. Bu teknolojilerin hayatımızı oldukça kolaylaştırdığı söyleyebilirdik. Doğal olarak beklentimiz yeni çekirdekte bulunmasıydı. Çünkü bu yapılar .NET3.0 bünyesine dahil edilmemişlerdi. Microsoft’ta çalışan .NET geliştiricileri de bu durumu gözlerinden kaçırmayarak bu iki nadide yapının yanında Rest adı verilen bir yapıyı da .NET3.5 çekirdeğine de ekleyerek beklentileri karşılamış oluyordu.

Peki, bu kadar eklemeler olurken eskiden bünyede yer alan dillere ve eski sürüm Framework ’lere destek ne düzeydeydi. .NET2.0 tek bir eksiklik dışında tamamıyla .NET3.5’ eklenmiş. Fakat tek bir eksikten bahsetmiştik. VS ’in daha önceki sürümlerinde Java geliştiricilerini düşünerek tamamıyla pazarlama taktiği olarak kullanılan J# dili VS 2008 ’de maalesef yerini alamamış. Diğer diller ise (VB.net, C++.net ve C#.net) varlıklarını sürdürmektedirler. Tabii unutulmaması gereken bir nokta ASP.NET ’te 3.5 sürümü ile aramızda kalmaya devam etmektedir.

.NET3.5 yapısında yer alan dilleri ve kütüphaneleri gösteren bir resim ile yukarıda açıkladıklarımızı daha da akılda kalıcı kılabiliriz.



.NET3.5 çekirdeğinde hangi dillerin ve yapıların yer aldığına göz attıktan sonra, bu yazımızda değinmeyi amaçladığımız .NET3.5 WPF ’e ne tür yenilikler getirdi olacaktır.

Windows Presentation Foundation(WPF) aramıza 2005 yılının son çeyreğinde Avalon kod adı ile merhaba demişti. Kendisi ile birlikte gelen yenilikler ile adından çokça söz ettireceğe benziyordu. Öylede oldu. Peki, ilk çıktığı zamanlarda ne gibi yenilikler getiriyordu. İlk olarak geliştirme aşamasında bizlere XML ’den türemiş olan XAML(Zammel) ile merhaba diyordu. XAML yardımı ile artık standartlaştı dediğimizi Windows Formlar büyüleyici bir görünüme kavuşmuş oldular. Resim, animasyon gibi verilerimizi alternatif programlar(Expression Studio ailesi) yardımı ile XAML kodlarını alarak uygulamamıza ekleyebiliyorduk. Bunun bizlere kazancı tasarımcı – geliştirici uyumunu en üst düzeye çıkarmakla birlikte tamamen sayısal kodlar yardımı ile verilerimizi uygulamamıza eklediğimiz için hem uygulamanın boyutu hem de performansı en uygun denilebilecek seviyeye yaklaşmış oluyordu.

2006 yılının ortalarında ise .NET3.0 ile birlikte Avalon kod adı Windows Presentation Foundation ile gerçek ismine kavuşuyordu. Bu sefer getirdiği yenilikler, masaüstü uygulamalarında Browser tarzı uygulamalar sunarak web ile tam uyum içinde çalışan yazılımlar geliştirmemize olanak tanıyordu. Bunları yaparken de XAML ile birlikte C# ‘ın uyumlu çalışması geliştiricileri kendisine çekmeye başlıyordu.

2007 yılının son çeyreğinden ise Visual Studio 2008 ile .NET Framework 3.5 ‘in içerisinde yer alarak kendisini yenilemiş olarak aramıza daha da kuvvetli bir biçimde yer almış oluyordu. Kod yazımı biraz daha kolaylaştırılması gibi özellikleri, web servisleri ile karşılaşılan sorunların çözümü gibi yenilikler ile kendini daha kuvvetlendirmiş olarak geliştiricilere kendisini sunuyor.

Şimdi ayrıntılı bir biçimde WPF ’in .NET Framework 3.5 ile ne tür yeniliklere sahip olduğuna değineceğiz.

3.0 sürümü ile Uyumu

.NET3.0 ile hazırlanmış olan uygulamalar .NET3.5 ile çalıştırılmak istendiğinde yeni sürüme güncelleme yapılarak sorunsuz bir biçimde çalıştırılması sağlanmıştır.

.NET3.5 sürümü ile geliştirilmiş uygulamalar .NET3.0 ile geliştirilmek istendiğinde XAML ’de yeni nesil XML kütüphanesi yok ise sorunsuz bir biçimde çalışmaktadır.Bu yeni nesil XML kütüphanesi: http://schemas.microsoft.com/netfx/2007/xaml/presentation dır. Bu kütüphaneyi .NET3.0 sürümü ile çalıştırmak istiyorsak 2006 sürümünü seçmemiz gerekmektedir. Bu sürümü nasıl seçeceğimizin ekran görüntüsüne alttaki resimden ulaşabilirsiniz.



.NET3.0 sürümünden .NET3.5 sürümüne geçişte bir güncellemenin olduğunu belirtmiştik. Bu geliştirme esnasında uygulanan mimariyi aşağıda bilgilendirme için vereceğiz. Vermiş olduğumuz bu mimari .NET1.1 sürümünden bu yana kullanıldığından ötürü bu sürümün mimarisini verirsek mantıken herhangi bir sorun ile karşılaşmayız.



Yukarıda görmüş olduğunuz mimari farklı .NET sürümlerinde geliştirilmiş olan uygulamalarda güncelleme sırasında uygulanan mantıktır.

Uygulamalar Açısından Yenilikler

Uygulama modellerinde geliştirilmiş olan özellikler:

• XBAP ile geliştirilmiş geniş çaplı uygulamalarda görüntüsel olmayan(dll) öğeler eklenmek istendiğinde uygulama hata verip Visual Studio kendisini kapatıyordu. Bu sorun çözülmüş. Bu arada XAML ile geliştirilmiş Browser uygulamalarına XBAP denilmektedir.

XBAP uygulamaları Firefox ile sorunsuz bir biçimde çalışabilecek düzeye getirilmiş. Fakat Opera ve Safari internet tarayıcılarında hala sorunlar ortaya çıkmaktadır.

• XBAP uygulamaları internet tarayıcısında çalışırken artık arka planda cookie ‘lerin oluşmasına olanak tanınıyor. Yani uygulama diğer web siteleri gibi dosyalarını tarayıcının yedeklemesine izin veriyor. Bu gelen yenilik uygulamaların tarayıcılarda ilk defa açılmasından sonraki açılmalarından açılma süresi olarak gözle görülür bir hızlanma olmasına sebep olacaktır.

• XAML de kullanılmakta olan IntelliSense çok daha iyileştirilmiş(Visual Studio 2005 ’te .NET3.0 SP1 gelene kadar maalesef çok kötü çalışıyordu).

• Localization özelliğinde kullanılmakta üzere ekstra dil aileleri eklenmiş.

Visual ve NonVisual Yapıların WPF ’e Eklenmesi

.NET3.0 sürümünde uygulamalara fonksiyonellik katabilecek eklentiler yapabilmemize olanak tanınıyordu. Amaçlanan fonksiyonelliği .NET Framework ’ün izin verdiği ölçüde sağlayabilmekteydik. Örneğin bu fonksiyonelliği dinamik link kütüphanesi(dll) ile sağlayabiliyorduk. Fakat eğlence ile ilgili bir eklenti eklemek istediğimizde yalnızca Microsoft tarafından geliştirilmiş olan eğlence dosyalarını uygulamamıza ekleyebiliyorduk.

Tabii bu tür yukarıda bahsettiğimiz eklentiler dışında eklentiler yapabilmemiz için 3. Parti yazılımları kullanmamız gerekmekteydi. .NET3.5 ile birlikte Office dosyalarından Visual Studio eklentilerine ve Windows Media Player ’ı hiçbir sorunsuz bir biçimde ekleyebilmekteyiz.

Yukarıda belirttiğimiz eklentiler dışında UIElement ve FrameworkElement ile geliştirilmiş uygulamaları da sorunsuz bir biçimde kullanabilmemiz mümkündür. Örnek senaryolar ile kullanılabilirliği açıklamaya çalışalım:

• Messenger stili uygulamalar geliştirilebilmesi mümkündür. Arka planda oluşturulmuş olan web servisleri ile kendimiz tarafından geliştirilmiş bir 3. Parti yazılımımız olabilir.

• Oyun uygulamaları geliştirerek belirli bir host ile kullanıma sunabiliriz.

• İçerik tarayıcı oluşturabilmemiz mümkündür. Kendime ait bir PDF Reader imiz olabilir.

• Mashup tarzı uygulamalar geliştirebilmemiz mümkündür. Örnek olarak Windows Sidebar ’ları

ve bu senaryoların dışında tarayıcılar üzerinde çalışabilecek sınırsız sayıda XBAP uygulamaları geliştirebilmemiz mümkündür.

WPF ’te Add-In ile ilgili daha ayrıntılı bir yazımız yakın zamanda sitemizde yer alacaktır.

Firefox ile XBAP

WPF 3.5 ’da Firefox 2.0 da XBAP uygulamalarının çalışmasına olanak sağlamıştı. Şimdi WPF 3.0 ile Firefox kullanıcılarının başına gelen ve çözülmüş olan birkaç sorundan bahsedelim:

Varsayılan tarayıcısı Firefox 2.0 olan geliştiricilerde XBAP uygulamalarını derlemek neredeyse bir kabul durumuna gelmişti. Çünkü bu uygulamalar çalıştırılmak istendiğinde tarayıcıya fazladan yüklenerek kilitlenmesine sebep olmaktaydı. Bu geliştiricinin sisteminde Internet Explorer ’da yüklü değilse geliştirmiş olduğu XBAP uygulamalarını test edememekteydi.

Karşılaşılan bir diğer sorun ise alternatif yollarla XBAP uygulamasını Firefox ’ta çalıştırma başarısını gösteren geliştiricilerde Internet Explorer ’da sağlanan güvenliklerin hiç biri sağlanmıyor olmasıdır. Bu durum uygulama internet üzerinde çalışırken kötü düşünceli bilgisayar korsanları tarafından sistemimize girilmesi olacaktır.

Cookie

Tarayıcılarda XBAP uygulamaları derlendiği zaman arka planda oluşturulan oturum dosyalarını otomatik olarak siliyordu. WPF3.5 ile bu oluşturulan cookieler biz istemediğimiz sürece silinmez suruma geldi. Bu sayede XBAP, tarayıcılar tarafından web servis ve HTML gibi algılanmaktadır.

Visual Studio IntelliSense

Visual Studio ‘nun XAML editörüne eklenen yeni elementleri artık IntelliSense ’te yardımı ile erişebiliyoruz.

Localization

WPF3.5 ‘in bünyesine eklenmiş olan yeni dil aileleri aşağıdakilerdir.

Bengali
Devanagari
Gujarati
Gurmukhi
Kannada
Malayalam
Oriya
Tamil
Telugu

Grafik

WPF ’in grafik objeleri sayısal veri olarak tuttuğunu ve bu yöntem sayesinde oldukça hızlı olduğundan defalarca bahsetmiştik. Bu sayısal yöntem dışında internet üzerinden ya da yerel bilgisayarımızdan resimleri alabilmemiz mümkündür. İşte grafiksel olarak eklenen öğeler için 4 adet daha Bitmap metodu oluşturulmuş. Bu metotlara ve aldıklara parametrelere bir göz atalım.

BitmapImage.UriCachePolicy

BitmapDecoder.Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy)

BitmapFrame.Create(Uri, RequestCachePolicy)

BitmapFrame.Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy)

Bu metotlar yardımı ile istediğimiz görüntüleri daha farklı özelliklerle uygulamamızda kullanma olanağımız oluşmuştur.

3-D Grafik

Yeni nesneler ve sınıflar geliştirilmiş ve WPF3.5 bünyesine eklenmiştir. En göze batan özellik ise enteraktif uygulamaların boyutsal dönüşümlerde kullanılacak olan yeni bir sınıf oluşturulmuş olmasıdır.

Enteraktif 2-D ve 3-D Uygulamaları

Viewport2DVisual3D isimli yeni bir oluşturulmuştur. Bu sınıf sayesinde enteraktif olarak alınmış 2D görüntülerin içeriği 3D ‘ye dönüştürülebilmektedir.

Data Binding

Bu özellik ilgili birkaç iyileştirme yapılmıştır. Bunlar:

Yeni bir debug mekanizması oluşturuldu. Bu sayede binding yaptığımız kodları da kolayca debug yapabileceğiz.

Business Layer ’da oluşabilecek hatalara karşı IDataErrorInfo metot iyileştirilmiştir. Bu model yardımı ile kullandığımız özelliklerde karşılaşabileceğimiz hatalardan haberdar olmamız sağlanmıştır.

Data Binding modeli Linq ve Dlinq ile ilişkilendirilebilir oldu.

Yeni Debug Mekanizması

Data Binding işlemlerinde debug işlemlerinin yapılmasının kolaylaştırıldığı bilgisini vermiştik. Bu işlemin gerçekleşmesini PresentationTraceSources.TraceLevel özelliğinin debug yapısına eklenmesi ile sağlanmıştır.

Bu son özelliğimizi incelememiz ile WPF ’e .NET Framework 3.5 ile eklenmiş olan yeni özellikleri bitirmiş oluyoruz. Genel olarak eksiklerin tamamlanması ve hazırlanmış olan sınıfların iyileştirilmesine ağırlık verildiğini gözlemlemiş oluyoruz.

Daha sonraki WPF ile ilgili yazılarımızda WPF bünyesinden yer alan sınıfları, metotları, veri yapılarını ve özelliklerini incelemeye devam edeceğiz.

Bir sonraki yazımızda görüşünceye dek esenlikle kalın.

İyi çalışmalar…

Turhal TEMİZER
turhal.temizer@csharpnedir.com
Makale:
WPF - .NET Framework 3.5 ile Gelen Yenilikler .NET 3.0 ve .NET 3.5 Özel Bölümü Turhal Temizer
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor