Quando o controlo Silverlight é colocado numa página web tem que ter sempre a indicação de qual é o caminho para o ficheiro XAP. Este caminho pode ser relativo ou absoluto. Sempre que é construido no template do Visual Studio vai ser colocado no directorio ClientBin, tal como no nosso exemplo:
<param name="source" value="ClientBin/SLMediaManager.xap"/>
Para podermos utilizar e actualizar o controlo independentemente da actualização da aplicação precisamos de:
1. Criar um container num blob para colocar o XAP
Pegando no azure blob browser que mais gostamos (eu uso o da Cloud Storage Studio da Cerebrata), criamos um container, neste caso vamos criar um com o nome "xap":
2. Garantir que o container é público, isto é, no nosso caso pretendemos que possa ser acedido por qualquer aplicação
Se estivermos a utilizar o SpaceBlock, usamos right-click sobre o container e escolhemos a última opção que permite a edição dos atributos de segurança
3. Upload do XAP
Pare este blob fazemos upload do XAP que se encontra do clientBin do nosso projecto.
Verificamos que o content-type é "application/x-silverlight-app", portanto não haverá surpresas.
4. Testar o acesso directo ao XAP
Ao introduzir directamente no URL do IE8: http://azureslstorage.blob.core.windows.net/xap/SLMediaManager.xap deveremos ver a mensagem:
Podemos cancelar o download porque acabamos de validar que o xap está colocado e acessível externamente.
5. Testar na nossa aplicação
A página de teste terá que ser alterada, a source terá que apontar para o blob:
<param name="source" value="http://azureslstorage.blob.core.windows.net/xap/SLMediaManager.xap"/>
Assim a aplicação estará a funcionar normalmente e sempre que seja necessário actualizar apenas a aplicação silverlight bastará fazer upload do XAP.
Da mesma forma quando quisermos dar o SLMediaViewer a um cliente ele apenas precisa colocar o objecto silverlight nas suas páginas.