Bu makalemizde, Visual Studio kullanarak ilk Silverlight projemizi oluşturacağız. Silverlight ile yeni tanışanlar için faydalı olacağını umuyorum. İsterseniz Expression Blend kullanarak da Silverlight projesi oluşturabilirsiniz tabii, tercih size kalmış. Fakat hangi editörü kullanırsanız kullanın, kullanacağınız kodlar aynıdır. Eğer ki tasarımcı iseniz Expression Blend kullanmanızı tavsiye ederim çünkü birçok özelliği pratik olarak kullanabiliyorsunuz. Yok, eğer “Beni işin kod kısmı ilgilendirir” diyorsanız elbette ki, Visual Studio 2010, bu iş için biçilmiş kaftan.
Uygulamaya geçmeden önce, izin verin, Silverlight hakkında kısaca bilgi vereyim.
Silverlight nedir, ne değildir?

Öncelikle şunu aklınızdan çıkarmayın: Silverlight herhangi bir teknolojiye rakip olsun diye çıkmamıştır. Bazılarının söylediği gibi “Flash’a rakip olsun diye” çıkarılmadı bu ceylan avcısı. Saatte 120 km hız yapan bir çitanın, sırtlanlarla işi olur mu? Koskoca  .Net Framework altyapısının neredeyse tamamını, kusursuz bir biçimde entegre kullanabilen bir teknolojiden bahsediyoruz. Bu teknoloji, geleceğin kod standartlarını Web ortamına aktarmayı planlayıp bu uğurda tonlarca sermaye harcanan bir Microsoft harikasıdır. Bu şekilde tanımlamak yanlış olmaz.
Silverlight’ı Flash’tan ayıran en temel özellik “kodlama”da ortaya çıkmaktadır. Bir .Net programcısı, Windows forms uygulaması geliştirirken kullandığı C# veya VB kodlarıyla aynı şekilde Silverlight uygulaması geliştirebilmektedir. Yani Flash’ta olduğu gibi ayrıca bir “ActionScript” dili öğrenmenize gerek yok. Bu da size inanılmaz bir esneklik sağlıyor.

Silverlight’ın gücü burda ortaya çıkıyor işte. Yani .Net kütüphanelerinin gücünü aynen kullanabiliyorsunuz. Eğer ki, C# ve Actionscript’i kıyaslama cesaretiniz varsa, hadi buyurun; Silverlight ile Flash’ı kıyaslayın!

Yanlış anlaşılmasın; Silverlight’ı methetmek değildir amacım. Bu açıklamayı yapma gereği hissettim çünkü işin özünü bilmeyen arkadaşlar “neyi, ne amaçla” kullandığından habersiz olacaktır. Yani gafil avlanacaklardır. Bunu söylememin sebebi ise geçenlerde bir arkadaşın “Ben Flash biliyorum, Silverlight kullanmaya ne gerek var?” demesiydi. Belli ki, bu arkadaş henüz Redmond’da neler döndüğünü bilmiyor!

Kısacası şunu demeye çalışıyorum: Eğer ki, Microsoft bir teknolojiyi üstüne basa basa, seminerlerde bağıra bağıra bize aktarmaya çalışıyorsa bilin ki; bu sıradan bir teknoloji değildir ve basit bir kıyaslamaya tabi tutmak saçmalık olur.

Bu kadar açıklama yapmak yeterli sanırım. Şimdi biraz gaza basalım ve pratik olarak bir Silverlight uygulaması geliştirmenin ne kadar kolay olduğunu görelim.

Öncelikle Visual Studio 2010’u açıyoruz. (Siz Professional veya Ultimate kullanıyor olabilirsiniz, fark etmez; ben bu makaleyi yazarken Visual Web Developer 2010 Express Edition kullandım.)

Ve karşımıza Start Page başlangıç ekranı gelir.


Resimde gördüğünüz gibi Start Page 3 kısımdan oluşur.

1. bölümde yeni proje oluşturabilir veya var olan bir projeyi açabiliriz.

2. bölümde en son açılan projelerin bir listesi görünür. Böylece en son işlem yaptığınız projeye hızlı bir şekilde ulaşabilirsiniz.

3. bölümde ise RSS kayıtları gelir ekrana. Burada isterseniz RSS’yi iptal edebilirsiniz. Bunu yaptığınızda bu bölüme “Enable RSS Feed” isimli bir buton gelir. Bu buton ile tekrar aktif hale getirebilirsiniz.

Şimdi New Project bağlantısına tıklıyoruz ya da menülerden File > New > Project‘i seçiyoruz. Karşımıza yeni proje oluşturma penceresi gelir.



Sol taraftaki Installed Templates  kısmından Silverlight’ı seçiyoruz. Sağ tarafta oluşturulabilecek Silverlight uygulama tipleri ekrana gelir. BizSilverlight Application seçiyoruz. Alt tarafta Name ve Location kısımlarında uygulamamızın ismini ve kaydedileceği yeri belirttikten sonra OKbutonuna tıklıyoruz.


Karşımıza gelen ekranda “Host the Silverlight Application in a new Web site” seçeneğinin seçili olmasına dikkat edin. Eğer bu seçenek seçili ise projenize, Silverlight objesinin çalıştırılabileceği bir test Web sitesi eklenir. Böylece Silverlight çalıştırabilmek için gerekli ayarlamaları Visual Studio, sizin yerinize otomatik olarak yapacaktır.

New Web Project name kısmında, oluşturulacak olan Web projesinin ismi yazılır. Hemen altında ise New Web project type kısmı bulunmaktadır. Bu kısımda ise çeşitli ASP.NET proje tipleri bulunur. Aşağıda gördüğünüz gibi biz ASP.NET Web Application Project’i seçiyoruz.


En altta bulunan Silverlight Version kısmında ise bilgisayarımızda kurulu olan Silverlight sürümleri listelenir. Biz, şu anda Silverlight 4 ile çalışıyoruz ama isterseniz önceki sürüm olan 3.0 ile de çalışabilirsiniz.


Enable .NET RIA Services seçeneğini seçerek RIA hizmetlerini aktif hale getirebilirsiniz. Biz, şimdilik RIA servislerini kullanmadığımız için burayı işaretlemiyoruz. OK diyoruz. İlk Silverlight projemiz ekrana gelecektir.



Alışık olduğumuz klasik Visual Studio tasarım ekranı ile karşı karşıyayız. Visual Studio 2010 ile birtakım değişiklikler olsa da çekirdek yapısı aynıdır. Öncelikle göze ilk çarpan değişiklik XAML penceresi.

Kısaca değinecek olursam XAML, oluşturduğumuz projeye ait (Windows forms, WPF veya Silverlight projesi olabilir) tasarımın markup dilidir. Yani artık HTML mantığında olduğu gibi görsel tasarımı işaretçi dili ile kodlayabiliyoruz. XAML, ilk başta size biraz gereksiz ve zor gelebilir ama eminim ki XAML’i öğrendikçe daha çok sevecek ve ne kadar faydalı olduğunu daha iyi anlayacaksınız.

XAML hakkında detaylı bilgi vermeyeceğim ama kodlama mantığına kısaca değinmek istiyorum.


XAML yapısına baktığımızda söz dizimi açısından XML yapısı gibi olduğunu görürüz. XML yapısını bilenler XAML öğrenmekte zorlanmayacaklardır. Kodlarımıza baktığımızda ile başladığını görürüz. Silverlight uygulamalarının kök elementi UserControl olarak adlandırılır. Eğer bir WPF uygulaması oluşturursanız bu Windows tarafında , Web tarafında ise kök elementi ile başlayacaktır. Kodlarımızda bir takım tanımlamalar mevcut. Bnular, XAML söz dizimi yapısı için gerekli tanımlamalar. Bir de elementi görüyorsunuz. Bu bir layout kontrolüdür. Bu kontrole ait özellikleri daha sonraki makalelerimizde inceleyeceğiz. Uygulamaya eklediğiniz her kontrol, siz değiştirmediğiniz sürece Grid içierisinde yer alacaktır.

Hemen sol tarafta, Toolboxk, alışık olduğumuz yerinde bizi beklemektedir. Burada Silverlight projesinde kullanabileceğimiz kontroller mevcut.  Sağ tarafta ise Properties penceresi bulunur. Bu pencerede, kontrollere ait özellikleri görsel olarak değiştirebilirsiniz. Önceki sürümlerden farklı olarak, properties penceresi biraz daha görsel özelliklere sahip olarak karşımıza gelmektedir.


Sağ tarafta projemize ait dosyaların bulunduğu Solution Explorer penceresini görebilirsiniz.


