SharePoint 2010. Sitios públicos en España

Sitios de Publicación es la gran funcionalidad desconocida de SharePoint. Es la que permite crear sitios web aprovechando las capacidades de gestión de contenido (aprobación, control de versiones, etc.) y las características de páginas maestras y diseños de páginas para tener un CMS donde publicar información, todo esto con un editor WYSIWYG y la potencia de los Web Parts que vienen o que podemos desarrollar.

Hace unos meses empezamos un proyecto con un cliente que se había desarrollado su propio CMS, basado en una aplicación web .NET y unos servicios web que se comunican con las interfaces de usuario (sitio público o sitio de administración) mediante el uso de XML. Todo esto se traducía en el mantenimiento de unos 40 sitios públicos por parte del equipo de desarrollo y que los autores de contenido no tenía la aplicación adecuada para la generación del mismo, tan solo podían introducir los textos, ya que para poder elegir la plantilla de las páginas o el contenido de la misma que no fuera texto, necesitaban de un desarrollo.

Cuando nos encontramos con este problema nuestra primera propuesta fue elegir un CMS y hacer la implantación, tanto a nivel de desarrollo como a nivel de usuarios autores. Después de alguna demo, se decidió por SharePoint por los siguientes motivos:

  • Extensión de la plataforma. La muestra de sitios públicos usando SharePoint es bastante importante, a lo mejor no llega al nivel de DNN u otros, pero va creciendo.
  • Ayuda en el desarrollo. Aunque no lo parezca, desarrollar para SharePoint es tan sencillo como desarrollar un sitio web, y se valoró la aportación de Microsoft y la comunidad en documentación y blogs con artículos de ayuda.
  • Delegación de responsabilidad. Con esta gran cantidad de sitios públicos, era importante que los autores de contenido tengan el control de los sitios, tanto de los contenidos, como de las diseños de página, como de la aprobación de los mismos.
  • WYSIWYG. Aunque no se le dio mucha importancia en la decisión, los usuarios han valorado positivamente que según van creando contenido, puedan ir viendo como se va a ver y que puedan maquetar usando Web Parts, sin necesidad de pedir un desarrollo a medida.

Todo esto se implantó con un modelo de mentoring, formación, consultoría y desarrollo. Vamos, que hemos implantado un equipo con desarrolladores y diseñadores del cliente y de GSC, y se ha dado la formación necesaria tanto a los desarrolladores como a los usuarios para que pasen a tener el control de lo que publican.

Después de tres meses, hemos publicado tres sitios con la satisfacción de que, después de un trabajo duro internamente, el cliente está muy contento y dos de ellos se encuentran entre los 10 mejores sitios en España.

image

Los sitios son:

Ahora nos toca seguir desarrollando nuevos sitios (ya tenemos varios en cola) y que estos estén disponibles en varios idiomas.

 

Saludos a todos…

SharePoint 2010. Personalización de formularios de lista con InfoPath

En SharePoint 2010 podemos utilizar InfoPath 2010 para personalizar los formularios de Alta, Edición o Visualización de un elemento de una lista. En las acciones que tenemos disponibles en la ribbon de lista, tenemos la opción que nos permite personalizar el formulario.

InfoPathListForm-1

Una vez que tenemos el diseñador de InfoPath, podemos empezar a personalizar el formulario. Por ejemplo, podemos cambiar el aspecto y darle una imagen más corporativa, deshabilitar controles para que sean de sólo lectura o poner validadores utilizando las reglas de validación de InfoPath.

Validar el campo Email

Seleccionamos el campo Email y añadimos una regla para que compruebe que el email introducido sea correcto.

InfoPathListForm-2

Vistas y formularios

Las listas tienen por defecto tres vistas o formularios, Alta, Edición y Visualización. Con InfoPath podemos crear diferentes vistas para cada uno de estos formularios. En la sección de Page Design de InfoPath, podemos diseñar otras vistas del formulario, para, por ejemplo, que la vista de Edición tenga el campo Last Name de sólo lectura. Creamos una nueva vista, diseñamos el formulario y lo publicamos a la lista.

InfoPathListForm-3

Una vez que lo hemos publicado, tenemos que especificar a la lista que vista de InfoPath va a usar para cada acción. En la ribbon de la lista tenemos la opción para personalizar estos formularios. Seleccionamos la opción de Edit Form del tipo de contenido y, editando el Web Part de InfoPath form, podemos seleccionar la vista de edición que hemos creado.

InfoPathListForm-5

Alta

InfoPathListForm-6

Edición

InfoPathListForm-8

Visualización

InfoPathListForm-7

Gracias a las múltiples funcionalidades que nos ofrece InfoPath, podemos personalizar los formularios sin necesidad de programación (Event Receiver, jQuery, etc.) y mejorar las capacidades de nuestras listas. Ahora nos queda aprender ese gran desconocido, InfoPath, para poder ofrecer estas capacidades.

 

