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ı...

Silverlight 4 Beta'da sağ tuş desteği ve bir ContextMenü kontrolü

Silverlight 3 zamanlarında gelen en önemli isteklerden biri farenin sağ tuşu ile ilgili eventları yakalayabilmekti. Biliyorsunuz normal şartlarda herhangi bir Silverlight uygulamasına sağ tuş ile tıklarsanız karşınıza "Silverlight" diye bir menü seçeneği geliyor ve burada da Silverlight Runtime ile ilgili ayarlara ulaşılabiliyor. Uzun bir süre sağ tuş implementasyonunun pek de mümkün olmadığı ve güvenlik nedeni ile Microsoft'un bu gibi bir şeye izin vermeyeceği konusunda yorumlar internette gezindi. İtiraf etmek gerekirse ben de konsept olarak pek olası bir çözüm öngöremiyordum.

Silverlight 4'te fareye sağ tuş desteği!

Oysa bir de baktık ki Silverlight 4 ile (Beta) farenin sağ tuşuna dair eventleri de ayrıca yakalayabiliyoruz. Bu destek özellikle iş uygulamalarında çok anlamlı bir boşluğu dolduruyor. Kullanıcılara hali hazırda web ortamında bir "thinclient" deneyimi sunan ve sanki windows ortamındaki programları kullanıyormuşcasına zengin deneyimler sağlayabilen Silverlight'ın aynı hissiyatı devam ettirebilmesi adına farenin sağ tıklamalarına da uygun tepkileri verebilmesi çok önemliydi. Bu açığın kapatılıyor olduğunu görmek çok sevindirici.

Devamı...

Silverlight Uygulamalarında Performans

"Ne zaman Silverlight uygulamaları hazırlamaya başladık da sıra performansa geldi?" diyenleriniz olabilir :) Haklısınız, umarım yakında giriş seviyesi Silverlight yazıları da yazabilirim. Aslında bu tür yazılar yazıyorum ama maalesef şimdilik her ay yayınlanmak üzere PC.NET'e gidiyor yazılar. (Reklam yaptığımın farkındayım:)) Gelin şimdi konuya dönelim ve Silverlight uygulamaları hazırlarken performans konusunda yapabileceklerimizi inceleyelim.

Şeffaf Fon Uygulamaları

Silverlight animasyonunuza şeffaf bir fon vermek çoğu zaman güzel görüntüler alabilmek için uygun bir çözüm olacaktır. Böylece web sayfasının fonunun üzerine oturtulmuş bir animasyon sayfadaki diğer nesnelerin üstünde olsa da aradaki fark ziyaretçi tarafından algılanmaz. Tüm bunlara karşın gerekmeyen durumlarda sürekli şeffaf fon kullanmak da ciddi performans kaybına neden olacaktır. O nedenle herhangi bir Silverlight animasyonunuzun fonunu şeffafa değiştirirken tekrar düşünmekte fayda var.

Devamı...

Silverlight İle Streaming Servisleri

Daha önceki yazılarımda Silverlight Streaming Servisleri'nden bahsetmiştim. http://silverlight.live.com/ adresinden ulaşabileceğimiz bu ücretsiz servis ile 4GB'lık bir web alanında Silverlight uygulamalarımızı dünyaya açabiliyoruz. Peki nasıl yapacağız bu işi? İlk olarak http://silverlight.live.com sitesini ziyaret ederek Live ID'miz ile kayıt olmamız gerekiyor. Kayıt işlemini tamamladıktan sonra karşımıza gelen ekranda "Manage Applications" seçeneğini seçerek Silverlight uygulamamızı bir ZIP dosyası olarak yükleyebiliyoruz.

Silverlight Streaming Services
Silverlight Streaming Services sitesine giriş yaptığımıza karşımıza çıkan ekran.

Devamı...

Microsoft Silverlight Nedir?

Microsoft SilverlightSilverlight, Microsoft'un yeni teknolojisi olan Windows Presentation Foundation (WPF) 'nin Everywhere yani Heryerde ayağı.

Kısaca WPF 'ye değinmek gerekirse, WPF programcılığa ve program arayüzlerine tamamen farklı bir bakış açısı getiriyor. Şöyle ki, artık programlarınızı yazarken tamamen vektörel arayüzler kullanabiliyor, Windows Vista görünümünde uygulamalar geliştirebiliyorsunuz. Örnek WPF uygulamalarından bazıları da Microsoft Expression programları.

Silverlight 'a geri dönersek, dediğim gibi Silverlight WPF 'nin web kolu ve tamamen açık kaynak. WPF çalışmak için bir Windows işletim sistemi ve .net Framework isterken, Silverlight bir browser plug-in 'i sayesinde Windows, Linux ve hatta MacOs ayırt etmeden heryerde aynı şekilde çalışabilecek. Bu klasik Microsoft anlayışı diyebiliriz, varolan standartlara ayak uydurmaktansa, kendi standartını getirmeyi istemek.

Silverlight üzerinde uygulama geliştirmek için JavaScript (JS) bilmek yeterli. Evet, sadece bu kadar. Yani her JS bilen kişi artık bir Silverlight uzmanı olabilir. Silverlight 'ın gelecek sürümüyle .net yazılımcıları da birer Silverlight uzmanı olacak. Her ne kadar kıskanarak söylesem de, .net yazılımcıları Silverlight ile uygulama geliştirmek için JS 'cilere nazaran daha az vakit harcayacaklar.

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.