sábado, 8 de mayo de 2010

Instalando SharePoint 2010 RTM

Por fin, después de tanto tiempo esperando he podido instalar tranquilamente la versión RTM de SharePoint 2010. La verdad es que ha sido una instalación realmente limpia. Todo ha funcionado a la primera sin necesidad de ningún paso manual. Esto no quiere decir que sea sencillo, ya que una instalación de un servidor en producción no se tiene que tomar nunca a la ligera, pero para un desarrollador como yo, el hecho que instalar un entorno de desarrollo se convierta en una tarea simple facilita mucho las cosas.

En este artículo os guiaré a través de una instalación sencilla de SharePoint 2010 Server sin entrar en detalles técnicos y de configuración que deberíais tener en cuenta a la hora de instalar una granja real en un entorno de producción. Os recomiendo que para instalaciones reales sigáis las guías de Microsoft que podéis encontrar aquí:

http://technet.microsoft.com/en-us/library/cc303422(office.14).aspx

Lo primero que tenemos que hacer es seleccionar la opción de instalar los prerrequisitos de software necesarios.

image

A continuación nos aparecerá la pantalla de bienvenida a la instalación de prerrequisitos, donde veremos la lista de componentes que el sistema va a instalar. Para continuar pulsamos el botón siguiente.

image

Aceptamos los términos de la licencia…

image

Una vez se acaban de instalar los prerrequisitos es necesario reiniciar la máquina para finalizar con la instalación.

image

Sin necesidad de que hagamos nada el programa de instalación finalizará sus tareas y nos informará de ello.

image

Una vez finalizada la instalación de los prerrequisitos es necesario volver a ejecutar el programa de instalación, pero esta vez seleccionaremos la opción de instalar SharePoint Server.

image

Lo primero quen os pedirá el programa de instalación es el número de serie que queremos utilizar. Según el número que utilicemos tendremos una instalación standard o enterprise.

image

Una vez indicado el tipo de instalación que queremos, tenemos que aceptar los términos de la licencia de software.

image

Lo único que nos va a pedir el asistente de instalación son las rutas donde queremos instalar el producto y donde queremos almacenar los ficheros de índices en caso de utilizar el servidor como indexador de contenidos. En este caso he dejado las rutas predefinidas pero tenemos que plantearnos lo que queremos poner aquí en una instalación real, donde nos puede interesar poner los archivos de índice en un disco separado del de sistema, por ejemplo.

image

Una vez pulsado el botón de instalar nos aparecerá la barra de progreso indicando las acciones que está efectuando el instalador.

image

Y en el momento en que éste termina nos ofrecerá la posibilidad de ejecutar el asistente de configuración de SharePoint, donde indicaremos todo aquello que el sistema necesita para ser configurado.

image

image

image

Tras una pantalla de bienvenida y un mensaje advirtiendo de que algún servicio puede ser reiniciado durante el proceso de configuración aparece la primera cuestión que nos plantea el asistente de configuración: conectar el servidor a una granja existente o crear una nueva granja. Seleccionaremos la primera opción únicamente si ya disponemos de una granja de SharePoint y lo que queremos hacer es añadir un servidor extra.

image

Si estamos creando una nueva granja necesitaremos indicarle el nombre del servidor de base de datos y las credenciales de un usuario con permiso para acceder a éste.

image

A continuación, una de las muchas novedades de esta versión de SharePoint: la passphrase. El sistema utiliza esta contraseña para cifrar las comunicaciones entre los diferentes componentes de la granja. El sistema te pedirá este dato para añadir nuevos servidores a la granja.

image

Finalmente deberémos especificar si queremos utilizar seguridad NTLM o Kerberos para nuestra instalación. A no ser que sepáis perfectamente lo que estáis haciendo, seleccionad NTLM. También podemos especificar el puerto que queremos utilizar para nuestra administración central.

image

image

Por último, tras un resumen de toda la información que hemos indicado, el asistente comienza a configurar el sistema.

image

Tras unos minutos el sistema nos muestra los resultados de la configuración del sistema.

image

Y un mensaje preguntando si queremos participar en el programa de mejora de la experiencia de los clientes recogiendo información sobre el uso que le damos a SharePoint.

image

A partir de aquí, otra de las novedades en cuanto al proceso de instalación. Si habéis trabajado con SharePoint 2007 sabréis que ahora llegaba el momento de configurar los servicios compartidos y, los que hayáis oído algo de SharePoint 2010 sabréis que ya no existen como tal, sino que se dividen en un conjunto de aplicaciones de servicio independientes. La configuración de estas aplicaciones de servicio podría resultar muy compleja pero, como se puede apreciar en la siguiente figura, Microsoft nos hace automáticamente buena parte del trabajo mediante un asistente.

image

Lo único que nos pedirá el sistema es qué cuenta de servicio queremos utilizar para configurar los servicios. Os recomiendo en este punto leer acerca de las cuentas manejadas porque tienen bastantes puntos de interés para aquellos que van a tener que mantener un sistema SharePoint.

image

Y por último los servicios que queremos tener disponibles.

image

Tras aceptar la pantalla anterior SharePoint dedicará unos minutos a configurar todos y cada uno de los servicios seleccionados.

image

Y nos permitirá crear si así lo deseamos nuestra primera colección de sitios con la plantilla que nos interese.

image

Y esto es todo. Se nos mostrará una pantalla resumen con información acerca del sistema que acabamos de configurar.

