September 2011 - Artículos
Hace una temporada escribía un artículo, a título de referencia, sobre las fórmulas disponibles en SharePoint 2010 tanto para realizar validaciones a nivel de lista o columna como para poder crear columnas de tipo calculado. El caso es que, a raíz de una consulta en relación a su uso en MSDN, he decidido completar dicho artículo con algunas referencias adicionales en las que se muestra como usar dichas fórmulas tanto para SharePoint 2007 como para SharePoint 2010:
Además, hay que tener en cuenta que para ciertas fórmulas el separador por defecto no será la “,” que aparece en los ejemplos, sino el que tengamos configurado en nuestro servidor de acuerdo al idioma o cultura instalada. Pro ejemplo, un separador habitual es “;”, de manera que si por ejemplo estábamos aplicando la fórmula LEFT([Columna],3) y SharePoint nos devuelve el correspondiente error lo solucionaremos cambiándola por LEFT([Columna];3).

Hace un tiempo comentaba en este artículo sobre cuando se debería usar SPQuery y cuando LINQ To SharePoint a la hora de acceder a los datos de una lista de un sitio de SharePoint. Yendo un poco más allá, además de estas dos opciones disponemos de una serie de alternativas para el acceso a datos en listas de SharePoint que incluye a ambas:
-
Mediante consultas CAML que utilicemos en objetos de tipo
SPQuery y
SPSiteDataQuery. El uso de CAML introduce los inconvenientes ya conocidos de que las consultas no son fáciles de construir, de que dichas consultas las definimos “pegándolas” en código lo que dificulta la depuración,etc. Ahora bien, el mayor punto a favor de CAML es que sigue siendo el corazón para realizar operaciones de acceso a datos que en SharePoint 2010 incorpora novedades ya vistas en este blog como el soporte de Joins o la posibilidad de acceder a datos externos a través de consultar listas externas. En cuanto a la diferencia entre usar SPQuery y SPSiteDataQuery, la fundamental es que con el primero sólo podremos realizar consultas a listas del sitio actual mientras que con SPSiteDataQuery podremos realizar consultas a listas de varios sitios.
-
Mediante consultas LINQ To SharePoint, que nos permite definir consultas LINQ para realizar operaciones de datos contra listas de SharePoint y que incluye soporte de Joins además de la ya consabida ventaja de que tenemos tipado fuerte en la definición de las consultas, de que disponemos de la utilidad SPMetal para generar las entidades a consultar, etc. Internamente, las consultas LINQ To SharePoint se traducen al correspondiente CAML.
-
Mediante el
modelo de objetos de BCS que facilita la interacción con datos externos permitiendo de forma programática navegar entre entidades y asociaciones definidas en los modelos de BDC.
Aparte de estos tres tipos de alternativas, tenemos otras para el acceso a datos como:
-
El uso del modelo de objetos de SharePoint (en servidor y en cliente).
-
El uso de los servicios web de SharePoint.
-
El uso de la API REST de SharePoint.
-
La clase
ContentIterator, que permite iterar en bloque con sitios, listas y elementos de lista superando los umbrales fijados en la consulta de listas
-
La clase
ContentByQueryWebPart que forma parte de la infraestructura de publicación de SharePoint 2010 y permite realizar consutas CAML a listas y sitios de una cierta colección de sitios.
-
La clase
PortalSiteMapProvider también perteneciente a la infraestructura de publicación de SharePoint 2010 y que permite consultas objetos cacheados a nivel de colección de sitios.
Volviendo a las tres opciones iniciales, ¿Cuáles son los escenarios de uso? Pues tal y como podéis leer en la SharePoint Guidance tenemos los siguientes escenarios:

