<<<<<4 yıl önce yazılmış ancak harika bir anlatım>>>>>

Birçoğumuz kenarından köşesinden duyduk veya henüz haberdar bile değiliz Microsoft’un bu yeni oyuncağından: Microsoft Silverlight!

Açıkçası webde adı geçmeye başladığı günden beri pek bir merakla takip etmekteydim bu yeni teknoloji ürününü. Tabiki de vaktimin ufacık bir kısmını ayırabildiğim için çok da doğru bilgilerle dolu olmadığımı gördüm, geçen hafta katılma şansını yakaladığım Microsoft Silverlight ve Expression Studio Eğitimi sayesinde.

Haftanın 3 gününü kaplayan bu eğitimden geriye kalanları sizlerle paylaşmaya ve Microsoft Silverlight’ı anlatmaya çalışacağım. Tabiki bu eğitimin mimarı sevgili Daron Yöndem kadar olmayacaktır.

Microsoft Silverlight Nedir?

Silverlight, 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 ara yü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 her yerde aynı şekilde çalışabilecek. Bu klasik Microsoft anlayışı diyebiliriz, var olan standartlara ayak uydurmaktansa, kendi standardı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.

Silverlight: Biraz Daha Teknik

Olaylara biraz daha teknik bakmak gerekirse, iyi bir Silverlight uygulaması geliştirmek için temelde 2 kişiye ihtiyacınız var: Bir tasarımcı/animasyoncu ve bir yazılımcı (js/.net). Tasarımcı, Microsoft Expression Blend ile uygulamanın ara yüzünü ve animasyonlarını yaratıp XAML (Extensible Application Markup Language) formatında yazılımcıyla paylaşacaktır. Yazılımcı ise uygulamanın arka tarafını tasarlayıp uygulamaya geçecektir.

Her şey oldukça basit görünüyor değil mi? Bunun arkasında yatan mimari aslında XAML. XAML nedir sorusuna cevap vermek gerekirse, Microsoft Silverlight ve Microsoft WPF ‘nin temelinde yatan öğe diyebiliriz. Zira yaptığımız her tasarım objesi, her buton, her animasyon, her yazı bir XAML öğesi. XML yapısında olan bu XAML sayfaları, her şeyin vektörel olarak tutulmasını ve dışarıdan erişilebilmesini sağlıyor. Yani tasarımcımız aslında elle veya program yardımıyla bu XAML dosyasını, yazılımcıyla paylaşıyor ve yazılımcı da hiç bir tasarım işine elini bulaştırmadan yapması gerekenleri uygulamaya dökebiliyor.

Silverlight Nerelerde Kullanılabilir?

Kabul etmek gerekir ki, Silverlight şuanda bir bebek. Halen kat etmesi gereken uzunca bir yol var. Ancak şimdiden söyleyebilirim ki Silverlight ile web üzerinde neredeyse her şeyi yapmak mümkün olacak.

Örnek vermek gerekirse, Silverlight ile çok etkileyici video destekli uygulamalar geliştirebileceğiz, yarattığımız animasyonlar ve interaktif bannerlar her platformda ve bilgisayarda aynı sürede başlayıp aynı sürede bitebilecek (takılsa bile), -belki- sunucudaki masaüstü uygulamalarıyla iletişim haline girerek birçok zorlu işlemi çok daha kolay yoldan halledebileceğiz ve en önemlisi artık bunları yapmak için yeni bir dil öğrenmek zorunda kalmayacağız. Javascript veya .net biliyorsanız siz de hemen bugün bir şeyler yapmaya başlayabilirsiniz.

Aslında herkesin merak ettiği ve tartıştığı nokta burası: Microsoft Silverlight ne kadar Adobe Flash? Microsoft ‘un Silverlight ‘ı Adobe Flash ‘ın tekelini ortadan kaldırmak için çıkardığı bir gerçek. Her ne kadar resmi bir şeyler duyamasak da bu konuda Microsoft bu pazardan payını almak istiyor.

Yukarıdaki yazdıklarımı bu bölüme örnek olarak görebilirsiniz. Silverlight henüz bir bebek olsa da, Flash da ne kadar bir yetişkin olsa da aralarındaki fark aslında yok denebilecek kadar az. Çünkü Microsoft bu sefer akıllılık edip, eksiklerini ve olması gerekenleri iyi görmüş ve ona göre davranmış. Elbette ki hiç bir yazılımın, hele hele Microsoft yazılımının ilk etapta tam ve eksiksiz olmasını bekleyemeyiz. Ama Silverlight, şu anki sürümü ve olduğu kadarıyla oldukça ileride diyebiliriz.

Silverlight ‘ın bana göre en önemli farkı ve gelişmişliği daha ilk sürümünde bile milyonlarca geliştiriciye sahip olması. Kapsamlı bir Flash uygulama geliştirmek istiyorsanız, ekibinizde bir tasarımcı, bir yazılımcı ve bunların arasındaki iletişimi sağlayacak bir Actionscript uzmanına ihtiyacınız olacak. Ülkemizi bıraktım, tüm dünya çapında ne yazık ki gerçekten iyi diyebileceğiniz Actionscript uzmanları çok ama çok az. İşin Microsoft tarafında ise önceden söylediğim gibi, sadece iki kişi yetiyor. Bir tasarımcı ve Javascript/.net uzmanıyla yapmak istediklerinizi yapabiliyorsunuz. İkisi de aslında bir web projesinde olmazsa olmaz kişiler. Olaya daha geniş açıdan bakarsak, bu iki kişiyle WPF sayesinde oldukça iyi masaüstü programlar da geliştirebiliyorsunuz!

Büyük Bir İkilem

Eğitim sırasında aklıma takılan çok büyük bir soru işareti var. Biliyorsunuz, bir Adobe Flash uygulaması geliştirdiğinizde web üzerinden sunacağınız bir SWF dosyası oluşturulur ve bu dosya aslında bir binarydir. Yani tekrar düzenlemek için ya yasadışı yollardan SWF yi kırmanız, ya da kaynak dosyası olan FLA ‘ya sahip olmanız gerekir. Hatta, emeğinizi korumayı amaçlayan ve SWF ‘nizi şifreleyen uygulamalar sayesinde yaptıklarınız tamamen size ait olabiliyor; başka yerde kullanılamıyor.

Microsoft ‘tan asla beklemeyeceğim bir şekilde, Silverlight ‘da böyle bir şey yok! Yani sizin uygulamanız JS ve XAML tabanlıysa, isteyen herkes aslında uygulamanızı komple veya kısmen kullanabilir. Bunun için browserın adres kısmına dosya isimlerini yazması yeter ki.

Açıkçası bu, beni Silverlight kullanmakla kullanmamak arasında ikileme sokan tek şey. Gizliliğine çok bağlı olan Microsoft neden böyle bir şey tercih etti, el emeği göz nuru uygulamalarımı başkalarının ben yaptım diyerek çıkabilecek olması beni rahatsız etmeli mi? Diğer taraftan düşünürsek webdeki her örneğe ulaşabileceğiz ve inceleyebileceğiz veya Silverlight’ı geliştirmek için yazılan her komponent aslında açık kaynaklı olacak ve parayla satılması biraz abes kaçacak.

Silverlight İçin Neler Gerekli?

Bir Silverlight uygulaması geliştirmek istiyorsanız, temelde şunlara sahip olmanız yeterli olacaktır:

  1. Microsoft Silverlight (Player): Browser üzerinden Silverlight uygulamalarını görmenizi sağlayan yazılım. 1.0 sürümü şuanda en stabil olanı. 1.1 ‘i kesinlikle şuanda kurmanızı önermiyorum.
  2. ASP.NET Framework 3.0: WPF uygulamalarının çalışmasını (Blend gibi) ve Silverlight ile uygulama geliştirmenizi sağlar.
  3. Microsoft Expression Blend: Silverlight üzerine kullanacağınız grafiklerin ve arayüzün tasarlanmasında kullanılan program. Animasyonlarınızı da bu uygulama ile geliştirebiliyorsunuz. Şuanda Blend ve Blend 2 olmak üzere 2 sürümü bulunmakta. Benim tavsiyem Blend 2 yönünde olacaktır.
  4. Bir JavaScript editörü veya Microsoft Visual Studio 2008: burada tercih size kalmış, Silverlight 1.1 i bekleyip .net mi yazacaksınız, yoksa JS ile mi devam edeceksiniz. JS editörü olarak Aptana şu sıralar en çok tercih edilen uygulama sanırım. Visual Studio için ise, Silverlight eklentileri bulunmakta.
  5. Videolarınız için Microsoft Expression Encoder.

kaynak: http://cagatay666.blogcu.com/silverlight-nedir/4658270

Reklamlar