image

Y tendremos acceso a la Administración Central de SharePoint con la granja totalmente configurada para trabajar.

image

En realidad hay algunos servicios que no están configurados totalmente, como por ejemplo el servicio de sincronización de perfiles de usuario con nuestro directorio activo, pero el sistema es totalmente funcional, especialmente si estamos hablando de un entorno de pruebas.

lunes, 3 de mayo de 2010

El desplegable de plantillas de página de SharePoint 2010 deja de funcionar

Hoy me ha tocado pelear con una de esas cosas que tanto me gustan. Algo que funcionaba pero que, de repente, deja de funcionar. Además, buscas información al respecto y no encuentras nada. Normalmente tienes dos opciones: o bien comienzas el desarrollo desde cero y vas incorporando todas las cosas que has creado una a una hasta ver la causante del estropicio, o bien intentas depurar el error de una manera más o menos sistemática. La elección variará en función del número de elementos que has incorporado en tu desarrollo y, en mi caso, la mejor opción era la segunda. Veamos que ha pasado:

Síntoma
De repente, el selector de plantillas de página (ver figura) deja de desplegarse como solía hacer.

image

En su defecto aparece un error de javascript en la línea 334 del fichero cui.debug.js.

(*) Nota: el comportamiento se ha detectado en una versión no final de SharePoint 2010. Posiblemente en la versión final encontraremos que en lugar de utilizar el fichero cui.debug.js utilizaremos el fichero cui.js, que es el mismo fichero pero optimizado para su uso en producción. Para depurar el error es aconsejable renombrar el fichero cui.js a cui.bak.js y el fichero cui.debug.js a cui.js. una vez solucionado el problema debemos volver a dejarlo todo como estaba.

En busca del error…
Si abrimos el fichero en cuestión (lo localizaréis en la carpeta TEMPLATE\LAYOUTS bajo el directorio 14) y nos situamos en la línea que está dando el error veremos lo siguiente:

CUI.Builder.convertNodeToJSON = function(node) {ULSpEN:;
    var $v_0;
    $v_0 = '{';
    $v_0 += '\"name\" : \"';
    $v_0 += CUI.NativeUtility.ecmaScriptStringLiteralEncode(node.nodeName);

El error ocurre porque el valor del parámetro node que le llega a la función es nulo. La verdad es que es poca información para saber qué es lo que está pasando, así que seguimos la pila de llamadas hacia atrás para ver dónde está realmente el problema. Tras un rato buscando di con la raíz del problema en la línea 3650: $v_5 = CUI.Builder.$CA($v_0.PopulationXML); El valor de $v_0.PopulationXML era el del siguiente listado.

<MenuSection Id='Ribbon.WikiPageTab.PubPageLayoutGroup.ChangePageLayout.Menu.Layouts' Title=''>
  <Gallery Id='Ribbon.WikiPageTab.PubPageLayoutGroup.ChangePageLayout.Menu.Layouts.Gallery' ElementDimensions='Size72by96' Width='4' Command='ChangePageLayout'>
    <GalleryButton id='Ribbon.WikiPageTab.PubPageLayoutGroup.ChangePageLayout.Item5' InnerHTML="&lt;div style='width:72px;height:82px;white-space:normal;'&gt;&lt;img src='http://server/_catalogs/masterpage/en-US/Preview Images/ArticleLeft.png' style='width:72px;' /&gt;&lt;br/&gt;&lt;span class='ms-cui-ctl-mediumlabel'&gt;2 columns 75-25 with menu&lt;/span&gt;&lt;/div&gt;" Alt='2 columns 75-25 with menu' CommandType='OptionSelection' MenuItemId='5' CommandValueId='61' Command='ChangePageLayout' QueryCommand='QueryChangePageLayout' />
    <MenuSection Id='Ribbon.WikiPageTab.PubPageLayoutGroup.ChangePageLayout.Menu.Layouts' Title='Project Page'>

Como se puede apreciar, tras el elemento GalleryButton se abría un nuevo elemento MenuSection sin cerrar previamente los elementos Gallery y MenuSection anteriores. Al ver esto y estudiar en detalle a qué hacía referencia el elemento GalleryButton que estaba fallando me di cuenta que hacía referencia a una plantilla de página que había creado para un nuevo tipo de contenido de publicación.

Solucionando el problema
La solución más rápida consiste, evidentemente, en eliminar el elemento que está causando el error. Ya sea conectándonos con SharePoint Designer o directamente a la librería _catalogs/masterpage y eliminando la plantilla incorrecta (lo podéis ver mirando el atributo Alt del elemento GalleryButton del listado anterior.

Esto es una solución rápida al problema, pero el asunto no estará resuelto hasta que no hayamos vuelto a añadir, esta vez de manera correcta, la plantilla de página a nuestro sitio de publicación. En una próxima entrada publicaré cómo crear plantillas de publicación asociadas a tipos de contenido.

En cualquier caso, y para no acabar esta entrada sin ofrecer la solución real al problema, os voy a explicar cual era la causa real del problema. Como siempre, un error tonto: el tipo de contenido asociado a la plantilla de página no estaba correctamente instalado en la colección de sitios.

Resumiendo, cuando no os funcione el desplegable de plantillas de página aseguraros que todos los tipos de contenido relacionados con plantillas de página de la librería _catalogs/masterpage aparecen en la lista de tipos de contenido de la colección de sitios.