November 2010 - Artículos
Aunque Office 365 es la última versión de los llamados servicios y aplicaciones de productividad empresarial de Microsoft en la nube, el camino hasta llegar a esta nueva versión que tanto promete y tan buena pinta tiene empezó hace ya unos 7 años cuando a nadie se le había pasado por la cabeza que todo este movimiento hacía la nube iba a tener lugar…nadie, salvo Microsoft que realizó alguna que otra adquisición en esta línea y que lanzo en el año 2003 la primera versión de Microsoft Office Live Meeting. Desde entonces y hasta ahora, se han ido sucediendo hitos que llevarán finalmente a Office 365 durante la primera mitad del año que viene: Live@Edu, Microsoft Online Services, BPOS,…y para conocer más estos orígenes, os recomiendo este post de Mary Jo Foley…más que interesante.

Cuando diseñamos soluciones sw en general, lo hacemos en base a una serie de requisitos que el cliente nos ha transmitido o que nosotros hemos extraído a partir del análisis de las necesidades del cliente, de las conversaciones que hemos tenido con él, del análisis de su forma de trabajar, etc. Con SharePoint pasa lo mismo, y tanto en un caso como en otro, toda ayuda para diseñar la solución siempre es bienvenida. En el caso de SharePoint, Microsoft nos ha suministrado una serie de documentos que facilitan la planificación de soluciones en cuanto a que elementos propios de la plataforma se necesitan, que configuraciones son necesarias, etc. Podéis acceder a los documentos de planning en este enlace.

El concepto de aprovisionamiento de sitios de SharePoint 2010 implica las distintas posibilidades que tenemos disponibles para crear nuevos sitios de SharePoint acuerdo a una plantilla de sitio o una definición de sitio. Para crear nuevos sitios, SharePoint 2010 nos aporta las siguientes alternativas
-
Plantillas Web (Web Template), que es una novedad que incorpora SharePoint 2010 en cuanto a que nos permite de forma flexible la creación de una definición (archivo onet.xml) que únicamente se usará una vez para realizar el aprovisionamiento del sitio: cuando se crea. Esta técnica asegura que no hay referencias a la definición del sitio en tiempo de ejecución de forma que se simplifica su mantenimiento.
-
Definiciones de sitio (Site Definition), que es la técnica clásica heredada de SharePoint 2010 que consiste en crear una definición a partir de la comunicación de dos archivos ubicados físicamente bajo el directorio “14” del servidor de SharePoint: WebTemp*.xml y onet.xml. El primero de los archivos se utiliza para añadir la plantilla en SharePoint. El segundo, contiene todas la descripción de todas las características que se van a activar cuando se crea el sitio.
-
Plantilla de portal de sitio (Portal Site Template), que permiten definir jerarquías de sitios de SharePoint especificando las definiciones de sitio que se van a provisionar y el orden cuando se crea un nuevo portal.
En lo que a técnicas para el aprovisionamiento de sitios, tenemos las siguientes posibilidades:
-
Engrapado de características (Feature Stapling), técnica que permite personalizar y extender definiciones de sitio existentes. Esta técnica se usa para superar la limitación de que no se pueden cambiar el archivo onet.xml de una definición de sitio una vez que está en uso y para añadir la posibilidad de versionar definiciones de sitio.
-
Plantillas de sitio (Site Templates), guardando un sitio existente como plantilla tal y como ya se ha comentado. Un problema de esta técnica es que no está soportada para el caso de sitios de publicación como ya sucedía en SharePoint 2007. Además, hay que tener en cuenta que esta plantilla sólo va a estar disponible para uso en la Colección de Sitios dónde reside, para poder usarla de forma global tendremos que importarla en Visual Studio 2010 y hacer el correspondiente despliegue.
-
Plantillas Web (Web Templates), que se crean de forma manual en Visual Studio 2010 y se asocian a la correspondiente feature para su despliegue. Como se ha comentado, esta técnica nos permite desplegar plantillas sin dependencias con archivos físicos en el servidor, lo que la convierte en la opción “perfecta” para crear plantillas para la versión de SharePoint en la nube.
-
Definiciones de Sitios (Site Templates), cuya creación se facilita en Visual Studio 2010 a partir de la correspondiente plantilla de proyecto disponible en el entorno de desarrollo.
Para finalizar el post os dejo algunas referencias interesantes relativas a este tema:
Dentro de la variada gama de aplicaciones y servicio que tendremos próximamente en la nube, Microsoft está trabajando en una variante de System Center pensada para facilitar la vida a los administradores de base de datos a la hora de identificar problemas en sus servidores. El servicio en cuestión , actualmente en CTP, que facilitará esta tarea se denomina Atlanta y podéis encontrar más información en esta página.

Como ya he comentado en otros posts, SharePoint 2010 incorpora un rico modelo de objetos en cliente para facilitar el desarrollo de aplicaciones que interactúen con sitios de SharePoint de forma remota. Por debajo, lo que tenemos son los correspondientes ensamblados (modelo de objetos .NET y Silverlight) y archivos .js (modelo ECMAScript) que habilitan que podamos crear estas aplicaciones e interactuar con SharePoint sin tener que realizar llamadas a los servicios web de la plataforma o tener que crearnos nuestros propios servicios. Como comentaba el amigo Alberto en este post en su blog, para facilitar el desarrollo de aplicaciones utilizando el modelo de objetos en cliente (sabores .NET y Silverlight) sin necesidad de tener instalado SharePoint 2010 en nuestro entorno de desarrollo, Microsoft ha creado el Client Objet Model Redistributable que podéis descargar desde este enlace. Más información en este enlace. Para más información sobre el modelo de objetos en cliente de SharePoint 2010 os recomiendo dos posts al respecto publicados en el blog:

Cuando trabajamos con SharePoint 2010 y utilizamos su rico modelo de objetos para desarrollar funcionalidad, tenemos que tener cuidado y seguir las buenas prácticas definidas por Microsoft a la hora de usarlos de forma correcta y evitarnos problemas de rendimiento, fugas y demás. Por suerte, para SharePoint 2007 disponemos de una estupenda guía en torno a como usar de forma correcta objetos tan habituales en el desarrollo para SharePoint como SPWeb o SPSite. Estas reglas siguen estando vigentes en SharePoint 2010, por lo que no viene nada mal tenerlas a mano:
Finalmente, para facilitar la localización de puntos críticos dónde podamos tener problemas de memoria os recomiendo las siguientes herramientas:
-
SPDisposeCheck, disponible para SharePoint 2007 y que también nos debería servir para SharePoint 2010.
-
ULSViewer para buscar fugas de memoria en los logs generados por SharePoint.
Como sabéis, ya tenemos desde hace varios días la primera CTP de la nueva versión de SQL Server cuyo nombre en código es “Denali”. Si queréis disponer más información sobre las novedades que tendremos en la plataforma, os recomiendo el nuevo centro de recursos que ha liberado Microsoft recientemente.

