SharePoint 2010: Carga de archivos con el modelo de objetos en cliente!

Como sabéis, el modelo de objetos en cliente de SharePoint 2010 facilita el poder interoperar de forma remota con sitios de SharePoint en base a tres implementaciones: .NET, Silverlight y ECMAScript. El ámbito de operación de cualquiera de las tres implementaciones está dado por un nivel superior determinado por la colección de sitios y un nivel inferior que podemos considera que es un elemento / documento de biblioteca o lista. Entre medias, podemos crear muchos de los elementos específicos de la jerarquía de SharePoint como por ejemplo crear sitios, listas, elementos en listas, etc. Como ejemplo de la potencia del modelo de objetos en cliente, resulta bastante sencillo cargar un archivo en una biblioteca de documentos desde por ejemplo una aplicación de escritorio en la que usemos la implementación .NET:

   1: using System;

   2: using System.Collections.Generic;

   3: using System.Linq;

   4: using System.Text;

   5:  

   6: //Espacios de nombres necesarios

   7: using MO_NET=Microsoft.SharePoint.Client;

   8: using System.IO;

   9:  

  10: namespace NetClientOMDemo

  11: {

  12:     class Program

  13:     {

  14:         static void Main(string[] args)

  15:         {

  16:             try

  17:             {

  18:                 using (MO_NET.ClientContext ctx = 

  19:                     new MO_NET.ClientContext("http://demo2010a:100/sites/PortalIntranet/"))

  20:                 {

  21:                     MO_NET.List lBibliotecaDocumentos = 

  22:                         ctx.Web.Lists.GetByTitle("Documentos compartidos");

  23:                     MO_NET.FileCreationInformation fciArchivo =

  24:                         new MO_NET.FileCreationInformation();

  25:                     fciArchivo.Content = File.ReadAllBytes(@"....8 - Workflow.pptx");

  26:                     fciArchivo.Url = "08 - Workflow.pptx";

  27:                     fciArchivo.Overwrite = true;

  28:                     MO_NET.File fToUpload = 

  29:                         lBibliotecaDocumentos.RootFolder.Files.Add(fciArchivo);

  30:                     ctx.Load(fToUpload);

  31:                     ctx.ExecuteQuery();

  32:                 }

  33:             }

  34:             catch (Exception ex)

  35:             {

  36:                 Console.WriteLine("Error: {0}", ex.Message);

  37:             }

  38:             Console.ReadLine();

  39:         }

  40:     }

  41: }

Como vemos, los pasos a seguir son:

  • Definir un objeto de tipo ClientContext que se encargará de “orquestar” todas las peticiones que haya entre cliente y servidor.
  • Accedemos a la biblioteca con la que queremos trabajar mediante el método GetByTitle.
  • Definimos un objeto de tipo FileCreationInformation que nos va a permitir cargar un documento en la biblioteca en cuestión.
  • Configuramos dicho objeto especificando el archivo físico, el nombre en la biblioteca y si vamos a sobreescribir.
  • Llamamos al método Add() de la biblioteca de documentos para añadir el documento en cuestión.
  • Como siempre, definimos lo que queremos hacer mediante el método Load().
  • Realizamos de forma efectiva la ejecución de las operaciones mediante ExecuteQuery().

Y el resultado   obtenido tras ejecutar la carga del archivo con nuestra aplicación cliente es que este se carga de forma efectiva en la biblioteca de documentos.

image

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *