ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

Silverlight 2.0 XAP Paketleri

Daron YÖNDEM
Silverlight
09.03.2010 15:48:17
Hit : 6884

Silverlight 2.0 (Beta 1) yazılarımın yavaş yavaş geleceğinden bahsetmiştim. İşte ilki ile karşınızdayım. Bu yazıda Silverlight 2.0 Beta 1 ile beraber gelen yeni dağıtım şeklinden bahsedeceğiz. Silverlight 1.0 uygulamalarında sitenize herhangi bir Silverlight animasyonu yerleştirebilmeniz için epey emek harcayarak birden çok JavaScript dosyasını sayfanıza linklemeniz sonrasında uygun HTML elementlerini ayarlamanız hatta bir de yanında XAML dosyanızı koymanız gerekiyordu. Bu durum Silverlight 2.0 ile beraber değişiyor ve karşımıza XAP uzantılı dosyalar geliyor. XAP'ın herhangi bir açılımı yok (en azından şimdilik).

XAP dosyaları aslında özünde birer ZIP dosyası. Bu dosyalar içerisinde Silverlight projenize ait DLL'ler bulunuyor. Silverlight 2.0 ile beraber VB veya C# kullanarak kodlama yapabildiğimiz için bu kodlardan DLL dosyaları yaratılıyor ve söz konusu DLL'ler XAP dosyası içerisinde istemciye gönderilerek istemci tarafında Silverlight Run-Time ile çalıştırılıyor. Expression Blend ile hazırladığınız XAML dosyaları da aynı DLL dosyaları içerisine birer Resource olarak ekleniyor.

Şu an ASP.NET 3.5 Extensions paketi içerisinde yer alan ve ileride ASP.NET'e eklenmesi düşünülen kontrollerden biri olan Silverlight kontrolü XAP dosyalarını alarak doğrudan ASP.NET sayfalarına yerleştirilebilecek. Örnek bir Silverlight kontrolünün kodunu aşağıda inceleyebilirsiniz.

<asp:Silverlight runat="server"

    PluginBackground="White"

    Source="animasyon.xap"

    Version="2.0">

          <PluginNotInstalledTemplate>

                   Plug-In Yüklü Değil

          </PluginNotInstalledTemplate>

</asp:Silverlight>

Gördüğünüz gibi artık bir Silverlight 2.0 animasyonunu herhangi bir ASP.NET sitesine yerleştirmek çocuk oyuncağına dönüşmüş. Tabi "artık"derken bu kullandıklarımızın hiçbirinin daha yayında olan yazılımlar olmadığını da akılda tutmakta fayda var. Fakat geleceğin böyle olduğunu görmek hoş.

Bir XAP dosyasında neler var?

İlk olarak tabi ki bizim yazdığımız uygulamanın kodlarını ve XAML kaynaklarını içeren DLL dosyamız var. Bu DLL dosyasını De-Compile ettiğimizde içerisinde Resource olarak XAML dosyalarımızın var olduğunu görebiliyoruz.

Silverlight 2.0 DLL dosyası içerisindeki XAML dosyalarımız.
Silverlight 2.0 DLL dosyası içerisindeki XAML dosyalarımız.

Haricen Silverlight 2.0 projemizde kullandığımız kontrollere ait DLL dosyaları da yine XAP içerisinde bulunuyor. Silverlight 2.0 içerisinde standart kontroller bile ayrı DLL dosyaları olarak geliyor. Bunların zamanla Plug-In'e dahil edilip edilmeyeceği belli değil fakat Silverlight 2.0 mimarisinde harici DLL dosyalarından farklı kontroller kullanılabileceği için bu yapı her zaman var olacaktır.

Silverlight 2.0 Beta 1 XAP dosyası içeriği.
Silverlight 2.0 Beta 1 XAP dosyası içeriği.

XAP dosyası içerisinde bir de XAML dosyası bulunuyor. Aşağıda içeriğini inceleyebileceğiniz örnek bir AppManifest.xaml dosyasına baktığımızda XAP paketi içerisinde tüm DLL'lerin sınıf isimleri ile ilişkilendirildiklerini görüyoruz.

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="SilverlightApplication3" EntryPointType="SilverlightApplication3.App" RuntimeVersion="2.0.30226.2">

  <Deployment.Parts>

    <AssemblyPart x:Name="SilverlightApplication3" Source="SilverlightApplication3.dll" />

    <AssemblyPart x:Name="System.Windows.Controls" Source="System.Windows.Controls.dll" />

    <AssemblyPart x:Name="System.Windows.Controls.Extended" Source="System.Windows.Controls.Extended.dll" />

  </Deployment.Parts>

</Deployment>

Deployment tagı içerisindeki EntryPointAssembly uygulama ilk çalıştırıldığında hangi DLL'in başlatılacağını belirliyor.

Bu haliyle yeni Silverlight 2.0 paketlerine baktığımızda olayın epey derlenip toparlandığını görüyoruz. Özellikle Silverlight 1.0 ile ilgili sıkça akla gelen "kod güvenliği" sorunları ile ilgili kısmi bir ilerleme var diyebiliriz. En azından artık XAP (ZIP) dosyasını açmanız DLL'i çıkarmanız ve De-Compile etmeniz gerekiyor. Tabi ki tüm bunlar mümkün :) fakat biraz daha zağmetli hale geldi diyebiliriz. Ayrıca artık Silverlight uygulamalarının dağıtımı ve paylaşımı çok daha kolay. Özellikle bu tip animasyonları içerik yönetim sistemlerinde kullanmak isteyenler için SL 2.0 büyük kolaylık olacaktır.

Hepinize kolay gelsin.




BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR