Sharepoint il download ed upload dei file da una Windows Form

Articolo che fornisce le basi per la gestione di SharePoint da una Windows Application .Net tramite i linguaggi di programmazione VB.Net e C#.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

In questo articolo vedremo le basi per la gestione dei file tramite applicazione Windows Form, utilizzando i linguaggi di programmazione più utilizzati quale VB.Net e C#.

Nell’articolo verrà fornito al lettore la conoscenza per rilevare il file da Sharepoint, e salvarlo sul proprio pc, inoltre come effettuare il caricamento (upload) di un file dal proprio pc a Sharepoint.

Come document library, ossia contenitore dei file, utilizzeremo quella di default che si trova nei siti appena si creano, la “Documents”.
Dopo aver caricato nella libreria dei documenti in Sharepoint, ed in particolare un file di tipo testo, possiamo creare il progetto Windows application, il tutto come mostrato in figura 1.

Figura 1 – i file caricati


Creazione del progetto e stesura del codice


Si crea un nuovo progetto di tipo Windows application, con il linguaggio di programmazione di proprio interesse, tra i vari modelli selezionare quello di tipo “Windows Application”.
Si ricorda che in Visual Studio, le applicazioni di tipo “Windows Application” vanno creati a 64 bit, altrimenti può verificarsi il seguente errore nel caso che viene eseguita l’applicazione
“An unhandled exception of type 'System.PlatformNotSupportedException' occurred in Microsoft.SharePoint.dll

Additional information: Microsoft SharePoint is not supported in 32-bit process. Please verify that you are running in a 64-bit executable.”
Per cambiare le impostazioni di compilazione, andare nella proprietà del progetto ed impostare a 64 bit la voce “Target CPU” in “Compile”
Aggiungere nella form due pulsanti, uno per il download e l’altro per il caricamento (upload) dei file in SharePoint.
Nella finestra esplora risorse, facciamo click con il tasto destro sulla voce “Riferimenti” o “References” nel caso che si ha la versione inglese, per aggiungere i riferimenti a Sharepoint.
Infatti nel caso che si vuole interagire con SharePoint da codice .Net, bisogna aggiungere il riferimento, che per la versione 2013 è “Microsoft.Sharepoint” 15.0.0.0 nella voce “Extensions” come mostrato in figura 2.

Figura 2 – L’aggiunta di riferimento a SharePoint


Dopo aver aggiunto i riferimenti a SharePoint, passiamo in visualizzazione codice della nostra form, per inserire lo spazio dei nomi per la gestione delle classi di SharePoint.
In alto sopra ad ogni dichiarazione inseriamo lo spazio dei nomi per tale riferimento, e per la gestione dei file, qui di seguito si riporta tale dichiarazione, per entrambi linguaggi.

VB.Net
Imports Microsoft.SharePoint
Imports System.IO
C#
using Microsoft.SharePoint;
using System.IO;

Ora torniamo in visualizzazione codice, e facciamo doppio click sul pulsante di “Download” , e scriviamo il codice per scaricare il file.
Il file che andremo a scaricare si chiama “Inserire.txt”.
Ora scriviamo il codice per eseguire il download.
Verranno utilizzate le classi per la gestione del sito (SpSite) della parte web, ossia le varie documentary (SpWeb) , le liste tramite la classe Splist, con il quale verrà indicata quella dei documenti ed infine l’elemento selezionato tramite SpListItem, che è il singolo file.
Qui di seguito la dichiarazione per entrambi i linguaggi.

VB.Net
Private Sub Download(ByVal IdFile As Int32)
Using site As SPSite = New SPSite("http://server/sites/test/Shared%20Documents")
Using web As SPWeb = site.OpenWeb()
Dim risultato = web.Lists
Dim list As SPList = web.Lists("Documents")
Dim spliDocument As SPListItem = list.GetItemById(IdFile)
Dim FileDaScaricare As Byte() = spliDocument.File.OpenBinary()
File.WriteAllBytes("C:\" & spliDocument.File.Name, FileDaScaricare)
End Using
End Using
End Sub
C#
private void Download(Int32 IdFile)
{
using (SPSite site = new SPSite("http:/server/sites/test/Shared%20Documents"))
{
using (SPWeb web = site.OpenWeb())
{
var risultato = web.Lists;
SPList list = web.Lists["Documents"];
SPListItem spliDocument = list.GetItemById(IdFile);
byte[] FileDaScaricare = spliDocument.File.OpenBinary();
File.WriteAllBytes("C:\\" + spliDocument.File.Name, FileDaScaricare);
}
}
}

Questa funzione la dovremmo richiamare dal pulsante denominata “Download” qui di seguito si riporta il codice per l’evento click del pulsante “Download”.

Vb.Net
Private Sub BtnDownload_Click(sender As Object, e As EventArgs) Handles BtnDownload.Click
Download(5)
End Sub
C#
private void BtnDownload_Click(object sender, EventArgs e)
{
Download(5);
}

Ora dobbiamo scrivere la funzione per effettuare il caricamento dei file in SharePoint

Il codice è di facile comprensione, oltre a creare oggetti per la gestione dei siti e del web, tramite il metodo “Add” della proprietà “File” dell’oggetto “Spweb” si carica un file all’interno di SharePoint, indicando due parametri, il percorso con nome file, e l’array di byte.
Qui di seguito si riporta la dichiarazione di tale funzione per entrambi i linguaggi.

VB.Net
vate Sub UploadFile()
Using site As SPSite = New SPSite("http://server/sites/test/Shared%20Documents")
Using web As SPWeb = site.OpenWeb()
Dim fileDaCaricare As Byte() = File.ReadAllBytes("C:\MioFile.pdf")
web.Files.Add("http://server/sites/test/Shared%20Documents/MioFile.pdf", fileDaCaricare)
End Using
End Using
End Sub
C#
private void UploadFile()
{
using (SPSite site = new SPSite("http://server/sites/test/Shared%20Documents"))
{
using (SPWeb web = site.OpenWeb())
{
byte[] fileDaCaricare = File.ReadAllBytes("C:\\MioFile.pdf");
web.Files.Add("http://server/sites/test/Shared%20Documents/MioFile.pdf", fileDaCaricare);
}
}
}

Siamo giunti alla parte finale della stesura del codice, dobbiamo scrivere nell’evento click del pulsante per richiamare la funzione di caricamento.
Qui di seguito tale dichiarazione.

VB.Net
Private Sub BtnUpload_Click(sender As Object, e As EventArgs) Handles BtnUpload.Click
UploadFile()
End Sub
C#
private void BtnUpload_Click(object sender, EventArgs e)
{
UploadFile();
}

Conclusioni


L’articolo ha voluto fornire le basi al lettore per utilizzare da un progetto di tipo “Windows Application” il portale SharePoint. In questo modo si possono creare applicazioni esterne a questo sistema, per compiere determinate attività o estendere quelle funzionalità che all’interno del portale “SharePoint” non si possono utilizzare.
Referenziando la libreria per la gestione di SharePoint, tramite l’utilizzo di apposite classi possiamo realizzare interessante applicazioni che si interfacciano con questo sistema.