SSD: el síndrome de la Sharepoint dependencia

Sharepoint me proporciona seguridad y me hace sentir más fuerte. Las 10 cosas que más me gustan de Sharepoint.

10 puntos para entender a Project Server 2010

Microsoft Project es quizá la herramienta de gestión de proyectos más conocida y utilizada por los líderes de proyectos...

Diseño Gráfico en SharePoint

Serie de artìculos que nos ayudan a incorporar diseño gráfico en las implementaciones de SharePoint...

Revista CompartiMOSS

Artículos publicados en la revista especializada en SharePoint: CompartiMOSS.

Contacto

Enviame un correo :-)

lunes, 30 de noviembre de 2009

Microsoft Office Web Apps (Beta)

image Los que estuvieron la semana pasada en el RUN Reloaded de Buenos Aires, habrán quedado impresionados con el ejemplo del Excel de los 100 millones de registros, que publicaron en SharePoint y actualizaron en tiempo real. Copio parte de mi post anterior para recordar:

Fue breve, pero más que interesante. Abrieron un Excel 2010 con 100 millones de registros, mostraron algunas cositas de Excel y luego hicieron save to sharepoint. Hasta allí lo esperado.

Nos mostraron el Excel dentro de SharePoint con Office Web Access, sin ningún tipo de Active X (sólo HTML y JavaScript). Sigue dentro de lo esperado. Pero luego abrieron un segundo browser, un Firefox, con el mismo Excel.

Y finalmente lo que genero APLAUSOS: en la ventana de la derecha (FireFox) modificaron un valor y en TIEMPO REAL, se modificó el gráfico en la ventana de la izquierda (Explorer), sin refresco ni nada. Realmente tiempo real. Impresionante!

Bien, consultando con Miguel Angel Saez, uno de los expositores, me comentó que la funcionalidad que utilizaron es Microsoft Office Web Apps (Beta), aparentemente tanto disponible para SharePoint Server como SharePoint Foundation:

image

Enlaces:

Hasta la próxima y hagan llegar los comentarios o artículos los que la prueben!

domingo, 29 de noviembre de 2009

Colaborando con SUGES, un reconocimiento!

Quería aprovechar este medio para agradecer públicamente a Juan Carlos Gonzalez Martin y Mario Cortes quienes me han invitado a participar en SUGES, SharePoint User Groups de España.

image

Para mi es realmente un honor y espero estar a la altura de las circunstancias. A mediados de diciembre, estaré hablando en un webcast sobre el tema “desarrollo de manejadores de eventos en SharePoint”.

Como siempre digo en estos casos, participar en la comunidad, nos lleva cada día a ser mejores profesionales. Por un lado, hemos aprendido sobre algunos temas y eso es interesante de compartir, por otro lado, al participar, entramos en contacto con otros miembros de la comunidad y eso, al menos en mi caso particular, me ha resultado muy enriquecedor, tanto en lo personal, como en lo profesional.

Espero poder contribuir en forma útil a este emprendimiento. Hasta la próxima.

image

Estoy en Geeks.ms – Qué reconocimiento!

Me han invitado a participar en Geeks.ms y eso es realmente un reconocimiento, Me siento muy honrado.

image¿Saben ustedes que es Geeks.ms?

Según la propia definición de Geeks: “Es un sitio dedicado a la comunidad sobre tecnologías Microsoft donde la gente puede encontrar todo aquello que los geeks en infraestructura y desarrollo  tienen que contar al mundo. Entre nuestros geeks se encuentran numerosos MVPs, varios MCTs, y muchos promotores de grupos de usuarios. En general lo que pretendemos es reunir en un solo sitio la voz, a través de sus blogs, de todos los miembros hispano-hablantes relevantes de las comunidades de Microsoft. (…) casi todos los miembros relevantes de la comunidad tiene su blog alojado en Geeks.ms y creo que se puede decir todos los que participan en la comunidad leen Geeks.ms. Sin duda la repercusión de Geeks.ms en la comunidad es alta”. Ese es un breve resumen. Insisto en que me siento muy honrado…

Si quieren consultar mi blog en Geeks, pueden hacerlo en esta dirección:

http://geeks.ms/blogs/jpussacq

Como siempre, espero les sea útil!

jueves, 26 de noviembre de 2009

SharePoint 2010 muy RECARGADO!!!

IMG_2236 Microsoft finalizó en Buenos Aires el evento RUN RELOADED, orientado a la comunidad de desarrolladores y profesionales de TI. Fueron dos jornadas completas los días 24 y 25 de noviembre. Han sido jornadas muy gratas para nosotros, los desarrolladores SharePoint, por la importancia que ha tenido SharePoint dentro de estas jornadas,donde nunca antes se había hablado de esta tecnología.

Es que SharePoint está ganando su lugar, y si está convirtiendo en una plataforma de desarrollo de aplicaciones fuerte, que ya no puede ser desconocida por los desarrolladores, en particular por los desarrolladores de ASP.Net (Para más información vean Plataforma de desarrollo de SharePoint 2010).

Realmente dos hechos me sorprendieron:

  • En la apertura, hubo dos demos: Windows 7 y SharePoint 2010
  • En el segundo día hubo un track completo (3 presentaciones) de SharePoint 2010 (a sala llena con 70 personas)

image

Creo que esto es un incentivo para los que apostamos a esta tecnología.

Pasada esta breve introducción, mi idea es resumir en este breve artículo lo que escuchamos con mi colega Sebastián Torres en estos dos días. No voy a profundizar en los temas, porque aún no tengo la información de detalle, eso será tema de próximos blogs. Sin embargo me pareció importante compartir esta data para los que no pudieron asistir o los que no están siguiendo tan de cerca la novedades. Y aún para los que están probando la Beta y quizá no vieron alguno de los temas que se presentaron en el evento.

Espero que lo disfruten! Nosotros lo disfrutamos...

KEYNOTE

image Fue breve, pero más que interesante. Abrieron un Excel 2010 con 100 millones de registros, mostraron algunas cositas de Excel y luego hicieron save to sharepoint. Hasta allí lo esperado.

Nos mostraron el Excel dentro de SharePoint con Office Web Access, sin ningún tipo de Active X (sólo HTML y JavaScript). Sigue dentro de lo esperado. Pero luego abrieron un segundo browser, un Firefox, con el mismo Excel.

Y finalmente lo que genero APLAUSOS: en la ventana de la derecha (FireFox) modificaron un valor y en TIEMPO REAL, se modificó el gráfico en la ventana de la izquierda (Explorer), sin refresco ni nada. Realmente tiempo real. Impresionante!

Descubriendo la nueva plataforma SharePoint 2010

Resumen de cambios interfaz gráfica:
  • Ribbon
  • Ventanas modales (ajax)
  • Más webparts
  • Soporte para Ajax
  • Formularios INFOPATH para listas!!!
  • Menú superior de navegación
  • Silverlight

Lo primero que se vio en la demo, fue una interfaz gráfica mejorada, más profesional, más lograda. La ribbon es un cambio importante en la forma de uso de las pantallas, siguiendo el mismo paradigma de Windows 7 y Office 2010. La ribbon incluye las opciones como "nuevo", pero también las acciones de ítems y de configuración.

image

InfoPath aparece como alternativa a SharePoint Designer y Webparts para el armado de páginas sobre las listas. Se arman en forma sencilla, se graban y ya quedan disponibles con los botones estándar de SharePoint y en forma modal. Eso sí, esto no está disponible en SharePoint Foundation, es de SharePoint Server. Realmente aparece como una muy buena alternativa antes de optar por la versión plena de desarrollo en Visual Studio.

Resumen de cambios en plantillas de sitios:
  • Visio services!!!
  • Template para Bug tracking
  • Template para Proyectos
  • Template para sitios personales
  • Sitios para equipos de trabajo
  • FAST
  • Sitios para eventos sociales
Novedades a nivel de SharePoint Designer

image

  • Totalmente nuevo
  • Mejor navegación de elementos
  • Conexiones a orígenes de datos (bien claro, en la barra de navegación)
  • Manejo de tipos de contenido!!!
  • Creación de flujos de trabajo reusables y flujos de trabajo de sitios!!!
    • Puedo usar el flujo de trabajo en otras listas
    • Se pueden hacer flujos de trabajo a nivel se sitios (no de listas)!!!
  • Puedo usar Visio como modelador y desde SharePoint Designer importar el flujo de trabajo que hicimos en Visio.

image

BCS, nueva versión del BDC
  • Como ya hemos leído en otros artículos, sincroniza en ambos sentidos: bidireccional!!!
  • CRUD sobre tablas (ahora puedo escribir en un sistema externo)
  • Ejecución de procedimientos almacenados
  • Conexión WCF, SQL Server y .Net (no es sólo un origen de datos, también puede ser un proceso)
  • Creación de relaciones entre tablas
  • Puedo usarlo como tipos de datos en columnas. Ya existía, pero ahora además de enganchar una columna, puedo traer las columnas relacionadas. Esto es en realidad un cambio en los campos lookups.
Lo nuevo en listas (realmente importante!!)
  • image Validaciones con fórmulas tipo Excel en las columnas. Un espectáculo!! Cada columna puede tener su validación
  • Lookups con múltiples columnas. Muy necesario!!
  • Índices para la unicidad de datos y evitar duplicados!!
  • Escalabilidad y performance.
  • Manejo de cascada y restricciones de borrado (integridad referencial)!!

Con esto sólo se justifica la nueva versión...!!!

Lista externas
  • Tablas de un origen de datos como listas (las veo como listas y aprovecho todas las ventajas de estas)
  • Basados en el nuevo BCS
  • CRUD basado en el motor de listas, InfoPath, etc.

Supremo...

Flujos de trabajo
  • Reusables
    • Exportación e importación con Visio
    • Parámetros nuevos en los formularios de inicio y tareas
  • Flujos de trabajo a nivel de sitio
  • Más actividades
    • Asociables a tipos de contenido!!

Programando sobre SharePoint 2010

image Esto no es una novedad, pero para el que todavía no lo sabe, ahora se puede armar un ambiente de desarrollo en Windows 7.

Novedades en Visual Studio
  • Webparts visuales
  • Botón derecho -> Deploy (guau!!!)
  • Creación de Features
  • Explorador del servidor de SharePoint

Muchas de estas acciones, demuestran el compromiso que Microsoft está teniendo con SharePoint (lo que les decía al principio del artículo)

Soluciones SANDBOXED

Instalar un WSP en el servidor en 2007 requiere importantes permisos. Ahora existe la posibilidad de subir un desarrollo a una colección de sitios, independizándonos del administrador. Buenas noticias para desarrolladores y administradores!

LINQ to SharePoint
  • image Programación basada en entidades
  • Fuertemente tipadas
  • Intellisense
  • Soporta joins entre listas!!!!

La ideología es achicar la curva de aprendizaje del desarrollador tradicional (y acercar al programador ASP.Net a SharePoint)

Weparts visuales

Diseñador, Control de SharePoint, Código servidor, en fin, otro paso para acercar a un desarrollador ASP.Net al mundo SharePoint, pero con menor curva de aprendizaje.

Eventos
  • Plantilla para la creación de eventos
  • Eventos en la creación de webs!
  • Interfaz de usuario mejorada con manejo de errores personalizados
Client Object Model

Se puede acceder al contexto desde Silverlight o JavaScript por ejemplo para conocer el nombre del sitio. Cool!

Integrando Silverlight 3 con SharePoint 2010

image

¿Qué se puede hacer con Silverlight dentro de SharePoint?

  • Customizar las páginas
  • Modificar los menús de navegación
  • Esto es lo más común, pero hay mucho más que mejoras gráficas...

Qué pasaría si quiero usar Silverlight para que el usuario firme con un dispositivo y la firma quede registrada en SharePoint?

Bien, hay muchas ideas.

En la demo mostraron Silverlight para ejecutar una encuesta de SharePoint. Una linda interfaz gráfica que accede la lista de la encuesta a través del Client Object Model. Interesante!

IMG_2235Fin

Bueno, fue muy rápido y resumido. Esperamos poder profundizar en muchos de estos temas próximamente.

Hasta la próxima!

Y comenten, es interesante conocer la opinión de desarrolladores .Net sobre SharePoint y de mosseros sobre la veinte diez! Saludos!

miércoles, 18 de noviembre de 2009

Project 2010 - Vista de línea de tiempo (timeline view)

Ayer instalé la beta de Project 2010 en el marco de un conjunto de pruebas que estamos haciendo de las plataformas SharePoint Server 2010 y Project Server 2010.

Estaba decidido a probar la funcionalidad timeline view de la que había leído anteriormente en un blog de MSDN. La probé y superó mis expectativas.

¿Por qué? Porque nosotros, los que trabajamos entre otras cosas de líderes de proyectos, hemos perdido mucho tiempo en mantener dos niveles de calendarios:

  • El calendario hecho en MS Project
  • El calendario hecho en MS PowerPoint (orientado al cliente)

Con Project Server 2010, ya no necesitamos PowerPoint. Y además es fácil! A continuación un breve ejemplo:

Paso 1 - el calendario tradicional

Lo primero que hice fue abrir un project que ya tenía con Project 2010. A primera vista, eso no representó ningún cambio:

image

Paso 2 - habilitar la vista línea de tiempo

El segundo paso es habilitar la vista línea de tiempo en View / Timeline:

image

Una vez realizado este paso, aparecerá la sección timeline tal como muestra la imagen:

image

Paso 3 - completar la vista línea de tiempo

Realmente muy sencillo! Simplemente, con el botón derecho del mouse, usamos la opción add to timeline. Esta opción la podemos usar con Tareas (de cualquier nivel) o hitos. En 5 minutos, tendremos un calendario como el que se ve en la imagen, muy amigable para un cliente:

image

Espectacular! Al menos en mi caso, lo que siempre necesité.

Paso 4 - dando formato

Finalmente, tenemos algunas opciones de formato como por ejemplo:

  • Formato de las fechas
  • Solapamiento de tareas
  • Display as callou
  • Exportación a PowerPoint
  • Etc.

Ejemplo con solapamiento:

image

Ejemplo de exportación y formateo en Power Point:

image

Concluyendo

Aquí termino. Realmente una de esas funcionalidades que da gusto encontrar. Espero sus comentarios y que les sea útil. Hasta la próxima!

lunes, 16 de noviembre de 2009

SharePoint 2010 y Project Server 2010 ya están entre nosotros!

Finalmente llegó el día! Las versiones beta de estos productos ya están entre nosotros (para subscriptores de MSDN). Comienza el juego. A disfrutar...

image

image

image

image

image

image

domingo, 15 de noviembre de 2009

Insertar, Modificar, Eliminar y Listar ítems de Lista Programaticamente

En este breve post les voy a presentar un resumen de los métodos provistos por la API de Sharepoint para insertar, modificar, eliminar y listar ítems de lista en forma programática.

Contexto

Para todos los ejemplos, tomemos como base la siguiente lista, llamada MiLista:

  • ID –> Campo standard de Sharepoint
  • Title –> Campo standard de Sharepoint
  • Descripcion –> Texto de una línea

Insertar Ítem

El siguiente código ejemplifica el alta de un nuevo registro en la lista “MiLista”, pasándole por parámetro los valores para los campos Title y Descripcion:

