Silverlight 5 Beta ile XAML / Databinding Debugging

0 dakikada yazıldı

7674 defa okundu

Düzenle

Silverlight 5 Beta'nın
duyurulması ile beraber birçok yeni
özellik

hem Runtime hem de Visual Studio tarafına kendini gösterdi. Bunların
arasında benim favorim Visual Studio tarafına gelen XAML Debugging veya
daha doğru bir isimlendirme ile "DataBinding Debugging". Neden mi?
Çünkü en sık kullanacağımız özelliğin bu olduğunu düşünüyorum :) Diğer
tüm özellikler farklı projelerde kullanabileceğimiz güzellikler olarak
kenarda dururken "databinding debuging" eminim ki her projenin
development sürecinde işinize yarayacaktır. O nedenle ben de
MIX
ile beraber gelen yeniliklere beraber göz atmaya başlarken databinding
debuggingden başlayamayı uygun gördüm.

XAML Debugging de ne ola ki?

Aslında öyle birşey yok! :) (Makale burada bitermiş? :P) Şaka bir yana
internette araştırırsanız XAML Debugging diye bir sürü kaynak
bulabilirsiniz son iki günde fışkırtılan :) fakat aslında XAML debugging
diye birşey yok. Yani XAML'da bir nesneye debug point koyiyim o
yaratılırken haberdar olurum veya işte bir XML Attribute'e debug point
koyiyim de set edilirken araya giriyim... Yok, olmaz...

XAML tarafında Debug point koyabileceğimiz doğru ama sadece
databindingler için geçerli bu durum. Normal code behind'da debug point
koyarmış gibi XAML tarafında da herhangi bir satıra sol taraftan debug
point ekleyebilirsiniz.

XAML'da DataBinding'de Debug Point
XAML'da DataBinding'de Debug Point

Ekran görüntüsünde de görebileceğiniz üzere Debug Point koyduktan sonra
projeyi çalıştırdığımızda binding set edildiği anda Visual Studio debug
mode'a geçerek bize giden gelenleri inceleme şansı veriyor. Debug
menüsünden Locals panelini açarsanız burada FinalSource altında
gelen veriyi ve nereden geldiğini görebilirsiniz. Ayrıca tavsiyem Locals
panelinde bir de Binding özelliğini incelemeniz. Binding esnasından
kullanılan binding çeşidinden tutun arada eğer varsa Converter'a kadar
herşeyi detaylı olarak incelemeniz olanak tanıyacaktır.

Ya TwoWay Databinding?

TwoWay databinding'den bekleyeceğiniz üzere Visual Studio sadece binding
set edilirken değil, kullanıcı tarafından tetiklenen ve verinin
bindingde diğer yöne gitmesini sağlayan senaryoda da debug pointe
düşebiliyor.

TwoWay bindingde debug point.
TwoWay bindingde debug point.

TwoWay bindingi test edebilmek adına elimizdeki TextBlock'u bir
TextBox'a çeviriyoruz. Projeyi ilk çalıştırdığımızda debug point'e
düşüyor çünkü ilk olarak TextBox'ın içeriği set ediliyordu. Sonra F5'e
basarak devam ediyoruz ve Silverlight projemiz ekrana geliyor. TextBox
içerisine girip bir değişiklik yaptığımızda TwoWay binding nedeniyle söz
konusu binding'e ait debug pointi tekrar yakalayabiliyoruz. Yukarıdaki
ekran görüntüsünde tam da o anı görebilirsiniz. Önemli noktalardan biri
BindingState'in Action özelliğinin UpdatingTarget yerine
UpdatingSource olması. Böylece işlemin hangi yönde gerçekleştiğini
anlayabiliyoruz. İkincisi ise yine FinalSource altında giden
verimizi görebiliyoruz.

Son olarak, debug pointlerle ilgili Visual Studio içerisinde
yapabildiğiniz herşeyi XAML içerisindeki debug pointlerde de
yapabileceğinizi unutmayın ;)

Herşey mümkün....
Herşey mümkün....

Görüşmek üzere...