Silverlight 4 Beta ile Commanding Yapısı

Silverlight 4 Beta ile beraber gelen özelliklerden biri de Command yapıları. Command yapıları özellikle WPF developer'larının alışık oldukları yapılar arasında fakat maalesef Silverlight tarafında bugüne kadar herhangi bir runtime seviyesinde implementasyon yoktu. Özellikle geniş çaplı iş uygulamalarının da artması ile uygulama içi kod yazım yapılarında ve disiplinlerinde farklı arayışlar kendini gösterebiliyor. Bu arayışlar sonucudur ki WPF tarafında MVP, MVVM gibi kod yazım tasarımları ortaya çıkar.

Silverlight tarafında da aslında uzun bir süredir bu gibi konularda harici kütüphaneler bulunuyordu. Benim bugüne kadar bu konularda yazı yazmamamın nedeni ise daha herhangi bir standardın pek de oturumamış olmasıydı. Bu yazımızda çok hızlı bir şekilde MVVM'in ufak bir kısmından rüzgar gibi geçerek Silverlight 4'teki Command yapılarına göz atacağız. Olabildiğince örnek üzerinden giderek yaptıklarımızın amacını da anlatmaya çalışacağım.

Tüm yapacaklarımızın amacı nedir?

Aslında kod yazım şekilleri ile ilgili genel geçer bir bakış attığınızda göreceksiniz ki en önemli hedeflerden biri farklı amaçlara hizmet eden kodları olabildiğince birbirinden ayırmaktır. Bu süreç tabi ki ek bir emek gerektirir ve bazen gereklidir, bazen ise değildir. Özünde bir projeye başlarken sorulması gereken soru bu farklı amaçlara hizmet eden kodları birbirinden ayırmanın söz konusu projede getireceği bir kazancın olup olmadığının yanı sıra kazancın bu ek süreç için harcanacak emeğe kıyasla toplamda hala bir kazanç olarak durup durmadığıdır. Tüm bu soruları sormadan herhangi bir projede kod yazım şekli ile ilgili genel geçer bir doğru kesinlikle bulunamaz.

Sadede gelirsek, bu makale boyunca anlatacaklarım sizin belki de bugüne kadar yazdığınız Silverlight projelerinde uyguladığınız stilin çok dışında olacaktır. Bu makalede anlatacağım uygulama geliştirme tarzı kesinlikle genel geçer bir doğru değildir ve her projede "profesyonel olalım" endişesi ile uygulanması gereken bir "guru tarzı" vs değildir :) Birer yazılımcı olarak göreviniz uygun şartlarda uygun araçlarla uygun çözümleri en düşük maliyet ve en yüksek verimlilik ile üretmek olduğunu unutmamanızda fayda var.

Uyarı bölümünü geçtiğimize göre gelelim konumuza. Bahsettiğim gibi genelde amacımız farklı amaçlara hizmet eden kodları birbirinden ayırmak. Buna bir örnek olarak XAML ile VB/CS kodlarının ayrı dosyalarda tutulmasını da verebiliriz. Oysa aynı dosyada da tutma şansımız var fakat yapmıyoruz. Neden? Çünkü XAML ile VB/CS'in amacı farklı ve ayrı yerlerde durmaları bize projelerimizin kod yazım süreçlerini yönetmemizde büyük katkı sağlıyor. İşte bu endişenin devamında UI (Kullanıcı arayüzü) ile ilgili kodların da veri katmanı ile salt görsel katman (XAML) arasında kaldığını düşünürsek tam da o noktada bir karışıklık kendini gösterebiliyor. İşte bu karışıklığı toparlayabilmek ve bilyonlarca event-handler vs ile uğraşmamak adına Commanding yapısını kullanabiliriz. Aman dikkat Commanding'in tek faydası tabi ki bu değil, kodun test edilebilmesi, görsel ekranlar ile görsel ekranlara veri bağlantısının yapıldığı kodun birbirinden tamamen ayrıştırılabilmesi, DataBinding mekanizmasını kolaylaştırması gibi birçok yan etkisi de var.

Devamı...
Blog Sayaç
Tag Cloud
Visual Basic Refactoring Visual Basic Vb.Net Veritabanı Türleri Sql Diziler Visual Basic Diziler Dizileri Yeniden Boyutlandırma Kod Yazmadan Programlama Dreamweaver PHP İlişkisel Veritabanı Tasarımı Veritabanı Mysql Oracle Mssql Dizi Değişkenlerinde Kullanılan Methodlar SQL (Structured Query Language) Sql dili sql nedir Visual Basic 9.0 (2008) Extension Methods Visual Basic 9 Visual Basic 10 Index (Dizin) Kavramı Primary Key (Birincil Anahtar) Foreign Key (Yabancı Anahtar) Visual Basic de IIF ile Yeni IF arasındaki "I" farkı hakkında IF ve IIF Microsoft Microsoft Silverlight Silverlight Nedir Silverlight 4 Silverlight 3 Internet Explorer 8 Windows IE 8 IE 8 ASP.NET MVC Framework’e Genel Bakış Asp.Net Mvc Asp.Net Mvc Asp.Net 4.0 ClientIDMode HTML ID Framework 4.0 Sql Delete komutu Sql insert komutu sql update komutu sql select komutu Sayfa Genelinde Etkilenmeyen DIV Katmanı Div Css favicon Favicon yapımı Silverlight İle Streaming Servisleri Streaming Silverlight Silverlight Uygulamalarında Performans Silverlight Performans Final haftası gop universitesi kmyo koyulhisar koyulhisar myo ümit polat Vitabanı Yönetim Sistemleri Veritabanı Final Soruları gop gop koyulhisar myo Veritabanı Yönetim Sistemleri Final Sorularının Cevapları şiir hayat hayat felsefesi ölüm internet internet programcılığı php resim yükleme php resim upload blue-ray pioneer blue-ray disk windows 7 windows 7 tanrı modu GodMode Windows 7 GodMode 7 GodMode inegöl karlı hava eskişehir mehmet özdemir daron yöndem internetten para kazanmak cpc ppc adsense adtech adhood Google oop Sınıf e nesne kavramı Class kavramı Object Oriented Programming Overloading Kavramı Visual Basic.Net Silverlight ContextMenü ContextMenü Silverlight Sağ Tuş Desteği Silverlight 4 Commanding Commanding vs 10 Vb 10 Visual Studio 10 ad3m ByGOGO Ümit chosen 90 lı yıllar maç gaziosmanpaşa üniversitesi yazılım kulübü


Blogsa 1.0 ile olusturulmustur.