public void NuevoItem(string strTitle, string strDescripcion){

        SPWeb site;

        SPList lstMiLista;

        SPListItem itmMiLista;

        site = SPContext.Current.Web;

        lstMiLista = site.Lists["MiLista"];

        itmMiLista = lstMiLista.Items.Add();

        itmMiLista[“Title”] = strTitle;

        itmMiLista[“Descripcion”] = strDescripcion;

        itmMiLista.Update();

}

Modificar Ítem

El siguiente código ejemplifica la modificación de un registro en la lista “MiLista”, pasándole por parámetro los valores para los campos Title y Descripcion, y el ID que corresponda con el ítem de lista a modificar:

public void ModificarItem(string strTitle, string strDescripcion, integer intId ){

        SPWeb site;

        SPList lstMiLista;

        SPListItem itmMiLista;

        site = SPContext.Current.Web;

        lstMiLista = site.Lists["MiLista"];

        itmMiLista = lstMiLista.GetItemById(intId);

        itmMiLista[“Title”] = strTitle;

        itmMiLista[“Descripcion”] = strDescripcion;

        itmMiLista.Update();

}

Eliminar Ítem

El siguiente código ejemplifica la eliminación de un registro en la lista “MiLista”, pasándole por parámetro el ID que corresponda con el ítem de lista a eliminar:

public void EliminarItem(integer intId ){

        SPWeb site;

        SPList lstMiLista;

        SPListItem itmMiLista;

        site = SPContext.Current.Web;

        lstMiLista = site.Lists["MiLista"];

        itmMiLista = lstMiLista.GetItemById(intId);

        itmMiLista.Delete();

        itmMiLista.Update();

}

NOTA: si por alguna de estas tres acciones no se quiere que se ejecuten las alertas que puedan estar asociadas a la lista debemos cambiar la línea “itmMiLista.Update();” por “itmLista.SystemUpdate();”.

Listar Ítems

El siguiente código ejemplifica como recorrer la lista “MiLista”:

public void RecorrerLista(){

        SPWeb site;

        SPList lstMiLista;

        SPListItem itmMiLista;

        site = SPContext.Current.Web;

        lstMiLista = site.Lists["MiLista"];

        foreach (SPListItem itmMiLista in lstMiLista.Items){

                Console.WriteLine(“Titulo: {0} – Descripción: {1}”, itmMiLista[“Title”].ToString(), itmMiLista[“Descripcion”].ToString());

        }       

}

Por ahora es todo, espero les haya sido de ayuda y puedan aplicarlo en sus aplicaciones.

Hasta el próximo post.

miércoles, 11 de noviembre de 2009

Power Pivot para Excel 2010

imageEste es un post muy breve sólo para difundir una noticia. Se viene Power Pivot para Excel 2010, algo que es más que interesante para los amantes de los viejos Office Web Components, los no tan viejos Excel Services y los nuevos Visio Services.

Les dejo una imagen para incentivar a leer más y algunos links. Gracias VladPoint por la información publicada en BI en SharePoint 2010.

Links:

image

Hasta la próxima...

martes, 10 de noviembre de 2009

Editando proyectos desde Project Web Access 2010

Si usted aún no ha utilizado Project Server, es porque no contaba con algunas funcionalidades que usted necesita. Ese tiempo ha finalizado, porque Project Server 2010 tiene "eso que faltaba".

Apelé a esta introducción "un tanto poética" porque era necesaria. Hay varias características interesantes en la nueva versión, pero muchos de nosotros hace años esperamos que los proyectos puedan editarse desde el navegador. Y está funcionalidad por fin ha llegado!

image

Fuente: tomo como base para este artículo el artículo Project 2010: Introducing Web Based Project Editing de Pat Malatack. Seguramente tendremos más información en algunos días cuando dispongamos de la Beta, mientras tanto estos avances...

Introducción

