Introduzione allo sviluppo per SharePoint Esercitazione pratica Manuale dell esercitazione SPCHOL303 - Utilizzo di un modello a oggetti client e dei servizi REST da un applicazione.net - C#
Questo documento viene fornito «così com è». Le informazioni e le opinioni espresse nel presente documento, inclusi gli URL e altri riferimenti a siti Web Internet, possono essere soggette a modifiche senza preavviso. L utente accetta di utilizzarlo a proprio rischio. Il presente documento non implica la concessione di alcun diritto di proprietà intellettuale relativo ai prodotti Microsoft. È possibile copiare e utilizzare questo documento per fini di riferimento interno. 2010 Microsoft. Tutti i diritti riservati.
Sommario SPCHOL303 - UTILIZZO DI UN MODELLO A OGGETTI CLIENT E DEI SERVIZI REST DA UN APPLICAZIONE.NET... 2 Obiettivo dell esercitazione... 2 Risorse aggiuntive... 2 Informazioni preliminari... 2 Esecuzione dell accesso alla macchina virtuale... 2 Percorsi... 2 Prerequisiti per l esercitazione... 3 Copia di esempi di codice dal documento di Word... 3 Frammenti di codice... 4 Esercizio 1 - Creazione di un applicazione WPF con il modello a oggetti client... 5 Attività 1 - Creazione di una nuova applicazione.net WPF... 5 Attività 2 - Utilizzo del modello a oggetti client... 7 Esercizio 2 - Creazione di un applicazione Windows Form con i servizi REST di SharePoint... 10 Attività 1 - Creazione di una nuova applicazione Windows Form... 10 Attività 2 - Aggiunta del riferimento al servizio dati WCF degli elenchi SharePoint... 12 Attività 3 - Accesso ai dati dell elenco SharePoint... 17 Attività 4 - Aggiornamento dei dati dell elenco SharePoint... 23 Attività 5 - Verifica dei dati aggiornati... 25 Riepilogo dell esercitazione... 26 Pagina 1
SPCHOL303 - Utilizzo di un modello a oggetti client e dei servizi REST da un applicazione.net Tempo previsto per completare l esercitazione: 30 minuti Per questi esercizi sono necessari Visual Studio 2010 e SharePoint Foundation 2010, che sono installati nella macchina virtuale utilizzata in questa esercitazione. Obiettivo dell esercitazione Il modello a oggetti client include un modello a oggetti unificato e completo che consente a SharePoint di accedere ai dati del sito di SharePoint da client remoti. L utilizzo della raccolta del modello a oggetti client consente agli sviluppatori di creare l applicazione SharePoint il più rapidamente possibile. In questo modo viene fornito l accesso completo ai dati del sito di SharePoint. L obiettivo di questa esercitazione consiste nell illustrare: Come utilizzare il nuovo modello a oggetti client. Come utilizzare il nuovo framework dell API REST in SharePoint 2010. Risorse aggiuntive In questa esercitazione sono incluse le risorse aggiuntive seguenti: Il manuale di questa esercitazione SPCHOL303_Manual_CS.docx Il presente documento Il codice sorgente Completed\CS\Ex1 Completed\CS\Ex2 Il codice sorgente completo dell esercitazione in C# Risorse Resources\CS Diverse altre risorse utilizzate in questa esercitazione Informazioni preliminari Esecuzione dell accesso alla macchina virtuale Eseguire l accesso alla macchina virtuale con le credenziali seguenti: Nome utente: Amministratore Password: pass@word1 Percorsi In questa esercitazione pratica sono incluse diverse altre risorse in percorsi fissi. Per impostazione predefinita, si presuppone che la directory di base dell esercitazione pratica sia C:\Content Packs\Packs\SharePoint 2010 Developer Labs 1.0\Supporting Files\SPCHOL303\Resources. La cartella di lavoro predefinita per questa esercitazione è C:\SPHOLS\SPCHOL303. Pagina 2
Prerequisiti per l esercitazione 1. Passare alla directory di base Supporting Files\SPCHOL303\Resources dell esercitazione pratica ed eseguire lo script di PowerShell denominato optimize.ps1: Fare clic con il pulsante destro del mouse su optimize.ps1 e scegliere Esegui con PowerShell: Figura 1 - Esecuzione dello script di PowerShell Verrà aperta una finestra di PowerShell per l esecuzione dello script. Attendere che venga completata l esecuzione dello script di PowerShell e che venga chiusa la finestra di PowerShell (questa operazione può richiedere tempo): Figura 2 - Finestra di PowerShell con lo script in esecuzione Copia di esempi di codice dal documento di Word Copiare e incollare codice da questo documento di Word a Visual Studio è un operazione possibile solo per le sezioni contenenti codice formattato, ad esempio: Console.WriteLine("This is safe code!"); Pagina 3
Nel codice non incluso in sezioni di questo tipo possono essere presenti caratteri Unicode o altri caratteri invisibili non riconosciuti come codice XML o C#/VB valido, ad esempio: Console.WriteLine( This is NOT safe code!! ); Frammenti di codice Per inserire il codice appropriato nell esercitazione, è inoltre possibile utilizzare frammenti di codice. Per utilizzare il frammento di codice necessario per questa esercitazione: Fare clic con il pulsante destro del mouse sul file di codice in cui si desidera inserire il frammento di codice. Scegliere Inserisci frammento di codice. Figura 3 - Inserisci frammento di codice Selezionare il frammento o i frammenti di codice necessari dalla raccolta Frammenti di codice. Pagina 4
Esercizio 1 - Creazione di un applicazione WPF con il modello a oggetti client In questo esercizio verrà creata un applicazione.net WPF in cui viene utilizzato il nuovo modello a oggetti client di SharePoint per accedere ai dati di SharePoint. Attività 1 - Creazione di una nuova applicazione.net WPF In questa attività verrà creata una nuova applicazione.net WPF. 2. Aprire Visual Studio 2010 da Start Tutti i programmi Microsoft Visual Studio 2010 Microsoft Visual Studio 2010. 3. Scegliere File Nuovo Progetto dal menu. 4. Nella finestra di dialogo Nuovo progetto selezionare Visual C# Windows da Modelli installati. 5. Selezionare il modello Applicazione WPF nell elenco. Figura 4 - Progetto Applicazione WPF 6. Nella casella di testo Nome immettere SPCHOL303-Ex1. Pagina 5
7. Nella casella di testo Percorso immettere C:\SPHOLS\SPCHOL303\CS\Ex1. Figura 5 - Finestra di dialogo di Visual Studio Nuovo progetto 8. Deselezionare Crea directory per soluzione. 9. Fare clic su OK. 10. In Visual Studio verrà creato il nuovo progetto SPCHOL303-Ex1 e verranno aggiunti i file necessari. Figura 6 - Esplora soluzioni Pagina 6
Attività 2 - Utilizzo del modello a oggetti client 1. Fare clic con il pulsante destro del mouse su SPCHOL303-Ex1 in Esplora soluzioni e scegliere Proprietà. 2. Nella scheda Applicazione modificare la proprietà Framework di destinazione impostandola su.net Framework 4. 3. In Esplora soluzioni fare clic con il pulsante destro del mouse su Riferimenti e scegliere Aggiungi riferimento Figura 7 - Aggiungi riferimento 4. Passare alla scheda Sfoglia. 5. Digitare il percorso seguente nella casella di testo Nome file e premere INVIO: C:\Programmi\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI 6. Selezionare Microsoft.SharePoint.Client.dll e Microsoft.SharePoint.Client.Runtime.dll e quindi fare clic su OK. Figura 8 - Finestra di dialogo Aggiungi riferimento Pagina 7
7. In Esplora soluzioni fare doppio clic su MainWindow.xaml per aprire la visualizzazione XAML. 8. Inserire il codice XAML seguente nell elemento Grid nella visualizzazione XAML. <ListBox Height="238" Margin="12,11,12,13" Name="ListBox1" Width="254" /> Questo codice XAML crea un nuovo controllo ListBox. 9. Il controllo dovrebbe essere visibile nella visualizzazione di progettazione. Figura 9 - Visualizzazione di progettazione di Window1.xaml 10. In Esplora soluzioni fare clic con il pulsante destro del mouse su MainWindow.xaml e scegliere Visualizza codice. Figura 10 - Visualizza codice 11. Aggiungere le istruzioni using seguenti: using Microsoft.SharePoint.Client; using SP = Microsoft.SharePoint.Client; Frammenti di codice: My Code Snippets spchol303_ex1_namespaces Pagina 8
12. Inserire il blocco di codice seguente nel costruttore Window1 dopo la chiamata al metodo InitializeComponent(): ClientContext context = new ClientContext("http://intranet.contoso.com"); Web site = context.web; context.load(site, osite => osite.title); context.executequery(); Title = site.title; ListCollection lists = site.lists; IEnumerable<SP.List> listscollection = context.loadquery(lists.include(l => l.title, l => l.id)); context.executequery(); ListBox1.ItemsSource = listscollection; ListBox1.DisplayMemberPath = "Title"; Frammento di codice: My Code Snippets spchol303_ex1_constructor Questo blocco di codice: Crea un nuovo contesto client per il sito di SharePoint. Esegue query sugli elenchi SharePoint disponibili nel sito e recupera gli elenchi insieme alle relative proprietà, ovvero Title e Id. Associa la raccolta elenchi al controllo ListBox WPF. 13. Premere F5 per avviare il debug dell applicazione. 14. Nella finestra dell applicazione dovrebbe essere visibile il controllo ListBox completato con gli elenchi SharePoint disponibili. Figura 11 - Finestra dell applicazione 15. Chiudere la finestra dell applicazione. Negli ultimi minuti è stato utilizzato il nuovo modello a oggetti client di SharePoint ed è stata creata un applicazione.net WPF per recuperare i dati di SharePoint da un sito. Pagina 9
Esercizio 2 - Creazione di un applicazione Windows Form con i servizi REST di SharePoint In questo esercizio si accederà ai dati contenuti in un elenco SharePoint e si aggiorneranno tali dati utilizzando il servizio dati WCF degli elenchi SharePoint da un applicazione Windows Form. Attività 1 - Creazione di una nuova applicazione Windows Form In questa attività verrà creata una nuova applicazione Windows Form. 1. Aprire Visual Studio 2010 da Start Tutti i programmi Microsoft Visual Studio 2010 Microsoft Visual Studio 2010. 2. Scegliere File Nuovo Progetto dal menu. 3. Nella finestra di dialogo Nuovo progetto selezionare Visual C# Windows da Modelli installati. 4. Selezionare Applicazione Windows Form nei modelli di progetto. Figura 12 - Nuovo progetto Applicazione Windows Form Pagina 10
5. Nella casella di testo Nome immettere SPCHOL303-Ex2. 6. Nella casella di testo Percorso immettere C:\SPHOLS\SPCHOL303\CS\Ex-2. Figura 13 - Finestra di dialogo di Visual Studio Nuovo progetto 7. Deselezionare Crea directory per soluzione. 8. Fare clic su OK. Pagina 11
9. In Visual Studio verrà creato il nuovo progetto SPCHOL303-Ex2 e verranno aggiunti i file necessari. Figura 14 - SPCHOL303-Ex2 in Esplora soluzioni Attività 2 - Aggiunta del riferimento al servizio dati WCF degli elenchi SharePoint In questa attività verrà aggiunto un riferimento ai nuovi servizi dati ADO.NET degli elenchi SharePoint per accedere ai dati dell elenco Employees dal sito di SharePoint locale. 1. Scegliere Dati Aggiungi nuova origine dati dalla barra dei menu principale di Visual Studio. Figura 15 - Aggiungi nuova origine dati Pagina 12
2. Nella Configurazione guidata origine dati selezionare SharePoint e fare clic su Avanti >. Figura 16 - Configurazione guidata origine dati 3. Nella finestra di dialogo Aggiungi riferimento al servizio digitare l URL seguente nella casella di testo Indirizzo e fare clic su Vai: http://intranet.contoso.com/_vti_bin/listdata.svc Pagina 13
4. Dovrebbe essere visibile un servizio aggiunto nel riquadro sinistro Servizi della finestra di dialogo (il nome può variare), mentre nella casella di testo Spazio dei nomi dovrebbe essere visualizzato ServiceReference1, come nella figura seguente: Figura 17 - Servizio dati dell elenco I servizi Web di SharePoint sono contenuti nella directory virtuale _vti_bin. ListData.svc è il servizio dati dell elenco SharePoint in cui viene utilizzata l API REST. Questo servizio Web consente di utilizzare i dati dell elenco SharePoint tramite l interfaccia REST. Pagina 14
5. Fare clic su TeamSiteDataContext ed espanderlo per esplorare i diversi elementi del servizio: Figura 18 - Elementi del servizio 6. Fare clic su OK. Pagina 15
7. Fare clic su Fine nella Configurazione guidata origine dati. Figura 19 - Riferimento al servizio aggiunto 8. In questo modo il riferimento al servizio verrà aggiunto alla soluzione: Figura 20 - Riferimento al servizio Pagina 16
Attività 3 - Accesso ai dati dell elenco SharePoint 1. In questa attività si accederà ai dati dell elenco Employees che verranno recuperati utilizzando il servizio dati WCF degli elenchi SharePoint. 2. Fare clic con il pulsante destro del mouse su Riferimenti e scegliere Aggiungi riferimento... 3. Nella finestra di dialogo Aggiungi riferimento passare alla scheda.net e selezionare WindowsBase. 4. Fare clic su OK. 5. Fare doppio clic su Form1.cs in Esplora soluzioni. Verrà visualizzato Progettazione Windows Form. 6. Scegliere Dati Mostra origini dati dal menu di Visual Studio 2010. Figura 21 - Mostra origini dati Pagina 17
7. Verrà aperta la finestra Origini dati con il riferimento al servizio aggiunto nell Attività 2 insieme agli elenchi SharePoint disponibili nel sito. L origine dati è costituita dagli elenchi SharePoint e dalle raccolte documenti nel formato di Entity Data Model. Fare clic sull icona a forma di puntina per bloccare l elenco lasciandolo aperto. Figura 22 - Finestra Origini dati Pagina 18
8. Trascinare Employees dalla finestra Origini dati e rilasciarlo nella finestra Form1. La griglia dati Employees verrà inserita nel form. Regolare il form e la griglia dati adattandoli rispettivamente alla larghezza e all altezza: Figura 23 - Finestra Windows Form e griglia dati Employees Pagina 19
9. Fare clic con il pulsante destro del mouse in un punto qualsiasi della griglia dati Employees e scegliere Modifica colonne. Figura 24 - Modifica colonne Pagina 20
10. Nella finestra Modifica colonne rimuovere tutte le colonne ad eccezione delle tre riportate di seguito. Per rimuovere una colonna, selezionarla nell elenco Colonne selezionate e fare clic sul pulsante Rimuovi: Fullname JobTitle Team Figura 25 - Finestra Modifica colonne 11. Fare clic su OK. Pagina 21
12. Dovrebbe visualizzarsi la griglia dati aggiornata con le modifiche: Figura 26 - Griglia dati aggiornata 13. Fare doppio clic sulla barra del titolo nella finestra di progettazione (in cui è riportato Form1) per aggiungere il metodo Form1_Load. In questo modo verrà aperta la visualizzazione Codice: Figura 27 - Metodo Form1_Load 14. Aggiungere le istruzioni using seguenti nel file code-behind: using SPCHOL303_Ex2.ServiceReference1; using System.Net; Frammento di codice: My Code Snippets spchol303_ex2_namespaces 15. Inserire il codice seguente immediatamente dopo la dichiarazione della classe Form1: TeamSiteDataContext context = new TeamSiteDataContext(new Uri("http://intranet.contoso.com/_vti_bin/ListData.svc")); Frammento di codice: My Code Snippets spchol303_ex2_context Pagina 22
Figura 28 - TeamSiteDataContext 16. Inserire il codice seguente nel metodo Form1_Load: context.credentials = CredentialCache.DefaultCredentials; employeesbindingsource.datasource = context.employees; Frammento di codice: My Code Snippets spchol303_ex2_form_load 17. Premere F5 per avviare il debug dell applicazione. 18. Dovrebbe visualizzarsi la finestra dell applicazione con la griglia dati completata con l elenco Employees: Figura 29 - Finestra dell applicazione 19. Chiudere la finestra dell applicazione. Negli ultimi minuti si è avuto accesso ai dati dell elenco SharePoint utilizzando il nuovo servizio dati WCF degli elenchi SharePoint. Attività 4 - Aggiornamento dei dati dell elenco SharePoint In questa attività verrà aggiornato il campo Fullname di un dipendente e le modifiche verranno salvate nel sito di SharePoint. Pagina 23
1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1.cs e scegliere Visualizza finestra di progettazione. 2. Nella griglia dati Employees fare clic su BindingNavigator. Figura 30 - BindingNavigator 3. In BindingNavigator fare clic con il pulsante destro del mouse sul pulsante Salva ( ) e scegliere Enabled. Figura 31 - Attivazione del pulsante Salva 4. Fare doppio clic sul pulsante Salva in BindingNavigator per generare il metodo Save: Figura 32 - Metodo Save 5. Inserire il codice seguente nel metodo employeesbindingnavigatorsaveitem_click: context.savechanges(); Frammento di codice: My Code Snippets spchol303_ex2_save_method 6. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1.cs e scegliere Visualizza finestra di progettazione. 7. Nella parte inferiore della finestra di progettazione fare clic con il pulsante destro del mouse su employeesbindingsource e scegliere Proprietà: Figura 33 - Proprietà di employeesbindingsource Pagina 24
8. Nella finestra Proprietà fare clic sull icona Eventi ( ). 9. Fare doppio clic sull evento CurrentItemChanged. In Visual Studio verrà generato l evento di tipo ItemChanged per employeesbindingsource: Figura 34 - Metodo employeesbindingsource_currentitemchanged 10. Inserire il codice seguente nel metodo employeesbindingsource_currentitemchanged: context.updateobject(employeesbindingsource.current); Frammento di codice: My Code Snippets spchol303_ex2_item_changed 11. Premere F5 per avviare il debug dell applicazione. 12. Dovrebbe visualizzarsi la finestra dell applicazione con l elenco di dipendenti. 13. Fare clic sul primo dipendente e cambiare Fullname da Kim Abercrombie in Kim: Figura 35 - Modifica di Fullname 14. Premere INVIO e fare clic sul pulsante Salva ( ). 15. Le modifiche apportate a Fullname per il dipendente selezionato verranno salvate nel sito di SharePoint. 16. Chiudere la finestra dell applicazione. Attività 5 - Verifica dei dati aggiornati In questa attività verranno verificati i dati del dipendente aggiornati nell Attività 4. 1. Aprire Internet Explorer e accedere al sito di SharePoint seguente: http://intranet.contoso.com 2. Se vengono richiesti i dati per l autenticazione, immettere i dettagli seguenti: Nome utente: Amministratore Password: pass@word1 Pagina 25
3. Nel riquadro di spostamento sinistro fare clic su Employees per aprire l elenco Employees: Figura 36 - Riquadro di spostamento sinistro 4. Dovrebbe essere visibile il dipendente aggiornato Kim: Figura 37 - Voce dell elenco Employees aggiornata Negli ultimi minuti è stata aggiornata una voce di elenco da un applicazione client e le modifiche sono state salvate nel sito di SharePoint. Riepilogo dell esercitazione In questa esercitazione sono stati eseguiti gli esercizi seguenti: È stata creata un applicazione WPF utilizzando il modello a oggetti client. È stata creata un applicazione Windows Form utilizzando i servizi REST di SharePoint. È stata aggiornata una voce di elenco dall applicazione Windows Form e le modifiche sono state salvate nel sito di SharePoint. In questa esercitazione si è appreso come scrivere applicazioni client di Windows che accedono a dati di un elenco SharePoint utilizzando il nuovo modello a oggetti client e il servizio dati WCF degli elenchi SharePoint. Pagina 26