Silverlight tasarım tarafı-XAML
ÖNCELİKLİ OLARAK XAML YAPISI İYİCE OTURMALI Kİ DAHA SONRA KOD YAPISINA GEÇELİM, BU YÜZDEN FARKLI KAYNAKLARDAN TOPLADIĞIM VE EN BEĞENDİĞİM YAZILARI YAYINLIYORUM
“eXtensible Application Markup Language ifadelerinin büyük harflerinden oluşmaktadır (ak)”. Türkçe’ye Genişletilebilir Uygulama İşaretleme Dili olarak çevirebiliriz. Benim için çok önemli olan bir detay daha ise XAML ‘zamıl’ şeklinde okunmaktadır. Lütfen! 🙂
resim : http://www.klavyu.com/wp-content/uploads/2011/02/1.jpg
Bir silverlight sayfası, <UserControl> imleri arasında ifade edilir. Ve aslında sayfanın görsel yüzünün XML biçiminde kodlanmış hali gibi de düşünülebilir. XAML bir programlama ya da script değildir arkadaşlar. Görevi sadece sayfa yerleşimini yönetmektir. Ayrıca XAML yapısı silverlight haricinde WPF(Windows Presantation Foundation) uygulamalarında da kullanılan bir yapıdır. XML tarzında saklanması, taşınması ve yönetilmesini daha da kolaylaştırır. Kodlar XAML’a bağlı cs ya da vb dosyası içine yazılırlar. Sonuç olarak XAML yine XML yapısını koruyacaktır.
sınıfını ifade etmiş olursunuz. <UserControl> ifadesinin başında kullanılan x:Class ifadesi proje içindeki sınıfları XAML ile ilişkilendirmek için kullanılır. Bunların dışarısında yukarıda ki kodumuzu incelersek varsayılan olarak dört tane isim alanı, xmlns(XML Name Space) alanı <UserControl> düğümü içerisine ilave edilmiştir. Burada ki xmlns’ler XAML’in kullandığı referansları ifade eder. Öyle ki, XAML içinde yerleştirdiğimiz bir buton yada datagridin kullandığı isim alanı burada belirtilmelidir. Örneğin yukarıdaki kodumuzda Buton,TextBox ve Canvas gibi nesneler:
XAML Kod Yapısı ile ilgili konuşacak olursak; XAML’de arkadaşlarım XML’deki gibi Ağaç Yapısı vardır. Ne demektir bu? Yani şöyle, bir çok element iç-içe yerleştirilip kullanılabilir. Örnek olarak Grid nesnesi içerisine bir buton onun da içerisine TextBox elementi ekleyebilirsiniz. Deneyecek olursak;
<TextBox Text=”Ben o button olacak nesnenin üzerindeki metin kutusuyum”></TextBox>
bir diğer kaynaktan: http://www.klavyu.com/2011/02/silverlight-ve-yapisi/
XAML(Extensible Application Markup Language) Yapısı
Silverlight ile uygulama geliştirirken C# veya Visual Basic dillerini bilebilirsiniz ama bu dillerden ziyade XAML yapısını çok iyi kavramak gerekir. Çünkü çoğu zaman C# veya VB ile tasarım ve animasyon tarafında controllere, object’lere ulaşırken hep XAML teknolojisinin nimetlerinden faydalanacağız.
Peki, nedir bu XAML?
Silverlight ve WPF platformlarında kullanıcı arayüzleri oluşturmak için Microsoft’un geliştirmiş olduğu yeni bir işaretleme dilidir. Klasik XML tabanlıdır ve içinde taglar, attribute’ler bulunduran bir yapıdır. Şimdi Blend ile hazırlanmış olan bir buton ve textbox’tan oluşan resmi inceleyelim.
Buradaki XAML kodunu inceleyecek olursak en dışta bir UserControl var hemen onun içinde Grid ve Grid içinde de Button ve TextBox objectlerinden oluşan hiyerarşik bir yapı var.
Burada Grid objectini inceleyecek olursak Name ve Background propertyleri var. Bunlara da gördüğünüz gibi kendince değerler(LayoutRoot, White) atanmış. Nitekim Button ve TextBox object’lerindeki propertyler’in de siz ne olduğunu ne işe yaradığını az çok kestireceksinizdir. Bu kodlar isterseniz elle oluşturabilir veyahut Blend ile tasarım yaptığınızda otomatik olarak gelecektir. Şunu iyi bilmek gerekir ki; XAML üzerinde oluşturulan her tag birer .Net nesnesi olarak yorumlanır ve XAML’daki her nesneye C# veya VB tarafında ulaşılabilir. Yukarıdaki resimdeki tasarımın aynısını C# ile runtime’da bir Button ve bir TextBox kontrolü oluşturarak ve property’ler atayaraktan yazabilirsiniz.
Size XAML konusunda tavsiyem makalenin de sonunda bana da çok yardımcı olan çeşitli site, forumlardan bu işi daha iyi bir şekilde araştırmanızdır.
Özünde XAP dosyası bir Silverlight projesinde yapılan tüm işlemlerin kaydedildiği yerdir. Projeyi derlediğimizde sunucu tarafında ClientBin klasörü altında proje ismiyle bağlantılı bir XAP dosyası oluşacaktır.
XAP dosyasını .zip uzantılı bir dosya gibi düşünebilirsiniz ve içeriğini görüntülediğinizde çeşitli dll dosyalarının bulunduğunu göreceksiniz.
Silverlight konusunda yardımcı bağlantılar: