SharePoint 2010: Validadores de soluciones SandBox (I)!

Como ya se ha comentado en este blog en varios artículos, SharePoint 2010 permite desplegar un nuevo tipo de soluciones conocidas como “Sandbox” cuyo ámbito de actuación se reduce al de la colección de sitios lo que en la práctica indica que son soluciones que se ejecutan de forma segura de manera que si generan algún problema, no van a afectar a otras colecciones de sitios y tampoco a la granja. Antes de pasar al tema de este post, os recuerdo los artículos ya publicados sobre soluciones SandBox:

Como sabéis, las soluciones Sandbox se cargan en una galería especial existente a nivel de colección de sitios: la galería de soluciones. Una vez cargada una solución, puede ser activada para poder utilizarla en el ámbito de la colección de sitios en cuestión…y aquí debería surgir una primera pregunta: ¿se pueden validar de alguna forma las soluciones Sandbox de forma que sin no cumplen ciertos requisitos no se activen y no se puedan usar? La respuesta es que sí gracias a que podemos instalar validadores de soluciones que nos permiten realizar comprobaciones adicionales sobre las soluciones Sandbox que se están desplegando. El funcionamiento resumido de estos validadores es el siguiente:

  • Cuando se intenta activar una solución en la galería de soluciones, el validador desplegado entra en funcionamiento.
  • Este validador realiza una serie de comprobaciones sobre la solución y puede bloquearla en el caso en qué se estén incumpliendo las reglas de validación definidas.

Por defecto, SharePoint 2010 incorpora un validador que simplemente marca como correcta cualquier solución que se cargue en la galería de soluciones. Si queremos conocer los validadores desplegados en una cierta colección de sitios, basta con ejecutar el siguiente script PowerShell:

   1: $snapin = Get-PSSnapin | Where-Object {$_.Name -eq "Microsoft.SharePoint.Powershell"}

   2: if ($snapin -eq $null) {

   3:   Write-Host "Loading SharePoint Powershell Snapin" -foregroundcolor red

   4:   Add-PSSnapin Microsoft.SharePoint.Powershell

   5: }

   6: if ($snapin -ne $null) {

   7:   Write-Host "SharePoint Powershell Snapin already loaded" -foregroundcolor red

   8: }

   9:  

  10: Write-Host "Getting reference to user code service..." -foregroundcolor red

  11: $usercode = [Microsoft.SharePoint.Administration.SPUserCodeService]::Local

  12: $usercode.SolutionValidators

¿Podemos crear nuestros propios validadores de soluciones? La respuesta es que sí, y el proceso es el siguiente:

  • Crear una clase que herede de SPSolutionValidator.
  • Incluir en la clase los métodos:
    • ValidateSolution, que valida el WSP de la solución SandBox y su contenido.
    • ValidateAssembly, que valida cada ensamblado contenido en el WSP.
  • Ambos métodos permiten fijar un mensaje de error y redireccionar a una página de error personalizada en el caso en el que el proceso de validación de una solución falle.
  • Registrar el validador en la granja de SharePoint, lo cuál podemos hacer de forma sencilla mediante un manejador de eventos asociado a una característica que nos permita añadir el validador a la colección de validadores del servicio de código de usuario (propiedad SolutionValidators del objeto SPUserCodeService).

Y hasta aquí llega este primer post de validadores de soluciones.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “SharePoint 2010: Validadores de soluciones SandBox (I)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *