1 Windows SharePoint 2003 Products & Technologies – Architettura Marco Bellinaso Senior trainer &...
-
Upload
amadore-lombardi -
Category
Documents
-
view
216 -
download
2
Transcript of 1 Windows SharePoint 2003 Products & Technologies – Architettura Marco Bellinaso Senior trainer &...
1
Windows SharePoint 2003 Windows SharePoint 2003 Products & TechnologiesProducts & Technologies
––ArchitetturaArchitettura
Marco BellinasoMarco Bellinaso
Senior trainer & consultantSenior trainer & consultant
Code Architects S.r.l.Code Architects S.r.l.
Web: Web: http://www.codearchitects.comhttp://www.codearchitects.com
E-mail: E-mail: [email protected]@codearchitects.com
2http://www.codearchitects.com
BiografiaBiografia
Consulenza, sviluppo e training con Code Architects Srl Consulenza, sviluppo e training con Code Architects Srl
Collaboratore di Collaboratore di Visual Basic & .NET Journal, Computer Visual Basic & .NET Journal, Computer Programming, MSDN Magazine e ASP TodayProgramming, MSDN Magazine e ASP Today
Coautore di “ASP.NET Website Programming”, “Fast Track Coautore di “ASP.NET Website Programming”, “Fast Track ASP.NET” e “Visual C# .NET: a Guide for VB6 Developers” ASP.NET” e “Visual C# .NET: a Guide for VB6 Developers” (Wrox Press) (Wrox Press)
Sviluppatore di UGI SharePoint (www.ugisharepoint.it)Sviluppatore di UGI SharePoint (www.ugisharepoint.it)
Sviluppatore dei siti *2TheMax (www.dotnet2themax.com)Sviluppatore dei siti *2TheMax (www.dotnet2themax.com) (www.dotnet2themax.it (www.dotnet2themax.it
) )
e-mail: e-mail: [email protected]@codearchitects.com
3http://www.codearchitects.com
AgendaAgenda
WSS vs. SPSWSS vs. SPS I componenti di SharePointI componenti di SharePoint Opzioni di deploymentOpzioni di deployment Web ServerWeb Server
IIS, esecuzione di pagine ASPX, Web Part, codice unsafeIIS, esecuzione di pagine ASPX, Web Part, codice unsafe
I database di SharePointI database di SharePoint La struttura dei DB di configurazione e di contenutiLa struttura dei DB di configurazione e di contenuti
Il modello ad oggetti di SharePointIl modello ad oggetti di SharePoint Accedere a SharePoint tramite Web ServiceAccedere a SharePoint tramite Web Service
4http://www.codearchitects.com
WSS vs. SPSWSS vs. SPS
SharePoint Portal Server (SPS)SharePoint Portal Server (SPS) News e LinksNews e Links Directory dei sitiDirectory dei siti Creazione e gestione di siti personaliCreazione e gestione di siti personali Targeting dei contenuti tramite le Targeting dei contenuti tramite le
Audience, e provisioning dei profili Audience, e provisioning dei profili tramite Active Directorytramite Active Directory
Servizi di Index, Enterprise Search e Servizi di Index, Enterprise Search e AlertsAlerts
Single Sign-OnSingle Sign-On Integrazione con BizTalk ServerIntegrazione con BizTalk Server
Windows SharePoint Services (WSS)Windows SharePoint Services (WSS) Servizi per la condivisione e Servizi per la condivisione e
collaborazione su documenti, gestione collaborazione su documenti, gestione del loro ciclo di vita, e versioningdel loro ciclo di vita, e versioning
Membership e authorizationMembership e authorization Web Part Framework: presentazione e Web Part Framework: presentazione e
personalizzazione dei contenutipersonalizzazione dei contenuti Alerts e ricerca a livello di sitoAlerts e ricerca a livello di sito
5http://www.codearchitects.com
Feature WSS SPS
Alerts Sì Sì
Discussion boards Sì Sì
Document libraries Sì Sì
Document Workspace Sì Sì
Lists Sì Sì
Meeting Workspace Sì Sì
Microsoft FrontPage integration Sì Sì
Microsoft InfoPath integration Sì Sì
Surveys Sì Sì
Templates Sì Sì
Web Parts Framework Sì Sì
WSS vs. SPS in dettaglio (1/2)WSS vs. SPS in dettaglio (1/2)
6http://www.codearchitects.com
Feature WSS SPS
Area Alerts No Sì
Audiences No Sì
Automatic categorization No Sì
BizTalk integration No Sì
Central Site Manageability No Sì
Enterprise Search No Sì
News No Sì
Personal sites No Sì
Shared services No Sì
Single sign-on No Sì
Site Directory No Sì
Topic areas No Sì
User profiles No Sì
WSS vs. SPS in dettaglio (2/2)WSS vs. SPS in dettaglio (2/2)
7http://www.codearchitects.com
I componenti di SharePointI componenti di SharePoint
Front-end Web server (1-10):Front-end Web server (1-10): punto di accesso per i servizi e i punto di accesso per i servizi e i contenuti di SharePoint. Riceve le richieste dei client, e produce contenuti di SharePoint. Riceve le richieste dei client, e produce l’output grafico per il browser. l’output grafico per il browser.
Content Index server (1-4):Content Index server (1-4): indicizza contenuti interni ed indicizza contenuti interni ed esterni al portaleesterni al portale
Search server (1-4):Search server (1-4): permette all’utente di eseguire ricerche permette all’utente di eseguire ricerche avanzate, usando FTS, e supporta filtri su metadati (colonne built-avanzate, usando FTS, e supporta filtri su metadati (colonne built-in e custom di liste e librerie)in e custom di liste e librerie)
Job server (1):Job server (1): esegue in background attività schedulate, come esegue in background attività schedulate, come l’invio di alert, l’analisi dei file di log per la produzione di l’invio di alert, l’analisi dei file di log per la produzione di statistiche, la cancellazione di siti non usati, l’importazione di statistiche, la cancellazione di siti non usati, l’importazione di profili da AD, ecc. Ce n’è uno solo per portale.profili da AD, ecc. Ce n’è uno solo per portale.
SQL Database Server (1-5): SQL Database Server (1-5): gestisce i contenuti e la gestisce i contenuti e la configurazione dei portali e siti di SharePointconfigurazione dei portali e siti di SharePoint
8http://www.codearchitects.com
I componenti di SharePointI componenti di SharePoint
Web / Application ServerWeb / Application Server Windows Server 2003Windows Server 2003 Internet Information Services 6.0 (IIS6)Internet Information Services 6.0 (IIS6) .NET Framework 1.1.NET Framework 1.1 ASP.NET 1.1ASP.NET 1.1 WSS (+ SPS, opzionalmente)WSS (+ SPS, opzionalmente)
Alcune feature di SPS richiedono AD, quindi il server deve far Alcune feature di SPS richiedono AD, quindi il server deve far parte di un dominio esistente, o essere configurato come Domain parte di un dominio esistente, o essere configurato come Domain ControllerController
Database serverDatabase server Windows Server 2000/2003Windows Server 2000/2003 Database supportati:Database supportati:
SQL Server 2000SQL Server 2000 MSDE: limitato a 2GB di storage e a 5 worker threadMSDE: limitato a 2GB di storage e a 5 worker thread WMSDE: non ha i limiti di storage e worker thread di MSDE, ma WMSDE: non ha i limiti di storage e worker thread di MSDE, ma
supporta solo lo schema di DB di Microsoft per WSS. Non supporta solo lo schema di DB di Microsoft per WSS. Non funziona con SPSfunziona con SPS
9http://www.codearchitects.com
Architettura Scale-outArchitettura Scale-out
Web/Search
Server
Web/Search
Server
X
Rich Clients
(Office o app custom)Web Browser
Load Balancer (hardware o software)
SMTP Server
SQL Content DB SQL Content DB SQL Config DB
Index/Job Server
SOAP HTML
Web server a basso costo. Web server a basso costo. Possono essere aggiunti Possono essere aggiunti all’aumentare degli hitall’aumentare degli hit
SQL Server contiene tutti i metadati, dati, documenti, ACL ecc. Usare SQL Server multipli per SQL Server contiene tutti i metadati, dati, documenti, ACL ecc. Usare SQL Server multipli per sfruttare partizionamento, e ottenere failover e redundancysfruttare partizionamento, e ottenere failover e redundancy
10http://www.codearchitects.com
Opzioni di deploymentOpzioni di deployment
Stand-alone single server: tutti i componenti sullo Stand-alone single server: tutti i componenti sullo stesso serverstesso server
Server FarmServer Farm Small: separa su più server componenti di front-end e i Small: separa su più server componenti di front-end e i
DB di back-endDB di back-end Medium: colloca il job e index server su server separati da Medium: colloca il job e index server su server separati da
quelli usati per web e searchquelli usati per web e search Large: fino a 4 index server (uno dei quali fa anche da job Large: fino a 4 index server (uno dei quali fa anche da job
server), fino a 4 search server, fino a 10 web serverserver), fino a 4 search server, fino a 10 web server
Whitepaper su strategie di deployment in casi reali seguiti da Whitepaper su strategie di deployment in casi reali seguiti da Microsoft IT: Microsoft IT: http://www.microsoft.com/technet/itsolutions/msit/deploy/spswhtwp.mspxhttp://www.microsoft.com/technet/itsolutions/msit/deploy/spswhtwp.mspx
11http://www.codearchitects.com
Architettura Scale-outArchitettura Scale-out
Performance e scalabilità migliorate ripetto a STS e SPS01Performance e scalabilità migliorate ripetto a STS e SPS01 .NET Framework, SQL Server 2000.NET Framework, SQL Server 2000 Architettura three-tierArchitettura three-tier Componenti separati: web rendering, database, search, Componenti separati: web rendering, database, search,
indexingindexing Si possono aggiungere facilmente nuovi web server Si possono aggiungere facilmente nuovi web server
all’aumentare di richieste web all’aumentare di richieste web Il web server è completamente stateless (a differenza di STS), Il web server è completamente stateless (a differenza di STS),
rendendo immediato l’utilizzo di un Load Balancer (HW o SW)rendendo immediato l’utilizzo di un Load Balancer (HW o SW) Si possono aggiunge nuovi database di contenutiSi possono aggiunge nuovi database di contenuti Tutti i contenuti (metadati, dati e documenti) sono su DB (in Tutti i contenuti (metadati, dati e documenti) sono su DB (in
STS i documenti stanno sul file system):STS i documenti stanno sul file system): Sicurezza a affidabilità (deployment in cluster per eliminare il Sicurezza a affidabilità (deployment in cluster per eliminare il
single-point-of-failure)single-point-of-failure) Update transazionaliUpdate transazionali Non serve fare replicazioneNon serve fare replicazione Semplifica il backupSemplifica il backup
12http://www.codearchitects.com
Web ServerWeb Server
End User Virtual Server
Site collection
Web Web Web
Site collection
Web Web Web
IIS
Admin Virtual Server
Configurazione di IIS
Configurazione di SharePoint
IIS si occupa di HTTP listening, port resolution, e IIS si occupa di HTTP listening, port resolution, e authentication authentication
Admin vserverAdmin vserver Uno per serverUno per server Accesso tramite porta scelta in modo random in fase Accesso tramite porta scelta in modo random in fase
di installazionedi installazione Es: http://server:21339Es: http://server:21339
End-user vserverEnd-user vserver Forniscono accesso ai contenutiForniscono accesso ai contenuti Ce ne può essere più di uno per serverCe ne può essere più di uno per server Es: Es: http://portal1http://portal1, http://portal2, http://portal2
Site collectionSite collection Sito radice, non ha parent – unità di backupSito radice, non ha parent – unità di backup Site collection multipli per vserverSite collection multipli per vserver Possono essere distribuiti su DB diversiPossono essere distribuiti su DB diversi Es: http://portal1/demo1, http://portal1/demo2Es: http://portal1/demo1, http://portal1/demo2
Site (Web)Site (Web) Più web per site collectionPiù web per site collection Contenuti nello stesso DB dove si trova il siteContenuti nello stesso DB dove si trova il site Es: Es: http://portal1/demo1/subsite1http://portal1/demo1/subsite1, ,
http://portal1/demo1/subsite2http://portal1/demo1/subsite2 I siti di SP non sono in relazione con i siti di IIS I siti di SP non sono in relazione con i siti di IIS
(non sono configurati nel metabase di IIS)(non sono configurati nel metabase di IIS)
13http://www.codearchitects.com
Web Server – DettagliWeb Server – Dettagli
IIS
ASP.NET Handler
ISAPI Filter
Config
Static PagesFrontPage RPCDAV
.aspx.asmx
HTTPRequests
ASP.NET
Content
SharePointUnmanagedCode
Direct Safe
ISAPI Ext
ADO.NET
ProfileService
ISAPI Filter (STSFLTR.DLL))ISAPI Filter (STSFLTR.DLL)) Inclusions/ExclusionsInclusions/Exclusions Static Page GetsStatic Page Gets
ASP.NET HandlerASP.NET Handler Direct (_layouts directory). Direct (_layouts directory).
Examples: Create New View, Examples: Create New View, User Profile and Custom Apps.User Profile and Custom Apps.
Safe (lists, web part pages)Safe (lists, web part pages)
Managed objects (SP Object Managed objects (SP Object Model)Model)
Content, profile, service, and Content, profile, service, and config db accessconfig db access
Unmanaged CodeUnmanaged Code List/View RenderingList/View Rendering FrontPage server extensionsFrontPage server extensions DAVDAV Static document getsStatic document gets Database I/ODatabase I/O
Managed objects areaccessed Managed objects areaccessed
herehere
14http://www.codearchitects.com
Esecuzione di pagine ASPX – Direct vs. SafeEsecuzione di pagine ASPX – Direct vs. Safe
In direct mode, le pagine funzionano come pagine ASP.NET standard In direct mode, le pagine funzionano come pagine ASP.NET standard (application pages)(application pages)
Pagine sotto la directory /_layouts, direttamente nel FSPagine sotto la directory /_layouts, direttamente nel FS Disponibili per TUTTI i sitiDisponibili per TUTTI i siti Pagine amministrative, non modificabili da browser (non hanno Web Part zone Pagine amministrative, non modificabili da browser (non hanno Web Part zone
in cui aggiungere web part)in cui aggiungere web part) Sono comunque eseguite sotto il contesto di SharePoint, e possono accedere Sono comunque eseguite sotto il contesto di SharePoint, e possono accedere
ai suoi oggettiai suoi oggetti
In safe mode le pagine si trovano nel DB, e vengono recuperate ed In safe mode le pagine si trovano nel DB, e vengono recuperate ed eseguite dinamicamente (user pages)eseguite dinamicamente (user pages)
Classi SharePointHandlerFactory e SharePointHandlerClassi SharePointHandlerFactory e SharePointHandler I controlli su queste pagine (tipicamente Web Part) devono essere stati I controlli su queste pagine (tipicamente Web Part) devono essere stati
registrati come safe (sicuri) affinché possono essere caricatiregistrati come safe (sicuri) affinché possono essere caricati Non è possibile eseguire script in-lineNon è possibile eseguire script in-line
Tipicamente possono essere personalizzate dall’utente, a runtimeTipicamente possono essere personalizzate dall’utente, a runtime Se il Se il layoutlayout della pagina non è stato personalizzato, la struttura è caricata della pagina non è stato personalizzato, la struttura è caricata
direttamente da FS (più veloce) e le query su DB recuperano solo le Web Part direttamente da FS (più veloce) e le query su DB recuperano solo le Web Part da inserireda inserire
Più siti possono usare la stessa pagina in cache, per migliorare la scalabilitàPiù siti possono usare la stessa pagina in cache, per migliorare la scalabilità
15http://www.codearchitects.com
Codice unsafeCodice unsafe
Il modello ad oggetti di SharePoint Il modello ad oggetti di SharePoint e il Framework per le Web Part e il Framework per le Web Part sono dei layer sottili sopra DLL sono dei layer sottili sopra DLL unmanaged (unmanaged (owssvr.dll)owssvr.dll) Supporto per FrontPage 2003 Supporto per FrontPage 2003
Server ExtensionsServer Extensions Supporto per il protocollo DAVSupporto per il protocollo DAV Database Input/output Database Input/output Fornisce logica per gestire le liste, Fornisce logica per gestire le liste,
interpretare il CAML (Collaborative interpretare il CAML (Collaborative Application Markup Language) e Application Markup Language) e produrre l’HTML di output delle produrre l’HTML di output delle visteviste
CAML è usato per definire l’HTML e CAML è usato per definire l’HTML e Javascript che verrà generatoJavascript che verrà generato
Tag per output condizionaleTag per output condizionale
Nota: SPS03 usa anche ADO.NET per un accesso managed ai suoi databaseNota: SPS03 usa anche ADO.NET per un accesso managed ai suoi database
16http://www.codearchitects.com
Web Part FrameworkWeb Part Framework
Le Web Part sono controlli ASP.NET server-side che vengono Le Web Part sono controlli ASP.NET server-side che vengono inseriti all’interno di pagine o zone eseguite nel contesto di inseriti all’interno di pagine o zone eseguite nel contesto di SharePointSharePoint
Forniscono caratteristiche comuni, offerte dal frameworkForniscono caratteristiche comuni, offerte dal framework Titolo, bordi, stato (minimizzato ecc.)Titolo, bordi, stato (minimizzato ecc.) Supporto per drag & dropSupporto per drag & drop Proprietà shared o per utenteProprietà shared o per utente
I controlli sulla pagina sono determinati da record del DB dei I controlli sulla pagina sono determinati da record del DB dei contenuticontenuti
Implementano interfacce standard per comunicare le une con le Implementano interfacce standard per comunicare le une con le altrealtre
ASP.NET PageControlli ASP.NET che ereditano dalla classe base WebPart, che a sua volta eredita da System.Web.UI.Control
Web Part zone
17http://www.codearchitects.com
SQL Server – 5 tipi di databaseSQL Server – 5 tipi di database
1.1. Configuration Database:Configuration Database: contiene informazioni di contiene informazioni di configurazione della web farm, l’elenco dei vserver e delle configurazione della web farm, l’elenco dei vserver e delle collezioni di siti, riferimenti ai DB di contenuti, e degli altri collezioni di siti, riferimenti ai DB di contenuti, e degli altri componenti di infrastrutturacomponenti di infrastruttura
2.2. Content Database (Site):Content Database (Site): contiene tutti i dati dei siti/web contiene tutti i dati dei siti/web (metadati e dati delle liste, documenti)(metadati e dati delle liste, documenti) Schema fisso indipendentemente da numero di siti e listeSchema fisso indipendentemente da numero di siti e liste STS usava un DB per ogni sito, e una tabella per ogni listaSTS usava un DB per ogni sito, e una tabella per ogni lista
3.3. Profile Database:Profile Database: contiene i profili personali degli utenti, e le contiene i profili personali degli utenti, e le configurazioni delle audience per il targeting dei contenuticonfigurazioni delle audience per il targeting dei contenuti
4.4. Services database: Services database: supporta i servizi di search, indexing, e supporta i servizi di search, indexing, e dei job schedulati (subscriptions/alerts)dei job schedulati (subscriptions/alerts)
5.5. Single Sign On (SSO) Database:Single Sign On (SSO) Database: credenziali criptate, per credenziali criptate, per utente, di applicazioni esterneutente, di applicazioni esterne
WSS
18http://www.codearchitects.com
Configuration DatabaseConfiguration Database
19http://www.codearchitects.com
Content DatabaseContent Database Sites: impostazioni delle site collectionSites: impostazioni delle site collection Webs: impostazioni dei siti di una site collectionWebs: impostazioni dei siti di una site collection Lists: definizioni della struttura delle listeLists: definizioni della struttura delle liste Docs: pagine e file di document library, allegati di list itemDocs: pagine e file di document library, allegati di list item
Se Content è NULL, la pagina non è stata personalizzataSe Content è NULL, la pagina non è stata personalizzata UserData: dati di colonne custom associate a liste e librerieUserData: dati di colonne custom associate a liste e librerie Links: link tra pagine/webpart e fileLinks: link tra pagine/webpart e file WebParts: informazioni su Web Part e List Views di siti / pagineWebParts: informazioni su Web Part e List Views di siti / pagine Personalization: personalizzazioni sulle Web PartPersonalization: personalizzazioni sulle Web Part
20http://www.codearchitects.com
.NET Object Model.NET Object Model
WSS e SPS offrono entrambi un completo modello ad WSS e SPS offrono entrambi un completo modello ad oggettioggetti Collezione di assembly .NET (scritti in C#) disponibili Collezione di assembly .NET (scritti in C#) disponibili sul sul
serverserver Accessibile da ASP.NET o da qualsiasi altro processo server-Accessibile da ASP.NET o da qualsiasi altro processo server-
sideside Espone la maggior parte dei metadati (struttura di siti, liste Espone la maggior parte dei metadati (struttura di siti, liste
ecc.) e dei datiecc.) e dei dati Cosa posso fare con l’object model?Cosa posso fare con l’object model?
Leggere e modificare proprietà del sito web Leggere e modificare proprietà del sito web Eseguire operazioni amministrative, come la creazione di siti Eseguire operazioni amministrative, come la creazione di siti
web, utenti, ruoli ecc.web, utenti, ruoli ecc. Aggiungere, modificare, cancellare e recuperare dati da Aggiungere, modificare, cancellare e recuperare dati da
qualsiasi listaqualsiasi lista Creare nuove liste e impostarne la struttura (numero e tipo di Creare nuove liste e impostarne la struttura (numero e tipo di
campi) campi) Lavorare con documenti (Word, Excel, InfoPath ecc.) delle Lavorare con documenti (Word, Excel, InfoPath ecc.) delle
document librarydocument library
21http://www.codearchitects.com
.NET Object Model – Scenari di utilizzo.NET Object Model – Scenari di utilizzo
Dall’interno di Web Part da caricare in pagine e Dall’interno di Web Part da caricare in pagine e zone esistenti del sitozone esistenti del sito
In intere pagine/applicazioni ASP.NET customIn intere pagine/applicazioni ASP.NET custom Singole pagine o un intera applicazione web possono Singole pagine o un intera applicazione web possono
essere create sotto la directory /_layoutsessere create sotto la directory /_layouts Questo permette alle pagine di assere accessibili, e di Questo permette alle pagine di assere accessibili, e di
girare sotto il contesto di siti diversi. Es:girare sotto il contesto di siti diversi. Es: http://server/_layouts/myapp/mypage.aspxhttp://server/_layouts/myapp/mypage.aspx http://server/subsite1/_layouts/myapp/mypage.aspxhttp://server/subsite1/_layouts/myapp/mypage.aspx
Da un programma WinForms/console che gira Da un programma WinForms/console che gira sul sul serverserver
22http://www.codearchitects.com
.NET Object Model.NET Object Model
List DataList Data SPFieldSPField SPFieldCollectionSPFieldCollection SPListCollectionSPListCollection SPListSPList SPListItemCollectionSPListItemCollection SPListItemSPListItem SPViewSPView
AdministrationAdministration SPGlobalAdminSPGlobalAdmin SPQuotaSPQuota SPVirtualServerSPVirtualServer
Referenziare assembly “Windows SharePoint Services”Referenziare assembly “Windows SharePoint Services” Includere il namespace “Includere il namespace “Microsoft.SharePoint” e sottostantiMicrosoft.SharePoint” e sottostanti
23http://www.codearchitects.com
.NET Object Model – Le basi.NET Object Model – Le basi
Il modello a oggetti di SharePoint ha tre oggetti di Il modello a oggetti di SharePoint ha tre oggetti di primo livello:primo livello: SPWeb (rappresenta un singolo sito)SPWeb (rappresenta un singolo sito) SPSite (rappresenta una collezione di siti)SPSite (rappresenta una collezione di siti) SPGlobalAdmin (accesso a impostazioni globali)SPGlobalAdmin (accesso a impostazioni globali)
Per leggere/scrivere dati all’interno di un sito Per leggere/scrivere dati all’interno di un sito bisogna prima ottenere un riferimento all’oggetto bisogna prima ottenere un riferimento all’oggetto SPWeb che identifica il sito stessoSPWeb che identifica il sito stesso
Proprietà principali:Proprietà principali: Web.Title (restituisce il titolo del sito)Web.Title (restituisce il titolo del sito) Web.Lists (restituisce la collezione di liste del sito)Web.Lists (restituisce la collezione di liste del sito) Web.Users (restituisce la collezione di utenti del sito)Web.Users (restituisce la collezione di utenti del sito)
SPWeb web = SPControl.GetContextWeb(Context);
24http://www.codearchitects.com
.NET Object Model – Leggere dati.NET Object Model – Leggere dati
Quando si legge un campo di un item, alla Quando si legge un campo di un item, alla proprietà indexer si può passare il titolo della proprietà indexer si può passare il titolo della colonna (Es: “Due Date”) oppure il nome interno colonna (Es: “Due Date”) oppure il nome interno (Es: “DueDate”)(Es: “DueDate”) E’ sempre meglio usare il nome interno, perché non E’ sempre meglio usare il nome interno, perché non
varia anche se la colonna viene rinominata. Come varia anche se la colonna viene rinominata. Come recuperare nomi interni/titoli?recuperare nomi interni/titoli?
NOTA:NOTA: per le proprie liste custom si consiglia di creare le per le proprie liste custom si consiglia di creare le colonne con dei nomi semplici (senza spazi), e poi rinominarle colonne con dei nomi semplici (senza spazi), e poi rinominarle per cambiare il titolo -> il nome interno resta invariato!per cambiare il titolo -> il nome interno resta invariato!
SPList tasks = web.Lists["Tasks"];foreach (SPField field in tasks.Fields)
Response.Write(field.InternalName + " - " + field.Title + "<br>");
25http://www.codearchitects.com
.NET Object Model – Modificare dati.NET Object Model – Modificare dati
Modificare le proprietà di una listaModificare le proprietà di una lista
Modificare i dati di un singolo item esistenteModificare i dati di un singolo item esistente
Aggiungere un nuovo item alla listaAggiungere un nuovo item alla lista
NOTA:NOTA: affinché le modifiche siano rese persistenti deve essere affinché le modifiche siano rese persistenti deve essere chiamato il metodo Updatechiamato il metodo Update
tasks.Title = "Attività";tasks.Description = "Lista delle attività";tasks.Update();
SPListItem task = tasks.items[0];task["Status"] = “Completed";task["Title"] = “Aggiornare presentazione";task.Update();
SPListItem task = tasks.Items.Add();// impostare tutti i campi di task e chiamare Update...
26http://www.codearchitects.com
Gli assembly con l’object model di SharePoint Gli assembly con l’object model di SharePoint possono essere usati solo da programmi server-possono essere usati solo da programmi server-sideside E se voglio accedere ai siti, liste e documenti da un E se voglio accedere ai siti, liste e documenti da un
qualsiasi client? (applicazione WinForms su client qualsiasi client? (applicazione WinForms su client remoto, Pocket PC ecc.)remoto, Pocket PC ecc.)
Molte funzionalità dell’object model sono esposte Molte funzionalità dell’object model sono esposte da un web service, che fa da componente di da un web service, che fa da componente di facadefacade Permette di manipolare siti, liste, viste, elementi ecc.Permette di manipolare siti, liste, viste, elementi ecc. Funzionalmente simile all’object model delle librerie sul Funzionalmente simile all’object model delle librerie sul
server, ma con meno metodi, per minimizzare il numero server, ma con meno metodi, per minimizzare il numero di transazioni (di transazioni (chunky vs. chatty interfaceschunky vs. chatty interfaces))
Viene usato dalle applicazioni di Office per accedere ai Viene usato dalle applicazioni di Office per accedere ai dati in SharePointdati in SharePoint
L’Object Model tramite Web ServiceL’Object Model tramite Web Service
27http://www.codearchitects.com
Creare un’applicazione WinFormsCreare un’applicazione WinForms Dalla finestra di dialogo “Add Web Reference” inserire l’Url Dalla finestra di dialogo “Add Web Reference” inserire l’Url
del web service per le liste.del web service per le liste. Es: Es: http://server/_vti_bin/http://server/_vti_bin/lists.asmxlists.asmx Altri web service:Altri web service:
UserGroups.asmx – accesso a utenti e gruppiUserGroups.asmx – accesso a utenti e gruppi Webs.asmx – accesso ai sitiWebs.asmx – accesso ai siti Views.asmx – accesso alle visteViews.asmx – accesso alle viste
L’Object Model tramite Web ServiceL’Object Model tramite Web Service
server.Lists listService = new server.Lists();listService.Url = "http://server/sites/sitename/_vti_bin/Lists.asmx";listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
System.Xml.XmlNode node = listService.GetListCollection();
foreach(System.Xml.XmlNode xmlnode in node) Debug.WriteLine(xmlnode.Attributes["ID"].Value);
28http://www.codearchitects.com
Document Library EventsDocument Library Events
E’ possibile intercettare molti eventi relativi il contenuto E’ possibile intercettare molti eventi relativi il contenuto delle document librarydelle document library
Cancel Check OutCancel Check Out Check InCheck In Check OutCheck Out CopyCopy DeleteDelete InsertInsert Move / RenameMove / Rename UpdateUpdate
Utili per l’implementazione di workflowUtili per l’implementazione di workflow
Attualmente questo supporto non è esteso alle normali Attualmente questo supporto non è esteso alle normali liste!liste!
29http://www.codearchitects.com
RisorseRisorse
Ontolica SharePoint ExplorerOntolica SharePoint Explorer Vista ad albero di server, siti, web e liste di SPS e WSSVista ad albero di server, siti, web e liste di SPS e WSS Di ogni oggetto è possibile leggere tutte le proprietàDi ogni oggetto è possibile leggere tutte le proprietà Per ogni lista è possibile vedere la struttura e i dati presentiPer ogni lista è possibile vedere la struttura e i dati presenti Utile durante la fase di sviluppo per controllare ID, schema Utile durante la fase di sviluppo per controllare ID, schema
XML e altre proprietà degli oggettiXML e altre proprietà degli oggetti
http://www.ontolica.com/English/Products/http://www.ontolica.com/English/Products/SharePointExplorer/SharePointExplorerHome.htmlSharePointExplorer/SharePointExplorerHome.html
SharePoint Configuration AnalyzerSharePoint Configuration Analyzer Verifica impostazioni e identifica configurazioni errateVerifica impostazioni e identifica configurazioni errate Report sull’utilizzo di web PartReport sull’utilizzo di web Part Elenco di package e file di configurazione presenti sul serverElenco di package e file di configurazione presenti sul server
http://www.microsoft.com/downloads/details.aspx?http://www.microsoft.com/downloads/details.aspx?FamilyID=918f8c18-89dc-4b47-82ca-FamilyID=918f8c18-89dc-4b47-82ca-34b393ea70e1&DisplayLang=en34b393ea70e1&DisplayLang=en
30http://www.codearchitects.com
Domande?
http://www.ugisharepoint.ithttp://www.dotnet2themax.it/blog