Saludos a todos…

Un año más nos veremos en la Tenerife Lan Party

En la Tenerife Lan Party se desarrolla un lado profesional, TLP+Innova, que ofrece, al mundo profesional de las nuevas tecnologías en Canarias, un punto de encuentro donde unirse, exhibirse y crear sinergias.

Este año, desde TenerifeDev, colaboramos con dos conferencias:

Office 365. Los servicios en la nube

Día: Jueves 21 de Julio a las 11

Ponente: Alberto Diaz Martin

Office 365 Es poder obtener acceso al correo electrónico, documentos, contactos y calendarios en cualquier lugar, lo que le permite estar siempre al día. Son las conocidas aplicaciones de productividad de Microsoft que ya usa su equipo. Es confiabilidad y seguridad de calidad empresarial. Es ofrecer eficiencia y control de TI para adaptarse a las exclusivas necesidades de su organización. Y es un servicio integral de pago por uso con un precio asequible. Pero esto es solo el comienzo. Vente y súbete con nosotros a la nube empresarial.

DotNetNuke: CMS y plataforma de aplicaciones en Windows Azure

Día: Jueves 21 de Julio a las 12

Ponente: David J. Rodriguez

DotNetNuke es un proyecto open source, la plaforma de gestión de contenidos para la construcción de sitios y aplicaciones web basada en Microsoft .NET más ampliamente adoptada a nivel global. Las organizaciones usan DotNetNuke para desarrollar y desplegar rápidamente sitios web interactivos y dinámicos, intranets, extranets y aplicaciones web. Con el soporte para granjas de servidores y el DotNetNuke Azure Accelerator, se presenta sobre Windows Azure como una solución de gestión elástica de contenidos en la nube.

SharePoint 2010. No se puede borrar una columna de sitio salvo que utilicemos el SQL Server

Llevo unos meses dando varios cursos de Administración de SharePoint 2010 y cuando sale el tema del SQL Server suelo insistir bastante en que debería de ser transparente para nosotros, que no debemos tocar nada en él, salvo administrar las bases de datos, monitorizar el rendimiento y poner los planes de mantenimiento adecuados en las bases de datos.

La semana de uno de los cursos, nos encontramos con un error grave en una máquina virtual de desarrollo. Estábamos creando un tipo de contenido desde Visual Studio y nos equivocamos con uno de los tipos de los campos. Sin darnos cuenta, hicimos el deploy y el campo se creó, pero no era capaz de añadirlo a la lista porque la definición de este era incorrecta. Nos equivocamos al escribir el tipo de campo elección y pusimos Choise.

 Sharepoint2010-FailField-1

Si vamos a la galería de columnas de sitio para eliminarla nos encontramos con el siguiente error que indica que el campo Choise no está instalado correctamente y que lo tenemos que eliminar.

Sharepoint2010-FailField-2

¿Pero si eso mismo estaba intentando hacer? Nada, que vamos a ver si tiramos de Powershell para eliminar el campo y obtenemos  un error parecido al intentar obtener el campo para eliminar. Para esto obtenemos la colección de sitios (Get-SPWeb) y intentamos obtener las columnas de sitio con el siguiente error al intentar mostrar la información del campo erróneo.

Sharepoint2010-FailField-3

Solución

Pues, aunque me duela decir esto, no nos queda otra que buscar en la base de datos de contenido la definición de la columna y eliminarla. Para obtener la base de datos de contenido, usando Powershell, utilizamos el objeto Get-SPWeb y accedemos al Site.ContentDatabase

$web = Get-SPWeb http://intranet.contoso.com

$web.Site.ContentDatabase

 

Id               : e5c5e20a-5a9f-406c-b9f6-28923750cecd

Name             : WSS_Content_e58f8446cde041318a305696f040d32a

WebApplication   : SPWebApplication Name=Intranet

Server           : demo2010a

CurrentSiteCount : 20

Nos vamos al SQL Server Management Studio y ejecutamos el siguiente query en la tabla ContentTypes buscando por la IDde la columna:

SELECT * FROM ContentTypes WHERE Definition LIKE ('%ID DEL CAMPO%')

Sharepoint2010-FailField-4

y ahora, CON MUCHO CUIDADO, eliminamos esa fila para que podamos volver a tener nuestra galería de columnas de sitio y de tipos de contenido funcionando correctamente.

Importante

  • No hacer el DELETE sin hacer previamente la consulta, te puede pasar que elimines 36 filas sin darte cuenta Sonrisa
  • Realizar un Backup de la base de datos de contenido antes de tocar nada.
  • No realizar estas pruebas en SharePoint Online sin haber probado completamente la solución en un servidor de desarrollo. En SharePoint Online no tenemos acceso al SQL Server para eliminar la definición de columna incorrecta.