Silverlight ile yeni tanışanların ne düşündüğünü tahmin edebiliyorum. (: Çünkü farklı bir yapı ile karşı karşıyasınız. Öncelikle, alışık olduğumuzun aksine 2 proje tipi var karşımızda:

1.SilverlightApplication

2.SilverlightApplication.Web

Daha önce Flash veya Java Aplet kullananlar bu yapıya yabancı değiller. Elimizde bir object nesnesi bulunur ve bu object’in gömülü olduğu bir Web projesi bulunur. İşte, Silverlight da aynı mantıkla çalışmaktadır. Uygulamamız ayrı bir object olarak ele alınır ve uygulamamızın gömülü olduğu Web projesi ayrı ele alınır. Visual Studio ile yeni proje oluştururken hatırlarsanız, aşağıdaki ekranda görülen seçeneği seçmiştik. Bu sayede, Visual Studio bize Silverlight objemizin gömüleceği bir Web projesini de otomatik oluşturmuştu.


Eğer yukardaki başlangıç penceresinde “Host the Silverlight Application in a new Web site” seçeneğini seçmeseydik, aşağıdaki gibi bir solution explorer penceresi gelecekti ekrana. Bu pencerede sadece Silverlight uygulamamıza ait dosyalar görünecekti. Herhangi bir Web sayfası oluşturulmayacaktı.


Şimdi, sanırım aradaki farkı daha iyi anladınız.

Silverlight Projemize Ait Dosyalar

Az önce de bahsettiğimiz gibi, Silverlight uygulamamıza ait dosyalar ve Web sayfasına ait dosyalar aynı pencerede gelmişti.


  • App.xaml: Bu dosya, Silverlight uygulamamıza ait birtakım global özelliklerin tutulduğu dosya olacaktır. Tasarım görüntüsü yoktur.
  • App.xaml.cs: Bu dosya, App.xaml dosyasına ait C# kodlarının tutulduğu dosyadır. Dosyaya baktığınızda kendi içindeApplication_Startup() ve Application_Exit() metotlarına sahip olduğunu görürsünüz. Bu metotlar ile uygulama başladığında ve kapatıldığında birtakım işlemler yapabilirsiniz. Örneğin; uygulama başladığında “Merhaba” uygulama kapatıldığında “Hoşçakalın” mesajları vermek istiyorsanız bu metotlara kod yazmanız yeterli olacaktır.
  • MainPage.xaml: Bizim asıl Silverlight sayfamız. Tasarımı bu sayfa üzerinde yapacağız.
  • MainPage.xaml.cs: Sayfamıza ait kodların bulunduğu C# dosyası.

Not: Eğer projedeki herhangi bir pencereyi göremiyorsanız View menüsünden Other Windows alt menüsüyle erişebilirsiniz.


Merhaba Silverlight Uygulaması

Pencereler hakkında şimdilik bu kadar bilgi sizin için yeterli olacaktır. İlerde yeri geldiğince Visual Studio tasarım araçları ile ilgili ipuçları vereceğim.

Şimdi ilk uygulamamızı gerçekleştirelim.

Öncelikle, Grid üzerine bir buton kontrolü ekleyelim ve Properties penceresinde, General tabı altında, Content özelliğini TIKLA olarak değiştirelim.

Not: Yeni versiyonda artık kontrollerin Text özellikleri Content olarak değiştirildi. Yalnız gibi metin tabanlı kontroller yine Text özelliği kullanmaktadır.


DİKKAT! : Burada dikkat etmeniz gereken bir nokta: XAML kısmında Name özelliği belirtilmezse kod yazarken editör bu nesneyi göremez. Bu yüzden name özelliği mutlaka belirtilmeli.

Şimdi butonumuza ait Click olayını tetiklemek için, butonu çift tıklayın ya da Events sekmesinde Click olayını seçin.


Karşımıza MainPage.xaml.cs dosyası gelecektir. Button_click() eventi içine aşağıdaki kodu yazalım.


Uygulamamızı çalıştıralım. Bunun için farklı yollar mevcut


Uygulamayı çalıştırıp butona bastığımızda, ekrana “Merhaba Silverlight” mesajı gelecektir.


Şimdi, uygulamamızı biraz daha geliştirelim. Sayfamıza bir adet TextBox bir adet ListBox ekleyin.

Amacımız; Textbox içindeki veriyi kontrol edip eğer boş değilse ListBox’a eklemek.

Aşağıdaki formu tasarlayın ve butonumuzun Click olayını aşağıdaki gibi düzenleyin.


Projemizi çalıştıralım ve TextBox’a bazı değerler girip ListBox’a ekleyelim


Evet, kodumuz güzel bir şekilde çalışıyor. (:

Şimdilik bu kadar. Umarım yeni başlayanlar için faydalı olmuştur.

Bir sonraki makalede görüşmek dileğiyle.

Silverlight ile kalın.

      Musa ÇİÇEK
Ege Üniversitesi Bilgisayar Mühendisliği 4. Sınıf

Reklamlar