Como sabéis, Visual Studio 2010 incorpora de serie una serie de herramientas (plantillas, diseñadores y opciones de despliegue) que facilitan la vida al desarrollador a la hora de crear artefactos de SharePoint, realizar la depuración de los mismos y el despliegue. En este post vamos a ver como desplegar una página maestra de SharePoint 2010 utilizando Visual Studio 2010:
-
Lo primero que necesitamos es una página maestra, y para ello tenemos tres opciones:
-
En mi caso, he optado por la última opción y me he descargado de un sitio de SharePoint 2010 (de la galería de páginas maestras) la página maestra minimal.master.
-
En Visual Studio 2010, creamos un proyecto de tipo “Empty Sharepoint Project” denominado SPMasterPage. Elegimos como tipo de despliegue “Deploy as farm solution”.
-
Añadimos al proyecto un elemento de tipo “Module”. Además, se creará automáticamente la correspondiente característica que podemos personalizar utilizando el diseñador de características de Visual Studio 2010.
-
Eliminamos el archivo Sample.txt que se crea dentro del correspondiente SharePoint Project Item (SPI) y añadimos la página maestra “minimal.master” que nos hemos descargado antes. Personalizamos la página maestra de acuerdo a nuestras necesidades. Por ejemplo, podemos cambiar el nombre del PlaceHoler Main a “PlaceHolderCustomMain”.
-
Cambiamos el nombre de la página maestra a “CustomMaster.master”. Comprobamos como de forma automática se actualiza el contenido del archivo “elements.xml” que se ha creado al añadir el elemento de tipo Module al proyecto.
-
Configuramos el archivo “elements.xml” de la siguiente forma:
1: <?xml version="1.0" encoding="utf-8"?>
2: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3: <Module Name="CustomMaster" List="116" Url="_catalogs/masterpage">
4: <File Path="CustomMaster\customMaster.master" Type="GhostableInLibrary" Url="customMaster.master" IgnoreIfAlreadyExists="FALSE" />
5: </Module>
6: </Elements>
-
Como se puede apreciar en la configuración del archivo “elements.xml”, hemos especificado los parámetros que permite realizar el provisionamiento de la página maestra personalizada:
-
Por una parte, en el elemento <Module> especificamos la ruta relativa dónde se va a copiar el archivo que se corresponde con la galería de páginas maestras (_catalogs/masterpage).
-
Por otra, en el elemento <File> especificamos la ruta relativa dónde se encuentra el archivo a provisionar (atributo Path), el tipo de provisionamiento (atributo Type).
-
Seguidamente, hacemos el despliegue de la solución con Visual Studio 2010 y comprobamos que la nueva página maestra se ha creado en la galería de páginas maestras del sitio y está lista para ser usada.

Y hasta aquí llega este post sobre como desplegar páginas maestras de SharePoint 2010 por medio de Visual Studio 2010.
Una de las características que hacen a SharePoint realmente potente en cuanto a su uso es el de la experiencia de usuario unificada en los navegadores más comúnmente utilizados: Internet Explorer (IE), Firefox (FF) y Safari. De hecho, a la hora de hablar de navegadores soportados por SharePoint tenemos que recordar que Microsoft define los dos siguientes niveles:
- Nivel 1, en el que se se suelen incluir a IE 7 y 8 (Versiones 32 bits) y FF 3.x (para S.O Windows y con algunas limitaciones).
- Nivel 2, en el que se suelen incluir a IE 7 y 8 (versiones 64 bits), FF 3.x (para S.O no Windows) y Safari 4.x.
La información más completa en cuanto a la experiencia de usuario en estos navegadores la podéis encontrar en este enlace de TechNet, en el que se indican las limitaciones para cada tipo de navegador. Volviendo al título del post, con SharePoint 2010 se ha mejorado notablemente la experiencia de uso en Safari tanto a nivel de uso de sitios de SharePoint como en la integración con Office para MAC como podéis ver en el siguiente post: SharePoint 2010 on a Mac with Office for Mac 2011.

Una pregunta que aparecía estos días en los foros sobre SharePoint (en los que muy de cuando en cuando me dejo caer) era sobre como poder cambiar de una forma sencilla el número de niveles que se muestran en el menú vertical de un sitio de SharePoint. Para poder hacer esto, un procedimiento es el siguiente:
-
Abrir el sitio con SharePoint Designer 2010.
-
Editar la página maestra.
-
Localizar en la página maestra el tag que hace referencia al menú vertical de SharePoint y cambiar el valor de las propiedad StaticDisplayLeves a y MaximumDynamicDisplayLevels a uno. Tras guardar los cambios conseguiremos el efecto deseado.
1: <SharePoint:UIVersionedContent UIVersion="4" runat="server">
2: <ContentTemplate>
3: <SharePoint:AspMenu
4: id="V4QuickLaunchMenu"
5: runat="server"
6: EnableViewState="false"
7: DataSourceId="QuickLaunchSiteMap"
8: UseSimpleRendering="true"
9: UseSeparateCss="false"
10: Orientation="Vertical"
11: StaticDisplayLevels="1"
12: MaximumDynamicDisplayLevels="1"
13: SkipLinkText=""
14: CssClass="s4-ql" />
15: </ContentTemplate>
16: </SharePoint:UIVersionedContent>
Y hasta aquí llega este rápido tip sobre como personalizar de forma sencilla el menú vertical de un sitio de SharePoint 2010.
Siguiendo con la serie de posts sobre como añadir acciones personalizadas en la interfaz de usuario de SharePoint 2010, en esta nueva entrega vamos a bajar un poco más al detalle de como se agregan acciones personalizadas en la Ribbon de SharePoint 2010. Os recuerdo los posts previos de la serie:
En este nuevo post de la serie me voy a detener en ver como podemos crear acciones personalizadas para ciertos tipos de lista de SharePoint: bibliotecas de documentos, listas de tipo anuncio, lista de tipo tareas, listas personalizadas, etc. En concreto, vamos a ver como crear una acción personalizada para una lista personalizada. Comencemos:
1: <?xml version="1.0" encoding="utf-8"?>
2: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
3: <CustomAction
4: Id="HelpButton"
5: RegistrationId="100"
6: RegistrationType="List"
7: Location="CommandUI.Ribbon"
8: Sequence="10"
9: Title="Botón de Ayuda">
10: <CommandUIExtension>
11: <CommandUIDefinitions>
12: <CommandUIDefinition
13: Location="Ribbon.ListItem.Manage.Controls._children">
14: <Button
15: Id="Ribbon.Documents.Manage.Controls.HelpButton"
16: Alt="Ayuda"
17: Sequence="501"
18: Command="HelpCommand"
19: Image32by32="/_layouts/images/SPCustomActionDemo/Logo_Ayuda.gif"
20: LabelText="Ayuda"
21: TemplateAlias="o1"/>
22: </CommandUIDefinition>
23: </CommandUIDefinitions>
24: <CommandUIHandlers>
25: <CommandUIHandler
26: Command="HelpCommand"
27: CommandAction="BLOCKED SCRIPTalert('¡Acceso a la ayuda!');"/>
28: </CommandUIHandlers>
29: </CommandUIExtension>
30: </CustomAction>
31: </Elements>
-
Como veis, en el XML que define la acción personalizada no estamos haciendo nada que no haya hecho en posts previos. Sin embargo, en este post voy a detenerme a explicar que es lo que estamos haciendo ya que tiene bastante miga.
-
A la hora de definir una acción para una lista o una biblioteca de documentos de SharePoint, lo primero que hay que identificar es el tipo de lista al que se va a aplicar la acción (más bien la plantilla de lista). Para ello, se utiliza la propiedad RegistrationID de la etiqueta <CustomAction>. Esta propiedad tomará valores 100 para una lista personalizada, 101 para una biblioteca de documentos, etc. Podéis encontrar los valores que identifican los distintos tipos de plantilla de lista en
este post de Mike Smith.
-
A continuación, la siguiente propiedad importante es el RegistrationType que identifica a quién se va a aplicar la acción personalizada:
-
A una lista, en cuyo caso pondremos el valor List.
-
A un tipo de contenido, en cuyo caso pondremos el valor Content Type.
-
A un tipo de archivo en cuyo caso pondremos el valor File Type.
-
En mi caso, los valores de estos dos parámetros son 100 y List, por lo que la acción personalizada se va a aplicar a todas las listas que se hayan creado en base a la plantilla “Custom list” de SharePoint. Seguro que alguno llegado este punto se preguntará: ¿Y si sólo quiero aplicar la acción a una lista en concreto?
-
A continuación, especificamos la localización de la nueva acción mediante la propiedad Location. Para la Ribbon, normalmente es Location=CommandUI.Ribbon.
-
Lo siguiente que tenemos que hacer es definir la acción personalizada en sí a través del elemento <CommandUIDefinition>. Las propiedades clave de este elemento son:
-
El grupo de la Ribbon dónde se va añadir la acción personalizada. Este grupo se especifica a través de la propiedad Location. Por ejemplo, para añadirla en la sección “New” de la pestaña “Elements” tenemos que especificar Location="Ribbon.ListItem.New.Controls._children". Podéis encontrar más información sobre los grupos de la Ribbon en
este enlace. De todos modos, las definiciones de las acciones de la cinta se encuentran en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML\CMDUI.XML. En mi caso, he añadido la acción personalizada en el grupo “Manage” de la cinta de gestión de la lista.
-
La propiedad “Command” apunta al comando definido en el elemento que define la acción que realizará la acción personalizada. Este comando se especifica en el elemento <CommandUIHandler>.
-
Además de estas propiedades, fijaros que hay otras que nos permiten:
-
Especificar la imagen en tamaño grande para la acción personalizada a través de la propiedad Image32by32.
-
Especificar la posición del comando dentro del grupo mediante la propiedad “Sequence”. Hay que tener cuidado de no utilizar un número de secuencia que ya esté ocupado por acciones existentes.
-
…
-
Finalmente, a través del elemento <CommandUIHandler> definimos el comando que se va a ejecutar cuando se pulsa sobre la acción personalizada de la cinta. En este caso, simplemente mostramos un alert de JavaScript.
-
Si queréis conocer los detalles de las propiedades de los distintos elementos que forman parte de la definición de una acción personalizada de la Ribbon, os recomiendo leeros este
enlace.
-
Finalmente, y una vez que tenemos configurada nuestra acción personalizada, basta con desplegarla en nuestro sitio y comprobar que la nueva acción aparece en la Ribbon de una lista personalizada y funciona sin problemas.

