No voy a meterme en tareas de diseñadores, entre otras cosas, porque no es ni mucho menos mi especialidad, pero dada mi labor diaria con proyectos con SharePoint, sí que me gustaría preguntar y ver si una de las herramientas/utilidades que vienen en SharePoint 2013 como es el Design Manager es realmente útil o no?.
¿Que es el Design Manager?
El Design Manager es una serie de herramientas/procesos que vienen de serie en SharePoint 2013 para «facilitar» la vida a los diseñadores, es un intento de que los diseñadores trabajen en SharePoint igual que si tuvieran cualquier otro tipo de proyecto web. Se facilita que puedan utilizar cualquier herramienta de diseño favorita para generar el HTML preferido, y eso sí, añadirle las marcas que necesitan para que este HTML pueda utilizar herramientas de SharePoint (WebParts) con una serie de CMDLETs que lo puedes hacer vía web.
Cuando nosotros pulsamos sobre Design Manager tenemos 7 posibilidades:
1.- Crear Canales de Visualización (Device Channel)
Los que estuvisteis presentes en mi charla en la Iberian SharePoint Conference, ya sabéis mi opinión 🙂 Y es que esta utilidad no la vamos a a utilizar nunca. Ya que es una utilidad que carece de sentido hoy en día. Si quiero facilitar la vida a los diseñadores no les voy a pedir que me hagan una MasterPage/PageLayout por cada dispositivo en la que quiero que se muestre mi web. Para eso esta el diseño «Responsive» no? Para que nuestro diseño se adapte a la pantalla del dispositivo en el que se esta viendo nuestra Web. Yo creo que esta opción la querían incluir en la versión 2010 no les dió tiempo y ya que la tenian implementada, pues la han añadido en la versión 2013.
Las opciones de la 3 a la 7 son opciones que los diseñadores utilizarán muy a menudo. Bien porque pueden trabajar de dos formas :
- Implementando el HTML e incorporarlo a SharePoint tras una serie de adaptaciones se convierten en elementos de SharePoint: Master Pages, PageLayouts o Display Templates. En la revista CompartiMOSS se han escrito varios artículos sobre este tema uno de Santiago Porras sobre los Display Templates y otro de Alberto Diaz sobre el Design Manager más genérico.
- Implementando los PageLayouts como se hacia en anteriores versiones.
El punto 8 era el que realmente tenia mucho interés para mí: ver como funciona y por eso, es el que realmente puedo valorar. La idea es que pulsando este botón, todos los aspectos relativos al diseño te los extrae en un paquete .WSP y lo podemos instalar en otro entorno. Lo cual como idea y funcionalidad me parece un gran avance ya que como comenté cuando escribí este post uno de los grandes cuellos de botella en los proyectos de SharePoint es la relación desarrollador-diseñador, más bien el solapamiento entre ambos.
Mis conclusiones con esta herramienta es que aunque sea algo positivo creo que no cubre las espectativas ni invergaduras de un proyecto de SharePoint. En primer lugar me parece muy interesante que tenga una utilidad donde me introduzcas todo lo que hace falta para el diseño, pero porque no puedo se incluyen más elementos de SharePoint por ejemplo, las listas, páginas, workflows, etc.
Otro aspecto es que no me permite seleccionar qué elementos quiero importar, por ejemplo, tengo un entorno y quiero que traerme solo los diseños que voy a utilizar, pero el sistema me obliga a traerme todos los cambios.
Otro de los aspectos que hay que tener en cuenta, es qué tipos de contenido se incluyen, por ejemplo, yo tengo un tipo de contenido que incluye un elemento de tipo Taxonomía. Este tipo de elemento no lo incluye en el paquete. También, por ejemplo, si yo dentro de un PageLayout hago referencia a un tipo de lista fija, cuando lo despliegue en el nuevo entorno tengo que tener dos consideraciones: naturalmente que la lista esta creada y otro que tenga el identificador para editar el PageLayout y funcione correctamente.
También tenemos que darnos cuenta que el Design Manager solo es valido para sitios de publicación, para entornos de colaboración no esta implementado. Con lo cual, si por ejemplo, en una Intranet tenemos unos estilos, y unos display templates debido a que hacemos uso del buscador pues tenemos que encontrar la fórmula de pasar estos datos entre entornos.
¿Realmente que es lo que hace esta opción del Design Manager?
Al final lo único que hace es subir ficheros mediante una opción de Module que ya teníamos implementado, por ejemplo, a la hora de subir los ficheros de css, javascript en nuestros diseños. Si sois igual de curiosos que yo, abrir con un fichero ZIP el contenido que tiene el WSP del paquete de diseño:
Si nos puede más la curiosidad, abriremos los xml que vienen dentro del wsp y allí es donde se indica que se copien los archivos de diseño dentro de la biblioteca de sharepoint «_catalogs». ¿Esto es algo que no podemos hacer nosotros? Pues la verdad es que es relativamente simple hacer esto ¿Cómo? Pues con el siguiente código es un ejemplo de ello:
public static bool CreateMaster(Clases.MasterPages masterPages,string url)
{
using (SPSite spSite = new SPSite(url))
{
using (SPWeb web = spSite.OpenWeb())
{
string[] fileSystem = Directory.GetFileSystemEntries(masterPages.File);
foreach (string item in fileSystem)
{
var direccion = item.Replace(masterPages.File, "").Replace("\\", "");
var fileUpload = System.IO.File.ReadAllBytes(item);
web.RootFolder.SubFolders["_catalogs"].SubFolders["masterpage"].Files.Add(direccion, fileUpload, true);
}
}
}
return true;
}
Conclusión
Yo creo que es una herramienta útil pero siempre que se den unas circunstancias de poca personalización y pocos elementos funciona bastante bien. Si por el contrario, tenemos un sitio con mucha personalización, yo aconsejo que realicemos esta labor de forma manual, porque siempre podremos adaptarnos a las necesidades que buscamos para dar un resultado excelente y sacar la mayor potencia de SharePoint.
Además, también de cara a pensar en el futuro en el que la mayor parte de los desarrollos van a ser en la nube, siempre es bueno no esperar los asistentes mágicos que nos proporciona Microsoft y tener el control de lo que realizamos.