Si bien este artículo está totalmente basado en el hecho de que mi blog está implementado en WordPress, de fondo son los mismos conceptos si es que utilizas cualquier otro motor de blogging.

WordPress cuenta con una vasta galería de Widgets que podemos utilizar en nuestro sitio para extender su funcionalidad.  Uno de estos Widgets, que ya viene incluído de manera predeterminada es el Text/HTML.  Este componente te brinda la oportunidad de implementar cualquier tipo de código HTML arbitrario incluso Javascript.

Por el otro lado, hay diferentes maneras de instanciar el plugin de Silverlight en una página Web, una de ellas es utilizar el elemento <object> de HTML indicando los parámetros correctos para su inicialización.  Además, una de las características que tiene Silverlight es que podemos tener nuestro archivo .XAP en un dominio diferente a la página que donde lo vamos a instanciar; por lo tanto el único requisito es que tu archivo .XAP esté accesible.

Así que:

  1. Sube tu archivo .XAP
  2. Agrega el Widget de Text/HTML en tu página
  3. Instancia el plugin de Silverlight usando el elemento <object> indicando como fuente el archivo .XAP
  4. Si tu aplicación hace uso del Puente HTML de Silverlight, habilítalo por medio del parámetro enablehtmlaccess y establécelo en “true”

El siguiente código es el que estoy utilizando para instanciar el Widget del Silverlight Tour Workshop en Español, noten cómo el archivo .xap vive efectivamente en el dominio silverlight-tour.com.mx y no en rdiazconcha.com.  También vale la pena notar que se está habilitando el Puente HTML y además se está estableciendo un parámetro necesario para la aplicación con initparams.

<div id="silverlightControlHost" style="width:100%; height:400px;">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="https://silverlight-tour.com.mx/ClientBin/DevMasters.SilverlightTour.xap"/>
    <param name="onerror" value="onSilverlightError" />
    <param name="minRuntimeVersion" value="2.0.31005.0" />
    <param name="autoUpgrade" value="true" />
    <param name="initParams" value="widget=true" />
    <param name="enablehtmlaccess" value="true" />
<a href="https://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
    <img src="https://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
</div>

También recuerda que tienes la opción de modificar la imagen que les aparece a los usuarios que no tienen instalado Silverlight simplemente cambiando el atributo src del <img> en el código de arriba.

Ahora bien, también puedes instanciar el plugin de Silverlight utilizando la función createObjectEx() del archivo Silverlight.js incluido en la plantilla de Visual Studio, pero tendrías que subir el archivo .js a tu servidor, referenciar el script, y utilizar la función.  <object> parece ser mejor opción si lo único que necesitas es ejecutar una aplicación en tu página.

Sea una opción u otra, instanciar una aplicación de Silverlight en tu sitio es una tarea muy sencilla. 

Salu2!