Para acabar el post, os dejo una serie de posts interesantes sobre la creación de acciones personalizadas para la Ribbon de SharePoint 2010:
Y hasta aquí llega esta nueva entrega sobre como añadir acciones personalizadas a la interfaz de usuario de SharePoint 2010.
De nuevo merodeando por los foros de SharePoint me encontré con una pregunta típica para la versión 2007 de SharePoint, pero que de momento nadie me ha hecho en torno a SharePoint 2010: ¿se puede instalar SharePoint 2010, y más en concreto, SharePoint Foundation sobre un Small Business Server(SBS) 2008? Y como en 2007, la respuesta es que sí. Para confirmarlo, os remito a este post del blog del equipo de SharePoint en el que se detallan los sistemas operativos sobre los que se puede instalar SharePoint 2010 y que ya recogí en este otro post del blog del CIIN. Como podéis ver, SBS 2008 se incluye en el listado
.

Como sabéis, las capacidades de búsqueda de SharePoint 2010 permiten buscar palabras clave o bien en el nombre de los archivos intexados o bien en el contenido de los mismos. Para que SharePoint 2010 pueda buscar en el contenido de los distintos archivos, es necesario que se instalen los correspondientes iFilters. En este sentido, para Office 2010 os podéis descargar los packs de iFilters disponibles desde este enlace.

Tal y como podéis leer en este post de Stefan Gossner, ya tenemos disponible “otra vez” la cumulative update (CU) de octubre para SharePoint 2010. Como siempre, y tal y como se ha demostrado con esta CU y los problemas que ha causado, cuidado si decidís instalar esta CU: aseguraros de probarla en entornos de test y en cualquier caso, yo recomendaría esperar un tiempo de “reposo” hasta que no recibamos ningún mensaje alarmante en torno a los hotfixes que contiene.

Pues eso, que ya tenéis disponibles para descarga los materiales del WebCast que impartió el amigo Gustavo el pasado martes 16 de noviembre sobre metadatos en SharePoint 2010. El WebCast como siempre que Gustavo interviene estuvo realmente entretenido y fue de lo más educativo
. Podéis descargaros los materiales desde esta carpeta de nuestro sito de SUGES.

Pues eso, ya queda menos para tener por fin una muy buena integración entre SAP y SharePoint a través de Duet Enterprise para SAP y SharePoint. La clave de la integración va a estar por un lado en los Business Connectivity Services de SharePoint (BCS) y por otro lado, en un Add-On que se instala del lado de SAP y que permite la integración bidireccional de datos de SAP en SharePoint a través del BCS. Además, de serie tendremos una serie de WebParts que faciliten la visualización de información de SAP en SharePoint…ahora a esperar a que salga el producto y sobre todo a conocer su precio de mercado.

Desde hoy ya tenemos disponible para descarga la nueva versión de la plataforma de comunicaciones unificadas de Microsoft conodida como Microsoft Lync Server 2010. Podéis ver los detalles de la liberación de la RTM de Lync Server en este enlace y descargaros una versión trial desde este otro enlace.

