Nelle scorse lezioni abbiamo creato, compilato e lanciato l'applicazione. Se ora esaminiamo la cartella ClientBin
in Esplora Risorse, troviamo che non è più vuota, al suo interno c'è il file HelloWorlldSilverlight.xap
: il risultato della compilazione del progetto Silverlight.
Il file XAP è il cuore della nostra applicazione. Quando facciamo richiesta di un contenuto Silverlight, questo file viene inviato al nostro browser, viene salvato sulla nostra macchina e mandato in esecuzione dal plugin.
Quindi per pubblicare la nostra applicazione, non dobbiamo far altro che distribuire questo file sul Web Server, la faccenda naturalmente si complica leggermente quando l'applicazione è suddivisa in più librerie non referenziate fra loro oppure quando accede a risorse presenti sul file system, come archivi di immagini o video, perché dobbiamo tenere della loro posizione rispetto al percorso dell'applicazione.
Ma cos'è un file XAP? Si tratta di un archivio compresso (un file Zip), che contiene gli elementi necessari alla nostra applicazione. Possiamo esaminarne il contenuto modificando l'estensione del file e aprendolo come un comune file Zip.
Un file XAP contiene sempre almeno un file manifest
e un assembly
. Quest'ultimo è una comune libreria managed compilata per il run-time di Silverlight, mentre il primo file, di tipo XAML, descrive quel è l'entry point dell'applicazione e da quali librerie è composta, vediamolo.
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="HelloWorlldSilverlight" EntryPointType="HelloWorlldSilverlight.App" RuntimeVersion="2.0.31005.0"> <Deployment.Parts> <AssemblyPart x:Name="HelloWorlldSilverlight" Source="HelloWorlldSilverlight.dll" /> </Deployment.Parts> </Deployment>
Il markup, di facile comprensione, indica che la nostra applicazione di esempio è composta da un solo assembly (HelloWorlldSilverlight.dll
) nel quale è definita la classe HelloWorlldSilverlight.App
(vista in precedenza) che sarà il punto di inizio dell'applicazione.
Se il progetto Silverlight avesse referenziato altre librerie, magari di terze parti, esse sarebbero state incluse nel file XAP e definite nel file manifest come elementi AssemblyPart
.