SharePoint: Disponibles las actualizaciones acumuladas de diciembre de 2015!

Como cada mes, ya tenemos disponibles las actualizaciones acumuladas (CUs) tanto para SharePoint 2013 como para SharePoint 2010:

Actualizaciones Acumuladas para SharePoint 2010

Como siempre, os recuerdo que para poder instalar estos CUs se necesita tener aplicado el SP 2 de SharePoint 2010:

Artículos de KB

  • KB 3114418 – SharePoint Foundation 2010
  • KB 3114408 – SharePoint Server 2010
  • KB 3114405 – Project Server 2010

Paquetes de instalación:

Actualizaciones acumuladas para SharePoint 2013

En este caso, es necesario tener aplicado el SP 1 de SharePoint 2013:

Artículos de KB:

  • KB 3114339 – SharePoint Foundation 2013 December 2015 CU
  • KB 3114345 – SharePoint Server 2013 December 2015 CU
  • KB 3114341 – SharePoint Server 2013 with Project Server December 2015 CU
  • there is no December 2015 CU for Office Web Apps Server 2013

Paquetes de instalación:

Referencias:

[Eventos]: Publicadas las sesiones de CEUS By Iberian SharePoint Conference!

Desde la organización de CEUS By Iberian SharePoint Conference seguimos quemando etapas en el camino que nos llevará a realizar los días 9 y 10 de junio el evento más importante de Productividad, Nube y Dispositivos de 2015 en España. En este sentido, nos complace comunicaros que ya hemos publicado las sesiones que los speakers y patrocinadores de la conferencia van a realizar en la misma: http://www.iberianspc.com/Paginas/Noticias/Ya-tenemos-las-sesiones.aspx. Os recuerdo las temáticas de la conferencia:

  • Reinvent Productivity & Business Processes
  • Build the intelligent Cloud
  • Customer Sucess Stories
  • Create more personal computing
  • Universal Communications

Si aún no te has registrado en la conferencia o en los workshops: ¿A qué esperas? El registro está abierto desde hace unos días y las plazas son limitadas: http://www.iberianspc.com/registrate

image

SharePoint: Disponibles las actualizaciones acumuladas de marzo de 2013!

Microsoft acaba de liberar las actualizaciones acumuladas tanto para SharePoint 2010 como para SharePoint 2013.

Actualizaciones acumuladas para SharePoint 2010

Para instalar esta actualización es necesario tener instalado el SP 2 de SharePoint 2010 además de todos los paquetes de idioma que apliquen.

Actualizaciones acumuladas para SharePoint 2013

En este caso es necesario tener instalado o el SP1 de SharePoint 2013 o bien la actualización pública (Public Update) de marzo de 2013.

Referencias

SharePoint: Should I use Office x 64 or Office x32?

Whenever I talk about integrating SharePoint and Office, I recommend to my customers to use the Office 32-bit version even if they are using a x64 Windows Operating Systems … and they always look at me very puzzled :P. Why do I make this recommendation? Because, unfortunately, there are certain functions of office and SharePoint integration that depend on the corresponding Active X control that gives problems when you have an x64 version of Office. More information here: http://technet.microsoft.com/en-us/library/ee681792(v=office.15).aspx

SharePoint: Como añadir programáticamente una Web Part “Custom” a una página (I)!

Como siempre suelo decir, pocas cosas hay que no se puedan hacer de forma programática en SharePoint :P. En este artículo os voy a enseñar como podemos agregar de forma programática una Web Part personalizada en una página de SharePoint. En concreto, vamos a ver como agregar la Web Part en el control de texto enriquecido de una página Wiki de un sitio de grupo:

  • Como siempre, lo primero que tenemos que hacer es añadir en nuestro proyecto los espacios de nombres necesarios. Dentro de los mismos, los más importantes son Microsoft.SharePoint.WebPartPages y System.Web.UI.WebControls.WebParts.
   1: using Microsoft.SharePoint;

   2: using SPWebPartPages = Microsoft.SharePoint.WebPartPages;

   3: using System.Web.UI.WebControls.WebParts;

   4: using System.Xml;

   5: using System.IO;

   6: using System.Globalization;

  • A continuación, para añadir una Web Part “Custom” en el texto enriquecido de una página Wiki tenemos que hacer lo siguiente:
    • En primer lugar crear una instancia de SPLimitedWebPartManager utilizando el método GetLimitedWebPartManager() de SPWeb al que únicamente tenemos que pasarle la Url relativa de la página Wiki dónde queremos añadir la WebPart.
    • A continuación creamos una instancia de WebPart utilizando un método personalizado que nos permite obtener la definición de la Web Part a añadir (el método lo tenéis más abajo).
    • Lo siguiente que vamos a hacer es crear un identificador único de la Web Part que luego utilizaremos para añadir la Web Part dentro del texto enriquecido de la página Wiki.
    • Añadimos la Web Part mediante el método AddWebPart() de SPLimitedWebPartManager. Este método necesita tres parámetros:
      • La Web Part a añadir.
      • La zona de Web Parts que en este caso es “wpz” que es una zona de Web Parts oculta presente tanto en páginas de tipo Wiki como en páginas de publicación y que se utiliza para añadir Web Parts que posteriormente referenciaremos en contenido de tipo texto enriquecido.
      • El índice de la Web Part, es decir, el orden en el que va a aparecer.
    • Accedemos a la página Wiki creando una instancia de tipo SPFile a partir del método GetFile() de SPWeb.
    • Y ahora viene la parte complicada: tenemos que añadir al texto enriquecido de la página Wiki el código HTML necesario en el que por una parte estructuremos el contenido y por otra hagamos referencia a la Web Part añadida en la zona “wpz”. Fijarmos como en el HTML estoy definiendo como voy a pintar la información en el texto enriquecido y como estoy referenciando la Web Part personalizad mediante el ID asignado a la misma. Si queréis conocer en detalle el porque de esta forma de añadir Web Parts a texto enriquecido, os recomiendo dos artículos de obligada lectura:
    • A continuación lo que hacemos es inyectar el código HTML dentro del WikiField de la página Wiki y actualizamos dicha página.
    • Finalmente, liberamos el objeto SPLimitedWebPartManager y listo, tras ejecutar este código podréis comprobar que la Web Part se añade dónde queréis en el control de texto enriquecido de la página Wiki.
   1: static void AddCustomWebPart()

   2: {

   3:     using (SPSite spsSitio = new SPSite("http://demo2010a:200/"))

   4:     {

   5:         using (SPWeb spwWeb = spsSitio.OpenWeb())

   6:         {

   7:             //WebPart Manager

   8:             SPWebPartPages.SPLimitedWebPartManager spwpmWebPartManager =

   9:                 spwWeb.GetLimitedWebPartManager("SitePages/ZonasTest.aspx",

  10:                     PersonalizationScope.Shared);

  11:  

  12:             //WebPart a añadir

  13:             WebPart wpToAdd = CreateWebPart(spwWeb, "SPSLWPDemos_SPSilverlightListInspectorWP.webpart", spwpmWebPartManager);

  14:  

  15:             //Guid para la WebPart

  16:             Guid storageKey = Guid.NewGuid();

  17:             string wpId = String.Format("g_{0}", storageKey.ToString().Replace('-', '_'));

  18:             wpToAdd.ID = wpId;

  19:  

  20:             spwpmWebPartManager.AddWebPart(wpToAdd, "wpz", 0);                              

  21:  

  22:             //Añadiendo WebPart en el texto enriquecido

  23:             SPFile spfWiki = spwWeb.GetFile(spwWeb.Url + "/SitePages/ZonasTest.aspx");

  24:             

  25:             string html = 

  26:                 String.Format(CultureInfo.InvariantCulture,

  27:                     "<div class=\"ms-rtestate-read ms-rte-wpbox\" contentEditable=\"false\"><div class=\"ms-rtestate-read {0}\" id=\"div_{0}\"></div></div>", 

  28:                     storageKey.ToString("D"));

  29:             spfWiki.Item[SPBuiltInFieldId.WikiField] = html;

  30:             spfWiki.Item.UpdateOverwriteVersion();

  31:             spwpmWebPartManager.Dispose();

  32:         }

  33:     }

  34: }

  • En cuanto al método CreateWebPart(), cómo veis simplemente permite devolver la Web Part en cuestión a partir de localizarla en la galería de Web Parts:
    • Mediante una consulta CAML obtenemos la referencia a la Web Part en cuestión.
    • Mediante un objeto XmlReader, obtenemos la definición de la Web Part.
    • Finalmente, mediante el método ImportWebPart() de SPLimitedWebPartManager creamos la instancia de Web Part que necesitamos.
   1: static WebPart CreateWebPart(SPWeb web, string webPartName, 

   2:     SPWebPartPages.SPLimitedWebPartManager manager)

   3: {

   4:     SPQuery query = new SPQuery();

   5:     query.Query = 

   6:         "<Where><Eq><FieldRef Name='FileLeafRef'/><Value Type='File'>" +

   7:         webPartName +

   8:         "</Value></Eq></Where>";

   9:      

  10:     //Galería de WebParts

  11:     SPList webPartGallery = null;

  12:     if (web.ParentWeb==null)

  13:     {

  14:         webPartGallery = web.GetCatalog(

  15:            SPListTemplateType.WebPartCatalog);

  16:     }

  17:     else

  18:     {

  19:         webPartGallery = web.Site.RootWeb.GetCatalog(

  20:            SPListTemplateType.WebPartCatalog);

  21:     }

  22:  

  23:     //Extraemos la WebPart de interés

  24:     SPListItemCollection webParts = webPartGallery.GetItems(query);

  25:  

  26:     //Extraemos la definición de la WebPArt

  27:     XmlReader xmlReader = new XmlTextReader(webParts[0].File.OpenBinaryStream());

  28:     string errorMessage;

  29:  

  30:     //Instancia de la WebPart

  31:     WebPart webPart = manager.ImportWebPart(xmlReader, out errorMessage);

  32:     //WebPart webPart=null;

  33:  

  34:     return webPart;

  35: }

SharePoint 2013: Resumen de posts (XIII)!

Después del recopilatorio de enlaces interesantes, le toca el turno al resumen de posts sobre SharePoint publicados durante el mes de julio en este blog. Este es el primer resumen de posts que aparece en este blog y que continua con la numeración del los resúmenes que podéis encontrar en el blog del CIIN.

Capacidades

Desarrollo

IT

Office 365

Otros

SharePoint 2010 y Azure: Integración con el Windows Azure Data Market (III)!

Siguiendo con la serie de posts sobre la integración de SharePoint y el Windows Azure Data Market, vamos a cerrar el círculo y ver como otra posibilidad de integración pasa por crear vistas de datos usando SharePoint Designer 2010 (SPD 2010). Os recuerdo antes los artículos previos de la serie:

Lo interesante de esta aproximación es que nos permite integrar datos del Windows Azure Data Market tanto en SharePoint 2010 On-Premise como en SharePoint Online (SPO) en Office 365. Para crear una vista de datos a partir de una fuente disponible en el Windows Azure Data Market:

image image image
  • De esta forma automáticamente tenemos una primera vista de datos disponible en la página y el panel de origen de datos que usaremos a continuación para generar la vista como queremos escogiendo los campos de información necesarios.
  • Eliminamos la vista que añade SPD 2010, escogemos los campos que queremos que formen parte de la vista y los arrastraos a la zona de WebParts de la página.
  • En la cinta de configuración de la vista de datos, pulsamos sobre “Add/Remove Columns” para añadir nuevas columnas y/o ordenar las columnas existentes.
image image image
  • Guardamos los cambios y previsualizamos la vista en el explorador. Y listo.

image