Siguiendo con la serie de posts sobre novedades de SSRS 2008 R2, en esta ocasión toca hablar de la nueva característica disponible en SSRS 2008 R2 para definir componentes compartidos entre múltiples informes. Como siempre, antes de empezar os recuerdo los posts previos de la serie:
En lo que a componentes compartidos se refiere, en SSRS 2008 R2 tenemos la posibilidad de:
-
Definir datasets compartidos que podamos re-utilizar en diversos informes. De esta forma, estamos definiendo una única consulta que se puede utilizar múltiples veces entre estos informes. Un dataset compartido se identifica en BI Management Studio, Repot Builder o Repor Builder mediante una flechita en la parte inferior del símbolo que representa el dataset.

-
Definir partes de informe, con SSRS 2008 R2 podemos publicar regiones de datos como componentes separados que pueden ser usados por otros desarrolladores en otros informes. Esta característica resulta especialmente interesante cuando es importante mantener cierta consistencia en el diseño de informes. La única pega es que todos estos componentes compartidos que publiquemos (en la Report Gallery) sólo pueden ser re-utilizados en Repot Builder 3.0.

Y hasta aquí llega el quinto post de la serie sobre novedades en SSRS 2008 R2.
Una excelente herramienta que nos puede facilitar la búsqueda de problemas y errores que nos esté provocando nuestro servidor favorito es el ULSViewer disponible para descarga a través de está pagina de MSDN Code Gallery. Tal y como podéis leer en este artículo del sitio de recursos de Gustavo, ULSViewer facilita la visualización de archivos ULs de una forma más amigable facilitando así la localización de información relevante sobre como se está comportando SharePoint (Versiones 2007 y 2010), errores que se estén produciendo, etc. La herramienta permite realizar operaciones de filtrado, ordenación, subrayado y admite la carga de archivos de log. Comentaros que a pesar de ser una herramienta muy recomendable, no está soportada de forma oficial por Microsoft. Aquí os dejo una capturas de pantalla sobre la sencillez de uso del ULSViewer:
Pues eso, desde SUGES os proponemos un nuevo evento en el que contaremos de nuevo con el “maestro” en el mundo de SharePoint: el amigo Gustavo
. Los detalles del evento, que podéis consultar en este enlace, son los siguientes:

Los grupos de usuarios de SharePoint de España (SUGES) y MOSSCA bajo el patrocinio de la Comunidad Hispanoamérica de SharePoint (HISPAPOINT) organizan un nuevo WebCast en el que conoceremos de la mano de Gustavo Vélez, MVP de SharePoint, las posibilidades que brinda SharePoint 2010 a través de las capacidades clásicas de metadatos y del nuevo servicio de metadatos administrados para facilitar la clasificación de la información mediante la creación de jerarquías y taxonomías de metadatos. La agenda que hemos preparado para la charla es la siguiente:
- Importancia de Metadatos en sistemas de almacenaje de documentos
- Metadatos “clásicos”: columnas y tipos de contenido (muy corto)
- Metadatos según SharePoint 2010:
- Navegación por Metadatos
- Organizador de Contenido
- Clasificación
- Palabras Clave de Empresa y Etiquetas Temáticas
- Etiquetas y Notas
- El Servicio de Metadatos Administrados
Datos de interés:
-
Audiencia: Desarrolladores, Personal de IT y Jefes de Proyecto.
-
Requisitos previos: Conocimientos de las plataformas SharePoint 2007 y SharePoint 2010.
-
Ponente: Gustavo Vélez es Solutions Manager (Director de Soluciones) de Avanade, una firma de consultoría global y MVP SharePoint. Cuenta con numerosos años de experiencia programando y diseñando con SharePoint y ha publicado varios libros y artículos en algunas de las revistas más importantes del sector en español, inglés y alemán. El autor también es webmaster de
www.gavd.net, el único sitio en español dedicado exclusivamente a SharePoint.
-
Fecha: martes 16 de noviembre a las 17:00.
-
Duración del evento: 2 horas.
-
Enlace de inscripción al evento:https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032467700&EventCategory=4&culture=es-ES&CountryCode=ES
Esperamos vuestra asistencia al WebCast este martes a las 17:00,
Más artículos
Página siguiente >