Bien, la novedad es, que con Project Server 2010 se pueden realizar las siguientes tareas desde el Project Web Access (desde el navegador):

  • Crear un proyecto
  • Editar un plan
  • Asignar recursos a tareas
  • Publicar un plan

Y no crean que necesitan instalar un ActiveX o algún tipo de componente en el cliente, es sólo JavaScript y HTML.

Creando el proyecto desde el navegador

El ejemplo que se ve en el artículo original es más que interesante. En el podemos ver desde crear el proyecto, agregar tareas, modificar fechas hasta ver el gráfico de Gantt, entre otras funcionalidades. Vean la siguiente imagen (no es Project Professional):

image

¿Y Project Server Professional?

Por supuesto que Project Server Professional sigue existiendo. No será reemplazado. La edición de proyectos desde Project Web Access permite entre otras cosas:

  • Deshacer (varios niveles)
  • Asignación de múltiples recursos
  • Diagramas de Gantt de alta fidelidad
  • Vistas flexibles
  • Indentación
  • Copiar y pegar
  • Y más...

image

Algunas funcionalidades siguen siendo exclusivas de Project Professional:

  • Administración de líneas base (baseline)
  • Balanceo de tareas
  • Funcionalidades nuevas de la versión 2010
    • Timeline view
    • Team Planner

Concluyendo

Definitivamente creo que esta funcionalidad marcará un "antes y un después" ya que apunta a la mejora de la productividad, algo en lo que Project Server no ha sido el más eficiente. No tener que abrir Project Professional para editar un proyecto será bien recibido y permitirá a los usuarios focalizarse en los problemática de la administración de proyectos, más que en la herramienta.

Les dejaré más novedades cuando tenga oportunidad de usarlo. Hasta la próxima...

jueves, 5 de noviembre de 2009

Trabajando con tipos de contenido en SharePoint

Según Microsoft TechNet un tipo de contenido define los atributos de un elemento de la lista, documento o carpeta. Cada tipo de contenido puede especificar: propiedades, flujos de trabajo, eventos, plantillas de documentos y otras características personalizadas.

Una explicación mía, menos ortodoxa, define a los tipos de contenido como algo muy parecido a los subtipos y supertipos de un modelo de entidad relación. El clásico ejemplo de Empleado Contratado y Empleado en Relación de dependencia puede definirse en forma muy simple en SharePoint, logrando con muy poco esfuerzo pantallas para cada tipo de empleado con sus columnas asociadas.

Este artículo trata sobre la creación de tipos de contenido en forma programática…

Introducción

Los tipos de contenidos trabajan bajo el principio de la herencia. No es posible crear un tipo de contenido desde cero, debe heredar de un tipo de contenido base. Una primera definición al crear un tipo de contenido consiste en definir si será utilizado en listas o librerías de documentos. Los tipos de contenido para librerías de documentos soportan como adicional la posibilidad de especificar plantillas de documentos, por ejemplo en Word.

Como punto final, es importante saber que los tipos de contenido pueden definir también el comportamiento, a través de flujos de trabajo y manejadores de eventos.

Crear un tipo de contenido usando CAML

Para crear un tipo de contenido es necesario haber creado previamente las columnas de sitio. Para cada columna de sitio que incluiremos en nuestro tipo de contenido, debemos incluir un elemento FIELDREF, que defina el GUID y el NAME de la columna, Opcionalmente podemos definir un DISPLAYNAME distinto a NAME.

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <ContentType ID=""

    Name="EmpleadoContratado"

    Description="Crear un nuevo empleado contratado"

    Version="0"

    Group="Tipos de contenido de SurPoint" >

    <FieldRefs>

     <FieldRef ID="{}" Name="Title" DisplayName="Empleado" Sealed="TRUE" />

     <FieldRef ID="{}" Name="Legajo" DisplayName="Legajo" />

    </FieldRefs>

  </ContentType>

</Elements>

El ID especifica el identificador del tipo de contenido y está diseñado para ser recursivo. Cada identificador de tipo de contenido contiene el identificador del tipo de contenido primario, el cual contiene a su vez el identificador del elemento primario de dicho tipo de contenido y así sucesivamente hasta llegar al identificador de tipo de contenido del sistema, inclusive. Mediante el análisis del identificador de tipo de contenido, puede determinar qué tipos de contenido hereda el tipo de contenido y cómo están relacionados dos tipos de contenido [MSDN: Identificadores de tipo de contenido].

La siguiente imagen muestra la jerarquía de tipos de contenido. Más información en: MSDN: Jerarquía de tipos de contenido base.

image

Asociar un tipo de contenido a una lista

Se puede asociar uno o varios tipos de contenido a una lista en el momento de la definición de la misma utilizando el elemento ContentTypes:

<ContentTypes>

  <ContentTypeRef ID = "Text">

    <Folder

     TargetName="Text">

    </Folder>

  </ContentTypeRef>

  ...

</ContentTypes>

ContentTypeRef establece la referencia al tipo de contenido que queremos asociar con la lista.

Control de cambios en tipos de contenido

Pueden establecer un tipo de contenido como sólo lectura, lo cual genera una advertencia para el usuario, pero no impiden que cambie este parámetro.

Otra alternativa es sellar los tipos de contenido (atributo Sealed), lo cual impide los cambios. El usuario debería ser administrador de la colección de sitios para modificar este parámetro.

Más información en: MSDN: Control de cambio de tipos de contenido

Links interesantes

FIN

Como verán, el tema es bastante amplio. Finalizo este artículo aquí para dejarles una primera introducción como base.

Como siempre, espero que les sea útil y que lo disfruten..

lunes, 2 de noviembre de 2009

Crear columnas de sitio en una Feature

Las columnas de sitio son un mecanismo provisto por WSS 3.0 para reusar campos de listas o tipos de contenido.

Características:

  • Visibilidad: una columna definida en una colección de sitios puede ser vista por todos los sitios de la colección.
  • Herencia:
    • Alta: al agregar una columna de sitio en una lista nos aseguramos contar de entrada con los mismos atributos. Los cambios que realicemos posteriormente en la la lista, sólo son aplicables a la lista en donde agregamos la columna.
    • Baja: no se puede eliminar una columna de sitio si está siendo usada en alguna lista o tipo de contenido.
    • Modificación: si se realizan cambios en una columna de sitio, se puede elegir que los mismo sean propagados a los hijos.

Definir la columna de sitio en una Feature

Las columnas de sitio pueden ser definidas utilizando CAML. Ejemplo:

<Field ID="{}"

  Name="Nombre"

  SourceID=http://schemas.microsoft.com/sharepoint/v3

  StaticName="Nombre"

  DisplayName="$Resources:core,Nombre;"

  Type="Text">

</Field>

La siguiente lista enumera los atributos posibles del elemento Field. Para mayor información consultar MSDN: Elemento Field (Definición):

  • Aggregation = "sum" | "count" | "average" | "min" | "max" | "merge" | "plaintext" | "first" | "last"
  • AllowDeletion = "TRUE" | "FALSE"
  • AllowHyperlink = "TRUE" | "FALSE"
  • AllowMultiVote = "TRUE" | "FALSE"
  • AppendOnly = "TRUE" | "FALSE"
  • AuthoringInfo = "Text"
  • BaseType = "Integer" | "Text"
  • CalType = "Integer"
  • CanToggleHidden = "TRUE" | "FALSE"
  • ClassInfo = "Text"
  • ColName = "Text"
  • Commas = "TRUE" | "FALSE"
  • Decimals = "Integer"
  • Description = "Text"
  • Dir = "Text"
  • DisplaceOnUpgrade = "TRUE" | "FALSE"
  • DisplayImage = "Text"
  • DisplayName = "Text"
  • DisplayNameSrcField = "Text"
  • Div = "Number"
  • EnableLookup = "TRUE" | "FALSE"
  • ExceptionImage = "Text"
  • FieldRef = "Text"
  • FillInChoice = "TRUE" | "FALSE"
  • Filterable = "TRUE" | "FALSE"
  • FilterableNoRecurrence = "TRUE" | "FALSE"
  • ForcedDisplay = "Text"
  • Format = "Text"
  • FromBaseType = "TRUE" | "FALSE"
  • Group = "Text"
  • HeaderImage = "Text"
  • Height = "Integer"
  • Hidden = "TRUE" | "FALSE"
  • HTMLEncode = "TRUE" | "FALSE"
  • ID = "Text"
  • IMEMode = "inactive"
  • Indexed = "TRUE" | "FALSE"
  • IsolateStyles = "TRUE" | "FALSE"
  • JoinColName = "Text"
  • JoinRowOrdinal = "Integer"
  • JoinType = "INNER" | "LEFT OUTER" | "RIGHT OUTER"
  • LCID = "Integer"
  • List = "Text"
  • Max = "Number"
  • MaxLength = "Integer"
  • Min = "Number"
  • Mult = "TRUE" | "FALSE"
  • Name = "Text"
  • NegativeFormat = "MinusSign" | "Parens"
  • Node = "Text"
  • NoEditFormBreak = "TRUE" | "FALSE"
  • NumLines = "Integer"
  • Percentage = "TRUE" | "FALSE"
  • PIAttribute = "Text"
  • PITarget = "Text"
  • PrependId = "TRUE" | "FALSE"
  • Presence = "TRUE" | "FALSE"
  • PrimaryKey = "TRUE" | "FALSE"
  • PrimaryPIAttribute = "Text"
  • PrimaryPITarget = "Text"
  • ReadOnly = "TRUE" | "FALSE"
  • ReadOnlyEnforced = "TRUE" | "FALSE"
  • RenderXMLUsingPattern = "TRUE" | "FALSE"
  • Required = "TRUE" | "FALSE"
  • RestrictedMode = "TRUE" | "FALSE"
  • ResultType = "Text"
  • RichText = "TRUE" | "FALSE"
  • RichTextMode = "Text"
  • RowOrdinal = "Integer"
  • Sealed = "TRUE" | "FALSE"
  • SeparateLine = "TRUE" | "FALSE"
  • SetAs = "Text"
  • ShowAddressBookButton = "TRUE" | "FALSE"
  • ShowField = "Text" | "Choice" | "Counter"
  • ShowInDisplayForm = "TRUE" | "FALSE"
  • ShowInEditForm = "TRUE" | "FALSE"
  • ShowInFileDlg = "TRUE" | "FALSE"
  • ShowInListSettings = "TRUE" | "FALSE"
  • ShowInNewForm = "TRUE" | "FALSE"
  • ShowInVersionHistory = "TRUE" | "FALSE"
  • ShowInViewForms = "TRUE" | "FALSE"
  • Sortable = "TRUE" | "FALSE"
  • SourceID = "Text"
  • StaticName = "Text"
  • StorageTZ = "UTC" | "Abstract"
  • StripWS = "TRUE" | "FALSE"
  • SuppressNameDisplay = "TRUE" | "FALSE"
  • TextOnly = "TRUE" | "FALSE"
  • Title = "Text"
  • Type = "Data_Type"
  • UniqueId = "Text"
  • UnlimitedLengthInDocumentLibrary = "TRUE" | "FALSE"
  • URLEncode = "TRUE" | "FALSE"
  • URLEncodeAsUrl = "TRUE" | "FALSE"
  • UserSelectionMode = "Text"
  • UserSelectionScope = "Integer"
  • Viewable = "TRUE" | "FALSE"
  • Width = "Integer"
  • WikiLinking = "TRUE" | "FALSE"
  • XName = "Text"

Links interesantes:

Hasta la próxima…