Hola a todos,

A estas alturas, seguramente conoceremos más o menos las limitaciones del desarrollo en modo sandbox (y por tanto de SharePoint Online). Aquí tenemos un buen resumen del que empezar a tirar del hilo.

Una de las limitaciones que más llama la atención es la de no poder desplegar dlls en la GAC al estilo que estamos acostumbrados en nuestro despliegues en granja. Además de no poder meter mano a nuestro querido 14 “hive”.

Esto hace que nos preguntemos, cómo podemos desplegar soluciones en sandbox, que tienen referencias a componentes externas.

Lo podemos hacer con los siguientes pasos:

  • Antes de nada, recalcar que, el código del componente externo, no puede violar ninguna de las restricciones Sandbox.
  • Nuestro componente externo (.dll) debe estar firmado con un strong name. Esto no es nuevo, pasa lo mismo en On premise.
  • Pero además, la dll debe permitir: AllowPartiallyTrustedCallers Esto lo podemos hacer con el siguiente código dentro del fichero “AssemblyInfo”

  • Incluimos la .dll externa dentro del Package de SharePoint. Para ello, desde Visual Studio abrimos el Package, nos vamos a la pestaña de avanzadas y añadimos el componente.

image

image

  • También podemos añadir SafeControls, si lo necesitamos.

Estos pasos, son además una restricción cuando se trata de componentes de terceros sobre los que no tenemos ningún control (no podemos tocar su código fuente, recompilar, etc).

Y ya está! en la siguiente imagen, he creado un webpart (los webpart visuales son posibles en SharePoint Online, pero utilizando otra plantilla) que al cargarse hace una llamada a una dll que está fuera del webpart y que devuelve un simple string.

image