Como sabéis, y ya comenté en este artículo, una de las novedades en el área de ECM (Enterprsie Content Management) de SharePoint 2010 son los Document Sets o Conjuntos de Documentos que permiten trabajar con agrupaciones de documentos de forma atómica. Además de conocer como funcionan los Document Sets, es importante tener claro las limitaciones que nos podemos encontrar al respecto. En este sentido, el siguiente artículo de Michal Pisarek refleja y resume muy bien los límites que nos podemos encontrar: Document Set Limitations and Considerations in SharePoint 2010. El resumen rápido de limitaciones sería el siguiente:
-
Cannot declare document sets as In-Place Records.
-
Cannot nest Document Sets within Document Sets.
-
You cannot send a Document Set larger than 50MB using the Send To Command.
-
Cannot create folders within Document Sets.
-
Document Set routing requires time jobs to run.
-
Routing Content into Document Sets can be tricky.
-
Document Sets are available in SharePoint Server only.
-
Cannot create Document Sets in Lists.
-
Be Careful of performance with lots of Document Sets.
-
Downloading the entire Document Set.
-
Shared Columns may not update instantaneously.
-
Be careful with Content Type Syndication.

Como ya comenté en este post, una alternativa muy interesante que tenemos para crear nuestros entornos de desarrollo de SharePoint 2010 es la de recurrir a proveedores que nos ofrezcan la posibilidad de montar este entorno en la nube de manera que tengamos los recursos necesarios en términos de característica hardware. En este sentido, llevo ya varios meses trabajando con CloudShare en cuanto a que me permite montar un entorno de desarrollo para SharePoint 2010 en unos pocos minutos gracias al conjunto de plantillas de máquinas virtuales de las que dispone y además con unas capacidades HW adecuada…por ejemplo, en el entorno de desarrollo que tengo montado en CloudShare la máquina virtual de SharePoint 2010 cuenta con sus 8 GB de RAM y el acceso vía RDP es realmente fluido. Una de las últimas novedades que ha incorporado CloudShare a su offering es el denominado Web Access que permite que compartir una aplicación web de una forma muy simple…aunque para el caso de SharePoint es necesario realizar alguna que otra configuración:
-
Lo primero que necesitamos es copiar la Url de Web Access que CloudShare genera para cada entorno y que tenemos disponible en la página principal de nuestro “Environment” de CloudShare.
-
A continuación nos vamos a la máquina virtual y a la Administración Central de SharePoint 2010. En la sección de gestión de aplicaciones web creamos una nueva aplicación web, definiendo como puerto para la misma el 80 y especificando como Host Header la Url de Web Access de CloudShare.
-
Una vez creada la aplicación web, veremos que se muestra en el listado de aplicaciones web identificada por dicha Url.
-
Si revisamos las rutas de acceso alternativo, veremos que para la zona default de la aplicación web recién creada se muestra como ruta de acceso la url del Web Access de CloudShare.
-
Si salimos de la máquina virtual y especificamos la Url en un navegador, veremos que accedemos al sitio de SharePoint…cool!
Sin duda, una característica más que interesante la de Web Access de CloudShare para compartir entornos y facilitar que por ejemplo usuarios externos puedan acceder a los mismos sin necesidad de utilizar un acceso por escritorio remoto.Finalmente, os dejo el enlace al post escrito en el blog de CloudShare respecto a las ventajas que aporta esta tecnología para los que trabajamos en el mundo de SharePoint: http://blog.cloudshare.com/archives/170.
Una vieja conocido para la gestión de capacidad en SharePoint es la herramienta Log Parser que nos permite extraer información de los logs de IIS en los que SharePoint como no podía ser de otra forma registra la correspondiente información. Se trata de una herramienta de línea de comandos que con una sintaxis tipo T-SQL nos permite extraer información de uso de SharePoint y persistirla en una base de datos, un archivo o un gráfico. Por ejemplo, para este último caso podríamos construir sencillamente con la ayuda de Microsoft Office Excel gráficos como los siguientes:
Los recursos claves de Log Parser son los siguientes:
Finalmente, os dejo un par de ejemplos de como se usaría la utilidad:
1: logparser -i:IISW3C "select top 20 count(*) as ct,cs-username as user from *.log group by user order by ct desc“
2:
3: logparser -i:IISW3C -o:CSV "select count(*) as ct,TO_INT(LOG(count(*))) as bin,cs-username from *.log
4: where sc-status<>401 group by cs-username order by ct desc" -q >userfreq.csv
Por cierto, esta herramienta no está soportada oficialmente por Microsoft.
Pues nada, gracias al estupendo trabajo de autores y editores acaba de ver la luz un nuevo número de CompartiMOSS y ya vamos por 9. En esta ocasión los contenidos son los siguientes:
- Editorial
- Consejos prácticos de cómo aplicar el Branding Corporativo en SharePoint 2010 sin modificar la página maestra (Juan Manuel Herrera)
- El lado social de SharePoint - III (Alberto Díaz Martín)
- SolidQ Managed Matadata Exporter: Herramienta para exportar Metadatos Administrados de SharePoint 2010 (José Quinto Zamora)
- Instrucciones para organizar un simposio de SharePoint (Vielka Rojas)
- Integración de Windows Azure y SharePoint 2010 (I) (Juan Carlos González Martín)
- Entrevista con Ricardo Muñoz
- SharePoint 2010 BI (Juan M. Alvarado)
- Patrón MVP con SharePoint 2010 (Juan Pablo Capdevila)
- Site Definitions vs. Web Templates (Carlos Ariel Dantiags)
- Herramientas de Comunidad (Gustavo Velez)
- Modelo de Objetos de Cliente (Juan Pablo Pussacq Laborde)
![image_thumb_2BCC7725[1] image_thumb_2BCC7725[1]](http://www.ciin.es/imagenes/CompartiMOSSExtra-extrael--9-ya-est-disp_11DDA/image_thumb_2BCC77251_thumb.png)
Como siempre, cualquier número de la revista se puede descargar desde el sitio de SkunkWorks a través de este enlace. También podéis visitar el sitio de CompartiMOSS en Facebook (http://www.facebook.com/group.php?gid=128911147140492). Y si estás interesado en colaborar como autor en la revista, no tienes más que ponerte en contacto con Fabián Imaz, Gustavo Vélez o un servidor.
Sin duda, una de las grandes características de la plataforma SharePoint es la de que es posible definir sobre ella distintos tipos de soluciones verticales para dar respuesta a requerimientos variados en ámbitos también variados: educación, gestión de proyectos, reservas hoteleras, etc. Si nos centramos en el concepto de e-Learning, desde la versión 2007 de la plataforma disponemos del denominado SharePont Learning Kit disponible en Codeplex que implementa una completa solución de eLearning de acuerdo a los estándar definidos sobre la base proporcionada por SharePoint…para SharePoint 2010, podremos descargarnos el Learning Kit desde este enlace.

Por supuesto, y como no podía ser de otra forma, no me he podido resistir a instalar la primera preview que tenemos disponible de Windows 8 desde varios días. Como muchos habréis comprobado, el proceso de instalación es bastante sencillo, lleva poco tiempo y a mi particularmente me llamó la atención la integración que tiene con Windows Live. En mi caso, la primera instalación que he realizado de Windows 8 (con las herramientas de desarrollo) la he hecho en una máquina de Virtual Box y me han servido los tips explicados en este post: http://www.sysprobs.com/guide-install-windows-8-virtualbox. Sin más, pasemos a la instalación:
-
Por supuesto, las primeras pantallas de instalación son las típicas en las que eliges idioma de instalación, idioma y cultura para el teclado, etc.
-
Aceptas el correspondiente acuerdo de uso y a instalar.
-
El proceso inicial de descarga y configuración de archivos de instalación es idéntico al que ya conocíamos para Windows 7 (y por endé creo que para Windows Vista si el Alzheimer no me hace recordar mal).
-
Y es a partir de aquí dónde empiezan algunos cambios mínimos. Por ejemplo, la pantalla de configuración es completamente negra.
-
Una vez que el entorno está configurado (por cierto hasta aquí todo el proceso ha llevado unos pocos minutos), de nuevo aceptamos unos términos de uso de Windows 8 en el equipo en el que lo hemos instalado.
-
A continuación comenzaremos con la personalización en cuanto a nombre del equipo y las configuraciones iniciales.
-
Podremos elegir entre hacer estas configuraciones de forma personalizada o las sugeridas por Windows.
-
A continuación llegamos a una primera novedad en la que se nos pide una dirección de e-mail para el logon lo que me lleva a la integración con Windows Live comentada anteriormente.
-
Especificamos esa dirección de correo y la contraseña para que a continuación se inicie el proceso final de preparación de nuestro equipo con Windows 8 corriendo.
-
Una vez finaliza este proceso, llegaremos a la nueva interfaz METRO de Windows 8 ya de sobra conocida por todos.
- Y a partir de aquí a hacer pruebas, como por ejemplo la pantalla de inicio de nuestro equipo cuando se vuelve a arrancar.
- Movernos por la interfaz METRO y hacer el switch a la vista de escritorio.
- Y por supuesto, lanzar y explorar la preview de Visual Studio 11.
Próximos pasos en mi caso, instalar Windows Server 8 Preview e instalar la Windows 8 Preview en un Netbook para ver que tal lo mueve.
Como sabéis, LINQ To SharePoint es el proveedor de LINQ para realizar consultas integradas en el lenguaje contra listas y bibliotecas de SharePoint. Como proveedor que es, no podemos esperar que cualquier tipo de operador que podamos usar en expresiones LINQ tenga su equivalente en LINQ To SharePoint y por lo tanto pueda ser traducido a su equivalente CAML. Así, operadores como Equals o HasValue no tienen un equivalente CAML. Tal y como podéis leer en la SharePoint Guidance, los operadores soportados, cuyo uso no incurre en penalizaciones de rendimiento, y sus equivalentes CAML en LINQ To SharePoint son los siguientes:
| Operador LINQ | Traducción CAML |
| && | And |
| || | Or |
| == | Eq |
| >= | Geq |
| > | Gt |
| <= | Leq |
| < | Lt |
| != | Neq |
| == null | IsNull |
| != null | IsNotNull |
| String.Contains | Contains |
| String.StartsWith | BeginsWith |
Hace un tiempo escribía en torno a algunas de las limitaciones de los Business Connectivity Services (BCS) en lo que a capacidades se refiere. El caso es qué además de estas limitaciones, tenemos otras relativas a cuestiones de rendimiento en cuanto a los valores por defecto que se usan para número de elementos devueltos, tiempos de presupuesta en una consulta, etc. Lógicamente, estos valores van a ser dependientes de la fuente de datos o aplicación de línea de negocio que estemos integrando con los BCS:
-
2.000 filas cuando estamos realizando una consulta a una base de datos (BD).
-
3 M de bytes para la respuesta de un servicio web o de un servicio WCF.
-
180 segundos de tiempo de respuesta al realizar una BDo un servicio WCF.
-
200 conexiones en total para BDs, servicios web o servicios WCF.
Fuente: SharePoint Guidance disponible en http://spg.codeplex.com/releases

Cuando trabajamos con listas de SharePoint, tenemos la posibilidad de indexar sus columnas como mecanismo para mejorar el rendimiento en el uso de las listas. El concepto de indexación de listas de SharePoint es similar al de indexar columnas en una tabla de base de datos, con la diferencia de qué es SharePoint quien se encarga de realizar el mantenimiento de los índices y no el SQL Server subyacente. Esta indexación puede ser necesarias en situaciones como las siguientes:
-
Estamos utilizando la características de unicidad de columnas de SharePoint 2010, de manera que cada vez que queremos configurar una columna para que tenga valores único será necesario realizar su indexación.
-
Tenemos una columna de tipo lookup en nuestra lista y configuramos el comportamiento referencial de la misma para habilitar la estrategia de borrado (en cascada o no), por lo que será necesario de nuevo indexar esta columna.
-
Optamos por indexar todas o parte de las columnas de la lista.
Por ejemplo, a nivel de lista:
-
A través de la página de configuración de la lista podemos acceder a los índices disponibles actualmente para la lista haciendo clic sobre el enlace “Columnas indizadas”.
-
En la página que se muestra podemos ver los índices disponibles y editarlos.
-
Podremos crear nuevos índices en base a otras columnas de la lista y teniendo en cuenta que no todos los tipos de columna se pueden indizar.
Pero, ¿Por qué puede ser importante indexar columnas en una lista de SharePoint? Pues por cuestiones de rendimiento, ya que la indexación de columnas mejora el rendimiento en el caso de consultas que usen la(s) columna(s) indexadas, se realicen joins, operaciones de ordenado, etc. Por ejemplo, si tenemos una lista que contiene unos 20.000 elementos y queremos consultar los primeros 500 elementos de la misma ordenados por la columna Title, que no está indexada, nos encontraremos que SharePoint se recorre los 20.000 elementos de la lista para poder ordenarlos por Title y luego nos devuelve esos 500 primeros elementos, de manera que nos encontraríamos ante una consulta pesada. Si indexamos la columna Title, la consulta es mucho más ligera ya que accedemos de ofrma directa a los 500 primeros elementos ordenados por Title sin necesidad de buscar en el conjunto total de elementos de la lista. Por supuesto, el uso de índices hay que realizarlo con cuidado y no usarlos por sistemas ya que penalizan el rendimiento en operaciones de tipo CRUD y necesitan de almacenamiento. ¿Cuántos índices puedo tener por lista? Un máximo de 20.
Una de las posibilidades que tenemos para extender nuestros sitios de SharePoint es la técnica de Feature Stapling o engrapado de características (la traducción literal es lo que tiene) que permite definir asociaciones de características a plantillas de sitio de manera que podamos agregar desde un “único punto” una seire de características a todas las instancias de sitios que se han creado a una cierta definición de sitio evitando la modificación de esta o la necesidad de crear código personalizado que active estas features en cada sitio. El Feature Stapling se implementa a través de una característica (de ahí lo de “único punto”) diseñada para crear estas asociaciones de características a una o más definiciones de sitios (o a todos). Algunos ejemplos son los siguientes:
1: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
2: <FeatureSiteTemplateAssociation Id="00BFE171-1B17-4F72-28CB-1171C0140130" TemplateName="STS#0" />
3: <FeatureSiteTemplateAssociation Id="00BFE171-1B17-4F72-28CB-1171C0140130" TemplateName="STS#1" />
4: <FeatureSiteTemplateAssociation Id="00BFE171-1B17-4F72-28CB-1171C0140130" TemplateName="STS#2" />
5: </Elements>
1: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
2: <FeatureSiteTemplateAssociation Id="00BFE171-1B17-4F72-28CB-1171C0140130" TemplateName="GLOBAL" />
3: </Elements>
Finalmente os dejo algunos enlaces relativos a la técnica de Feature Stapling:
- Feature Stapling en SharePoint 2007:
- Feature Stapling en SharePoint 2010:
Tal y como podéis leer en el blog del equipo de Office 365, desde hace varios días tenemos disponible la versión 3.2 del Toolkit de soporte MOSDAL que permite recolectar información diversa sobre configuración de servicio, diagnóstico de red, logs, etc y otros parámetros relativos a los servicios de Microsoft en la nueva con vistas a averiguar cuál puede ser el origen de problemas que se tengan en el uso de los mismos. Los enlaces relativos a MOSDAL en los que se puede descargar tanto el toolkit como referencias a las novedades y su uso son los siguientes:

Siguiendo con la serie de artículos en torno a tipos de contenido en SharePoint 2010, en esta ocasión toca hablar sobre el concepto de actualización de tipos de contenido existentes. La pregunta clave aquí es si se pueden actualizar tipos de contenido existentes o no, la respuesta es que sí aunque en función de como se realice la actualización hay que tener en cuenta ciertas cosas:


-
De forma programática resulta sencillo actualizar tipos de contenido que hayamos creado de esta forma. Un ejemplo de como hacerlo lo podéis encontrar en
este enlace de MSDN. Por supuesto, se entiende que vía PowerShell se podrá hacer lo mismo que podemos hacer programática.
-
De forma declarativa, teniendo en cuenta que esta actualización no pasa por modificar la definición en XML del tipo de contenido, sino por aprovechar el concepto de actualización de característica nuevo en SharePoint 2010 y que nos permite añadir nuevos campos a un tipo de contenido dentro de la nueva sección <UpgradeActions>. Podéis ver un ejemplo en
este otro enlace de MSDN.
Finalmente, os dejo una referencia final relativa a estrategias y aproximaciones en la actualización de tipos de contenido.
Esta pregunta es la que me vino a la mente ante una duda que me plantearon hace unos días…mi respuesta fue como en otras ocasiones: “se tiene que poder de alguna forma”…y dicho y hecho, las características se pueden activar de forma programática tanto en el modelo de objetos (MO) en servidor como en cliente:
Si pensamos como activar una feature con el MO Cliente .NET Managed, tendremos que recurrir a la clase FeatureCollection,que nos permite acceder a la colección de características activas en un sitio y activar features existentes que no estén activas de acuerdo al siguiente código:
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5:
6:
7: //MO Cliente -> .NET Flavour
8: using MO_NET = Microsoft.SharePoint.Client;
9:
10: namespace SPFeatureCOMActivation
11: {
12: class Program
13: {
14: const string sSiteUrl = "http://demo2010a:100/sites/SCR";
15: static void Main(string[] args)
16: {
17: ActivarFeature();
18: Console.ReadLine();
19: }
20: static void ActivarFeature()
21: {
22: try
23: {
24: using (MO_NET.ClientContext ctx =
25: new MO_NET.ClientContext(sSiteUrl))
26: {
27: MO_NET.Web wSite = ctx.Web;
28: MO_NET.FeatureCollection fcFeaturesCollection = wSite.Features;
29: Guid guFeatureGuid = new Guid("bc08fd10-39b5-4a54-b1d9-2eb0aaac47d8");
30: fcFeaturesCollection.Add(
31: guFeatureGuid, true, MO_NET.FeatureDefinitionScope.Site);
32:
33: ctx.Load(fcFeaturesCollection);
34: ctx.ExecuteQuery();
35:
36: Console.WriteLine("Características instaladas en el sitio: {0}",
37: fcFeaturesCollection.Count.ToString());
38: foreach (MO_NET.Feature fFeature in fcFeaturesCollection)
39: if (fFeature.DefinitionId == new Guid("bc08fd10-39b5-4a54-b1d9-2eb0aaac47d8"))
40: Console.WriteLine("Feature {0} localizada", fFeature.Tag);
41: // Console.WriteLine("Feature ID: {0}", fFeature.DefinitionId);
42: }
43:
44: }
45: catch (MO_NET.InvalidQueryExpressionException ex)
46: {
47: Console.WriteLine("Error: {0}", ex.Message);
48: }
49: catch (MO_NET.ClientRequestException ex)
50: {
51: Console.WriteLine("Error: {0}", ex.Message);
52: }
53: catch (MO_NET.PropertyOrFieldNotInitializedException ex)
54: {
55: Console.WriteLine("Error: {0}", ex.Message);
56: }
57: catch (MO_NET.ServerUnauthorizedAccessException ex)
58: {
59: Console.WriteLine("Error: {0}", ex.Message);
60: }
61: catch (MO_NET.ServerException ex)
62: {
63: Console.WriteLine("Error: {0}", ex.Message);
64: }
65: catch (Exception ex)
66: {
67: Console.WriteLine("Error: {0}", ex.Message);
68: }
69: }
70: }
71: }
Como veis, a partir del GUID de la feature resulta muy sencillo su activación sin más que utilizar el método Add() del objeto FeatureCollection definido.
Como sabéis, SharePoint WorkSpace 2010 es el cliente rico para SharePoint 2010 que habilita escenarios de trabajo con SharePoint en modo desconectado y que nos permite sincronizar localmente un sitio completo de SharePoint o únicamente un conjunto de lista y bibliotecas…os recomiendo este post de Mario Cortes respecto a SharePoint WorkSpace en el que podéis ver como realizar la sincronización. Además del post de Mario, en este artículo del sitio de Office podéis encontrar la siguiente información adicional:
Especial atención merece el apartado relativo a las limitaciones en el uso de SharePoint WorkSpace que debemos tener en mente para saber hasta dónde podemos llegar con esta herramienta.

De acuerdo a lo que parece que va a ser el presente y futuro en el desarrollo de aplicaciones para la web y el escritorio (Estoy pensando en HTML 5, CSS 33, JavaScript, etc), Microsoft acaba de liberar dentro de la sección Patterns & Practices un nuevo proyecto enfocado a servir inicialmente como guía en el desarrollo de aplicaicones multi-navegador que se caractericen por su diseño adecuado, un interactividad rica, etc aprovechando para ello los últimos estándar web: HTML 5, CSS 3, ECMAScript 5 y también las últimas versiones de tecnologías web como jQuery y ASP.NET MVC. Podéis acceder al proyecto Silk desde este enlace.

Cómo ya he comentado en numerosas ocasiones, los tipos de contenido en SharePoint son uno de los elementos clave a la hora de modelar una solución sobre SharePoint. Además de comprender el concepto de tipo de contenido, las posibilidades que tenemos para la creación de los mismos, etc…es importante tener en la plataforma disponemos de serie de una serie de tipos de contenidos que forman parte de una jerarquía de tipos de contenido ya que se aplica el concepto de herencia de manera que todos los tipos de contenido de SharePoint heredan del tipo de contenido primario que es System, del que a su vez deriva el tipo de contenido básico Item. Como podéis ver en esta página de MSDN la jerarquía y herencia se ve de forma muy clara en los IDs que corresponden a los tipos de contenidos disponibles por defecto, de forma que empezamos con 0x (System) para seguir por 0x01 (Item), 0x0101 (Document), 0x0102 (Event), etc. Como veis, los primeros dos dígitos de un cierto tipo de contenido marcan quien es el tipo de contenido del que heredan, y esta es la filosofía que tenemos que seguir cuando creemos nuestros tipos de contenido usando Visual Studio 2010 o PowerShell. Finalmente, os dejo una serie de imágenes que transmiten la idea de jerarquía de tipos de contenido en SharePoint:
Un factor clave en el éxito de todo proyecto de SharePoint es el de Gobernanza, es decir, una serie de directivas, roles, responsabilidades y procesos que guían, dirigen y controlan la forma en que las divisiones de negocio y equipos de TI de una organización cooperan para lograr objetivos empresariales. Todo estos elementos se reflejan en el denominado plan de gobernanza que tiene que proporcionar una serie de beneficios como:
Para concebir un plan de gobernanza para proyectos de SharePoint disponemos de una serie de recursos creados por Microsoft entre los que cabe citar:
Otros recursos interesantes sobre gobernanza son los siguientes:
Y hasta aquí llega este primer post sobre gobernanza en SharePoint 2010.
Como sabéis, desde hace unas semanas tenemos disponible la CT 3 de SQL Server Denali, pues bien, si queréis comenzar a probar rápidamente las novedades de esta CTP podéis descargaros una imagen Hyper-V que Microsoft ha creado y que incluye los siguientes elementos:
- SQL Server "Denali" CTP3
- SharePoint 2010
- Office 2010
Podéis descargaros el VHD desde este enlace.
Más artículos
Página siguiente >