viernes, 18 de diciembre de 2009

Variaciones de sitio en SharePoint 2010

Hoy he empezado a probar el nuevo sistema de variaciones de sitio de SharePoint 2010, y aquí van mis primeras impresiones. Lo primero a destacar es el cambio en cuanto a la manera de ejecutar el trabajo. En la versión anterior de SharePoint (MOSS), tanto la creación de la jerarquía de variaciones como la replicación de las variaciones de las páginas publicadas se hacían mediante una Long running operation (lo siento pero no sé el nombre exacto en español y prefiero ponerlo así). Ahora, todo esto se realiza mediante un trabajo que se planifica para ser ejecutado según convenga. El mi caso, la creación de las jerarquías se planificó para ser ejecutado diariamente, de 1 a 3 de la mañana mientras que la replicación de las variaciones de las páginas publicadas se planificó para ser ejecutado cada hora.

Hasta aquí todo bien o, almenos, según lo esperado. A partir de ahora, os enseñaré lo que me he encontrado después de ejecutar los trabajos comentados. Para empezar, un pantallazo de la variación del inglés:

image

Como podéis ver, tiene buena pinta. Ahora las malas noticias… si vamos a la variación en español, nos encontramos con la siguiente figura:

image

Esto puede deberse a muchas cosas pero, teniendo en cuenta que la variación en español se ha creado con el paquete de idiomas español (lógico por otra parte), yo optaría por pensar que algún CSS dependiente de lenguaje es el causante de este desastre. Efectivamente, si miramos el código html generado vemos algunas referencias a la ruta /Style%20Library/es-ES. Si intentamos abrir cualquiera de estos ficheros nos encontraremos con que el servidor no nos las sirve:

image

Bueno, ¿pues cómo resolvemos esto? pues primero, pidiendo perdón por lo que voy a hacer ;). A continuación abrimos SharePoint Designer, y navegamos a la biblioteca Style Library de la colección de sitios con la que estamos trabajando:

image

Si entramos veremos como, tal y como podíamos esperar, únicamente tenemos la carpeta en-us. Esto puede deberse a un error nuestro a la hora de instalar SharePoint 2010 o sl Language Pack de español, o al hecho que estamos trabajando con la versión Beta de SharePoint.

image

En cualquier caso, la solución por la que opto es la de crear una copia de la carpeta en-us y cambiarle el nombre a es-es.

image

Una vez hecho esto, refresco la página anterior, y ya lo tenemos ;)

image

Nota: no hagan esto sin la presencia de un adulto. Espero poder revisar este post dentro de un tiempo con una solución más “elegante” o con la noticia de que con la versión final del producto esto no pasa.

jueves, 17 de diciembre de 2009

SharePoint Health Analyzer

Bajo este nombre tan bonito se encuentra una de las primeras novedades a nivel de administración con las que me he encontrado a la hora de trabajar con SharePoint 2010. La idea es simple: SharePoint 2010 incluye un ente maravilloso que se encarga de velar por la salud del sistema y, cuando encuentra algún punto problemático nos lo comunica y nos indica lo que debemos hacer para ponerle remedio.

SharePoint Health Analyzer

Si pulsamos el enlace que aparece en la parte superior de la pantalla nos aparece una lista como la de la siguiente figura:

Review problems and solutions

Como  se puede apreciar, el sistema ha encontrado un problema de seguridad relacionado con el identificador de la aplicación del servicio desatendido. Yo no sé que significa eso, pero sé que no es nada bueno, así que abro el elemento para ver más información, y me encuentro con la siguiente pantalla:

Unattended service full

Hasta aquí todo bien pero, hay que tener en cuenta que nos encontramos ante una versión beta, así que nos podemos encontrar con algún efecto indeseado en cualquier punto del proceso. En este caso, el link donde se da más información acerca de la resolución del problema nos remite a la siguiente página: http://technet.microsoft.com/en-us/office/sharepointserver/default.aspx

image

Como se puede apreciar, es la página de bienvenida del technet para MOSS que, en este caso, poco nos va a ayudar. Optamos por la solución que menos nos suele gustar, leemos el mensaje y tratamos de solucionar el problema por nuestros propios medios. Lo primero, leemos el mensaje detenidamente:

To resolve this issue, the Visio Graphics Services administrator must provision the Secure Store Service, create a target application, and assign the ID of this target application to this setting. For more information about this rule, see http://go.microsoft.com/fwlink/?LinkID=142617.

Parece que hay que aprovisionar el servicio de almacenamiento seguro y, por lo tanto, accedemos a la gestión de aplicaciones de servicio tal y como muestra la figura.

Manage service applications

En el listado de aplicaciones de servicio encontraremos aquella de la cual el monitor de salud se está quejando. Pulsando el enlace accederemos a la gestión del servicio en sí.

Secure store service

El sistema nos indica que antes de crear una aplicación de destino para almacenamiento se debe generar una nueva llave. Encontraremos la opción en la Ribbon (otra de las novedades que merecen un post completo).

image

Para generar la llave será necesario escribir una frase para encriptar el contenido de la base de datos.

image

Una vez hecho esto, podremos crear una nueva aplicación de destino de almacenamiento utilizando de nuevo la Ribbon.

image

En este momento he de admitir que la gestión de este servicio no es algo que domine completamente así que voy a utilizar los parámetros por defecto y no me voy a extender en las diferentes opciones que tenéis.

image

image

El último paso para la creación de la aplicación de destino de almacenamiento es seleccionar el usuario que administrará éste servicio. Tampoco me extenderé en hablaros sobre qué usuarios debéis o no debéis utilizar para gestionar una granja de SharePoint. Sólo os recomiendo que sigáis las guías de despliegue oficiales del producto y que hagáis caso a vuestros mayores (aka Actor Secundario Bob) ;)

image

Una vez creada la aplicación, volvemos al mensaje que teníamos inicialmente:

To resolve this issue, the Visio Graphics Services administrator must provision the Secure Store Service, create a target application, and assign the ID of this target application to this setting. For more information about this rule, see http://go.microsoft.com/fwlink/?LinkID=142617.

Al parecer el asunto está relacionado con el servicio de gráficos de Visio, así que ahí vamos, nuevamente, a la gestión de aplicaciones de servicio. Y aquí una nota: ¿necesito el servicio de gráficos de Visio? en teoría no, y con SharePoint 2010 puedo decidir qué servicios activo y cuáles no, a diferencia de lo que ocurría con los servicios compartidos de MOSS. No obstante, como la instalación que estoy efectuando se utilizará para realizar múltiples pruebas y desarrollos, prefiero tenerlo todo activo para no perder alguna opción que pueda resultar interesante.

image

Dentro de la gestión del servicio veo una opción de parámetros globales que, a priori, parece la más adecuada para ofrecer la posibilidad de asignar el ID de la aplicación que hemos creado.

image

Efectivamente, encontramos el parámetro que estamos buscando, y lo rellenamos con el valor que hemos indicado a la hora de crear la aplicación anterior.

image

Pulsamos el botón de aceptar el cambio, volvemos al detalle de la advertencia con la que he empezado este extenso post, y pulsamos el botón de volver a analizar el problema.

En teoría el mensaje debería desaparecer de la página inicial de la Administración Central de SharePoint. En la practica, yo he tenido que reiniciar el IIS del servidor de SharePoint. El resultado, en cualquier caso, debería ser similar al de la figura:

image

Y con esto cierro el posiblemente post más extenso (según la barra de desplazamiento) de este blog. Soy una persona que prefiere escribir a poner pantallitas pero, en este caso, hemos hecho una excepción. Espero que os sirva de ayuda.

Language Packs de SharePoint 2010

El pasado 3 de Diciembre Microsoft publicó algunos paquetes de idioma para SharePoint 2010, tanto para SharePoint Foundation como para los productos de servidor. La gran noticia para nosotros es que, a diferencia de lo que ocurrió con SharePoint 2007, el paquete de lenguaje español ha sido liberado en la primera lista de paquetes disponibles. De momento, los idiomas disponibles son:

  • Alemán
  • Inglés
  • Castellano
  • Francés
  • Japonés
  • Ruso
  • Chino (Simplificado)

La verdad es que en términos de multilenguaje hay muchas novedades que merecerían un post más extenso, sobretodo para la parte de administración del producto pero, por ahora, me conformaré con escribir los enlaces a las páginas de descarga oficiales de Microsoft.

SharePoint Foundation 2010
http://www.microsoft.com/downloads/details.aspx?FamilyID=0956787e-210d-4d78-9e4e-a9cdef0e8495&displayLang=en

