Silverlight 5 Beta ile XAML / Databinding Debugging

0 dakikada yazıldı

7658 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
PointXAML'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...