WSS 3.0 & MOSS: Liberadas las versiones con SP2 incluido!

Microsoft acaba de liberar las versiones de WSS 3.0 & MOSS que incluyen el SP2 de serie. Los enlaces de descarga para cada producto son los siguientes:

SharePoint 2010: Limites con las soluciones SandBox (I)!

Una de las novedades de SharePoint 2010 es la posibilidad de crear artefactos de SharePoint 2010 en modo SandBox, es decir, que se ejecuten en un entorno aislado de manera que si hay algo erróneo en los mismos, no se afecte a la granja completa sino a un nivel inferior. Ese nivel inferior es el que determinan las Colecciones de Sitios ya que son los administradores de las mismas los encargados de subir y cargar las soluciones SandBox. De esta forma, si el artefacto desplegado presenta un problema que introduzca una penalización en el rendimiento, alguna mala práctica de codificación o la simple violación de una regla, únicamente afectará a la Colección de Sitios donde se haya activado.

Precisamente al ser los administradores de la Colección de Sitios los encargados de subir y activar esta solución introduce otra ventaja: no es necesario recurrir al administrador de la granja para que despliegue este tipo de soluciones. De esta manera, se puede dedicar a monitorizar que soluciones están dando problemas en una cierta Colección de Sitios, monitorización que por otro lado es realizada automáticamente por el sistema que se encarga de generar los correspondientes avisos y bloquear aquellas soluciones SandBox que estén dando problemas. Por otro lado, este tipo de soluciones vienen a resolver el problema que se encontraban los administradores de SharePoint a la hora de desplegar estos artefactos: como securizarlos. Una solución de tipo SandBox se ejecuta de forma segura per sé y evita estos quebraderos de cabeza a los administradores. En este primer post sobre soluciones de tipo SandBox veremos cuales son sus características principales.

¿Qué artefactos se pueden crear en modo SandBox?

Básicamente aquellos que no impliquen que se tiene que subir archivos a disco o ensamblados a la GAC. Por lo tanto, no podremos crear web parts de tipo visual. Estos artefactos son:

  • Web Parts clásicas.
  • Listas.
  • Plantillas de lista.
  • Acciones personalizadas.
  • Workflows
  • Manejadores de eventos.
  • Tipos de contenidos.
  • Columnas de Sitio.

¿Cuál es el límite que tengo en mis desarrollos a nivel de modelo de objetos?

Pues básicamente, dentro de una solución SandBox sólo se permite desarrollar desde el nivel de Colección de Sitios hacía abajo. Además, hay restricciones como que no es posible utilizar SPSecurity y otras clase de seguridad. Asimismo, no es posible crear colecciones de sitios con SPSite.  Visual Studio 2010 se encarga de ocultar en el intellisense el que se pueda hacer uso de estas clases…ahora bien, como veremos, esta limitación se puede superar de forma sencilla :-(.

Probando las prestaciones de las soluciones SandBox

Para probar las prestaciones de las soluciones SandBox, voy a crear una WebPart clásica en la que incumpla alguna de las condiciones comentadas. En mi caso, voy a hacer uso de SPSecurity:

  • Para ello, en primer lugar he creado un proyecto vacío de SharePoint 2010.
  • En el asistente de creación del proyecto  he indicado que el despliegue se va realizar en modo SandBox.
  • A continuación he añadido un nuevo elemento al proyecto de tipo Web Part (la clásica) al proyecto.
image image image
  • En el método CreateChildControls() de la Web Part, he intentado hacer uso de SPSecurity, pero el intellisense de Visual Studio 2010 no me lo mostraba por ningún lado como era de esperar, ya que no se permite su uso en soluciones de tipo SandBox.

image

  • Ahora bien, nada impide que añadamos SPSecurity porque conocemos esta clase y entonces el intellisense si que aparece…mi gozo en un pozo :-(. Una clase que está prohibida en las soluciones de tipo SandBox se puede usar sin problemas, ya que no se hace ningún tipo de chequeo en tiempo de codificación y de compilación de que el código que se está utilizando sea permitido o no. El problema viene dado porque nuestro proyecto tiene una referencia al ensamblado Microsoft.SharePoint.dll almacenado en la carpeta ISAPI, es decir, a todo el modelo de objetos de SharePoint.
  • Pero veamos que pasa si la usamos. Para ello, en el método CreateChildControls de la Web Part he añadido el siguiente código:

            base.CreateChildControls();

            Label lblData = new Label();

                         SPSecurity.RunWithElevatedPrivileges(delegate

                

                lblData.Text = "This shouldn’t work";

            });

            this.Controls.Add(lblData);

  • Tras compilar mi Web Part, he hecho el despliegue de la misma a través de la opción Deploy de Visual Studio 2010. El despliegue se realiza sin problemas.

Usando la Web Part en un Sitio de SharePoint 2010

Para utilizar una Web Part creada en modo SandBox, tenemos que:

  • Navegar hasta la administración de la Colección de Sitios dónde se ha desplegado.
  • Dentro de la sección Galerías, hacemos clic en Soluciones. Esta biblioteca especial contiene todas las soluciones de tipo SandBox (por supuesto, son archivos .WSP) que se hayan desplegado en la Colección de Sitios.
  • Comprobamos que nuestra WebPart aparece y está activada (Visual Studio activa la Web Part en el proceso de despliegue…realmente activa la característica correspondiente.
  • Si ahora utilizamos nuestra Web Part en nuestro Sitio de SharePoint 2010, veremos que se muestra un error…estamos utilizando un objeto no permitido, es decir, en tiempo de ejecución si que se comprueba que el código del artefacto desplegado esté utilizando elementos permitidos.
image image image

¿Cómo evito estas situaciones?

Esta es la pregunta que muchos os estaréis haciendo, y la respuesta es que de dos formas:

  • La primera es marcar a fuego a tu equipo de desarrollo de SharePoint que cuando creen soluciones SandBox utilicen la librería Microsoft.SharePoint.dll contenida en [..]\14\UserCode\Assemblies\Microsoft.SharePoint.dll que contiene aquellos elementos del modelo de objetos de SharePoint 2010 que se pueden usar en soluciones SandBox. De esta forma, se evita que se usen objetos no permitidos ya que Visual Studio 2010 mostrará el correspondiente error. Luego, cuando el artefacto de SharePoint 2010 esté concluido cambiamos la referencia por la original y que contiene toda el modelo de objetos de SharePoint 2010. Cómo veis, el error que se muestra es que SPSecurity no existe en el contexto actual.

image

  • La segunda es crear un validador de soluciones SandBox que en el proceso de despliegue de la solución analice el código  y no active la solución en el caso de detectar algo erróneo. SharePoint 2010 por defecto incluye un validador, pero no chequea el código. Si chequea por ejemplo que no se esté intentando desplegar un artefacto que requiera copiar archivos en disco o ensamblados en la GAC.

Y hasta aquí llega este primer post sobre soluciones SandBox. Espero que os haya parecido interesante.

Formación: En tiempos de crisis, certifica tus conocimientos!

De vez en cuando publico algún que otro post de temática no técnica en el que trato algún tipo de información interesante que me haya encontrado por la red. En esta ocasión, toca hablar de la formación de los profesionales del futuro en tecnologías del presente y del futuro. Por desgracia, el sistema universitario español no prepara de forma adecuada a los perfiles tecnológicos para lo que demanda el mercado lo que implica que en el momento en el que se incorporan al mercado laboral, es necesario un período de aprendizaje para conseguir el conocimiento y productividad que necesita la empresa. Muchas empresas TIC, entre ellas Microsoft, intentan paliar esta situación a través de iniciativas como la creación de clubs .NET, el acceso de los estudiantes a su software o la organización de eventos tecnológicos en las universidades. Pues bien, y volviendo al origen del post, hasta el 30 de junio de 2010 cualquier estudiante que quiera validar sus conocimientos y certificarse en tecnología Microsoft lo podrá hacer con un descuento de hasta el 50 %. Sin duda, una excelente noticia que más de uno aprovechará. Os dejo el enlace al anuncio y al listado de certificaciones disponibles.

image

SharePoint 2010: Training Ignite para partners – Gracias a todos!

Esta semana tuve la oportunidad junto al bueno de Gustavo Vélez de impartir en España, y gracias al departamento de DPE de Microsoft Ibérica, el training de Ignite sobre desarrollo en SharePoint 2010. Han sido tres jornadas intensas en las que hemos tenido la oportunidad de mostrar las principales novedades a nivel de desarrollo en SharePoint 2010, y dónde los asistentes han tenido la posibilidad de trastear bastante con el producto. Desde el punto de vista personal, este training me ha permitido fortalecer los conocimientos que voy adquiriendo de la plataforma y también atreverme a realizarlo en inglés puesto que teníamos audiencia de habla España (24 valientes de distintos partners de Microsoft en España) y también de habla inglesa, por lo que tanto Gustavo como yo nos tuvimos que repartir las sesiones a realizar en castellano e inglés…lógicamente, los asistentes de habla inglesa fueron los que más contentos se fueron del training porque tenían un instructor para sólo dos alumnos :P.

En cuanto al contenido del training, es exactamente el mismo que podéis encontrar en:

Agradecer a todos los asistentes el alto grado de participación e interacción en el training ya que de esta forma se pudo profundizar aún más en algunas de las novedades introducidas. Y nada, aquí os dejo algunas fotos que hicimos durante las sesiones.

PC170094 PC170095 PC170096
PC170097 PC170098 PC170100
  PC170099  

Seguro que en el 2010 se realizarán más iniciativas de este tipo. La comunidad de SharePoint en España es muy fuerte y hay que apostar por ella.

SharePoint 2010: Almacenamiento remoto de BLOBs!

Una de las capacidades que se mejora notablemente en SharePoint 2010 comparado con SharePoint 2007 es el soporte de almacenamiento remoto de BLOBs. En este sentido, dentro de TechNet podemos encontrar una sección completa dedicada al soporte de este tipo de almacenamiento: Manage Remote BLOB Storage.

En el caso de SharePoint 2007, cuando salió el producto del horno, no presentaba esta capacidad, sino que se añadió posteriormente para soportar la característica FILESTREAM de SQL Server 2008. En este enlace podéis encontrar información sobre como utilizar FILESTREAM con SharePoint 2007.

sp2010_2

SharePoint 2010: Novedades en la instalación (III)!

Siguiendo con la serie de posts en torno a las novedades que podemos encontrarnos en la instalación de SharePoint 2010 (puedes acceder al último post en este enlace), en esta ocasión vamos a ver lo sencillo que resulta instalar las Microsoft Office Web Applications (OWA). En este caso he realizado la instalación sobre SharePoint Foundation 2010, que permite usar las OWA aunque no de forma completa a como podemos hacerlo en SharePoint Server 2010. Los pasos de instalación son los siguientes:

  • En primer lugar especificamos la clave de las OWA.
  • Aceptamos los correspondientes términos de licencia.
  • Elegimos el path de instalación de las OWA y pulsamos Install Now.
image image image
  • A continuación se inicia el proceso de instalación de las OWA, que concluirá con la típica pantalla de ejecución del asistente de configuración de SharePoint.
image image image

  • En la siguiente pantalla del asistente dejamos marcada la opción por defecto (no desconectar de la granja actual) y pulsamos Next.
  • En la siguiente pantalla dejamos de nuevo marcada la opción por defecto y pulsamos Next.
  • A continuación se inicia el clásico configurador de SharePoint.
image image image

  • Concluido el configurador, se abrirá la Administración Central de SharePoint para que a través del correspondiente asistente configuremos los nuevos servicios relativos a las OWA.
  • Una vez finalizado el asistente, ya tendremos las aplicaciones de servicio correspondientes a las OWA ejecutándose en la granja.
  • Finalmente, a nivel de colección de sitios tendremos las correspondientes features relativas a las OWA.
image image image

Y hasta aquí llega este tercer post sobre novedades en instalación en SharePoint 2010.