2010 Server Language Packs for SharePoint Server 2010 Beta, Project Server 2010 Beta, and Search Server Express 2010 Beta
http://www.microsoft.com/downloads/details.aspx?FamilyId=a0c7c05d-8fca-4391-bc70-b62c9af91123&displaylang=en

miércoles, 16 de diciembre de 2009

SharePoint 2010 en una instancia de SQL Server con nombre

Lo que voy a explicar hoy no sólo aplica a SharePoint 2010, sinó que es válido para otras versiones de SharePoint e incluso para otros productos que se comuniquen con SQL Server. De todas formas, y pese a que llevo años trabajando con SharePoint, no ha sido hasta hoy que he tenido que pelearme con lo que viene a continuación.

Voy a empezar por la conclusión: por defecto, cuando trabajas con instancias de SQL Server con nombre -para aquellos que no estén familiarizados con este concepto, las instancias con nombre son aquellas de tipo similar a SERVIDOR\instancia - el sistema no utiliza el puerto por defecto (1433) para comunicarse con el exterior. Por defecto utiliza un puerto dinámico. Esto, amigos míos, puede resultar una pesadilla cuando lo mezclamos con la palabra prohibida para todo desarrollador que se precie: ¡¡¡Firewall!!!

A continuación, un disclaimer (traducción: mis excusas para no haber llegado a una conclusión como ésta en el pasado). Normalmente no utilizo instancias con nombre, sino que uso la instancia por defecto para realizar instalaciones de SharePoint. Cuando se utiliza una instalación stand-alone tenemos que usar forzosamente una de estas instancias pero, evidentemente, en esos casos nunca tendremos problemas de firewall ya que todo estará instalado en la misma máquina. (Además, los desarrolladores no sabemos de puertos, firewalls ni usuarios de servicio :P)

Y ahora vamos a ver lo que me he encontrado hoy, y entenderemos por qué relaciono este post con SharePoint 2010. Después de haber instalado unas cuantas veces SharePoint 2010 para jugar un poco con él y para hacer alguna que otra demo hoy me he dispuesto a instalarlo en mi organización para empezar a trabajar en serio con el producto y empezar a plantear proyectos reales. Para realizar la instalación sigo, como de costumbre, los consejos de: http://blogs.msdn.com/opal/archive/2009/11/16/installation-notice-for-sharepoint-2010-public-beta.aspx y de http://technet.microsoft.com/en-us/library/ee805948(office.14).aspx. Todo parece ir bien pero, cuál es mi sorpresa cuando recibo la inesperada visita del protagonista de este post. Lo llamaré actor secundario Bob porque quiere permanecer en el anonimato. El caso es que me llama y me enseña la lista de entre 10 y 15 bases de datos de nombre variopinto que ha generado la instalación del producto. Esto tene una explicación y tiene que ver con las aplicaciones de servicio de SharePoint 2010, pero esto lo dejaré para otro post. El caso es que, como es de suponer, no es una situación cómoda por lo complejo que puede resultar su mantenimiento. Tras sopesar las diferentes posibilidades, decidimos crear una instancia de SQL Server dedicada para la instalación de SharePoint. Se crea la instancia, se actualiza a la versión SP1 CU2 y se procede a la re-ejecución del asistente de SharePoint, y aquí es donde vienen los problemas, dado que no hay manera de conseguir que la instancia de SQL Server sea visible para el asistente. No hay manera, claro, hasta que acudo a la segunda solución más utilizada del mundo de la informatica después de reiniciar la máquina: parar el firewall. Tras unos segundos de esperanza, la mirada del actor secundario Bob me hace volver a la realidad, ya que no podemos ir sin firewall por la vida. Vuelve la desesperación. Pero aquí es donde el actor secundario Bob se gana a pulso el ser el protagonista de este post, cogiendo el control de las máquinas y resolviendo el problema de una manera elegante. Incluso se permite el lujo de ofrecerme dos posibles soluciones cada cual más documentada. Ahí van:

1. Configurar la instancia de la base de datos para utilizar un puerto estático:
http://msdn.microsoft.com/en-us/library/ms345327.aspx

2. Configurar el firewall del servidor de SQL para que permita el acceso al programa en sí:
http://msdn.microsoft.com/en-us/library/cc646023.aspx#BKMK_dynamic_ports

Bueno, después de tomar una de estas dos alternativas (en mi caso la segunda) todo funcionó correctamente. Gracias actor secundario Bob, estás hecho todo un IT Pro (traducción: chispas).