Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Architettura
Marco Bellinaso
Senior trainer & consultant Code Architects S.r.l.
Web: http://www.codearchitects.com E-mail: mbellinaso@codearchitects.com 1
Biografia
e-mail: mbellinaso@codearchitects.com
http://www.codearchitects.com
Agenda
IIS, esecuzione di pagine ASPX, Web Part, codice unsafe La struttura dei DB di configurazione e di contenuti
I database di SharePoint
http://www.codearchitects.com
News e Links Directory dei siti Creazione e gestione di siti personali Targeting dei contenuti tramite le Audience, e provisioning dei profili tramite Active Directory Servizi di Index, Enterprise Search e Alerts Single Sign-On Integrazione con BizTalk Server
Servizi per la condivisione e collaborazione su documenti, gestione del loro ciclo di vita, e versioning Membership e authorization Web Part Framework: presentazione e personalizzazione dei contenuti Alerts e ricerca a livello di sito
http://www.codearchitects.com
WSS
S S S S S S S S S S S
SPS
S S S S S S S S S S S
WSS
No No No No No No No No No No No No No
SPS
S S S S S S S S S S S S S
I componenti di SharePoint
Front-end Web server (1-10): punto di accesso per i servizi e i contenuti di SharePoint. Riceve le richieste dei client, e produce loutput grafico per il browser. Content Index server (1-4): indicizza contenuti interni ed esterni al portale Search server (1-4): permette allutente di eseguire ricerche avanzate, usando FTS, e supporta filtri su metadati (colonne builtin e custom di liste e librerie) Job server (1): esegue in background attivit schedulate, come linvio di alert, lanalisi dei file di log per la produzione di statistiche, la cancellazione di siti non usati, limportazione di profili da AD, ecc. Ce n uno solo per portale. SQL Database Server (1-5): gestisce i contenuti e la configurazione dei portali e siti di SharePoint
http://www.codearchitects.com
I componenti di SharePoint
Windows Server 2003 Internet Information Services 6.0 (IIS6) .NET Framework 1.1 ASP.NET 1.1 WSS (+ SPS, opzionalmente)
Alcune feature di SPS richiedono AD, quindi il server deve far parte di un dominio esistente, o essere configurato come Domain Controller
Database server
SQL Server 2000 MSDE: limitato a 2GB di storage e a 5 worker thread WMSDE: non ha i limiti di storage e worker thread di MSDE, ma supporta solo lo schema di DB di Microsoft per WSS. Non funziona con SPS
http://www.codearchitects.com
Architettura Scale-out
Rich Clients (Office o app custom)
SOAP
Web Browser
HTML
Web server a basso costo. Possono essere aggiunti allaumentare degli hit
Web/Search Server
Web/Search Server
Index/Job Server
SMTP Server
SQL Content DB
SQL Content DB
SQL Config DB
SQL Server contiene tutti i metadati, dati, documenti, ACL ecc. Usare SQL Server multipli per sfruttare partizionamento, e ottenere failover e redundancy http://www.codearchitects.com
Opzioni di deployment
Stand-alone single server: tutti i componenti sullo stesso server Server Farm
Small: separa su pi server componenti di front-end ei i DB di back-end Medium: colloca il job e index server su server separati da quelli usati per web e search Large: fino a 4 index server (uno dei quali fa anche da job server), fino a 4 search server, fino a 10 web server
http://www.microsoft.com/technet/itsolutions/msit/deploy/spswhtwp.mspx
http://www.codearchitects.com
10
Architettura Scale-out
.NET Framework, SQL Server 2000 Architettura three-tier Componenti separati: web rendering, database, search, indexing
Il web server completamente stateless (a differenza di STS), rendendo immediato lutilizzo di un Load Balancer (HW o SW)
Si possono aggiunge nuovi database di contenuti Tutti i contenuti (metadati, dati e documenti) sono su DB (in STS i documenti stanno sul file system):
Sicurezza a affidabilit (deployment in cluster per eliminare il single-point-of-failure) Update transazionali Non serve fare replicazione Semplifica il backup
http://www.codearchitects.com
11
Web Server
IIS
Admin Virtual Server
Uno per server Accesso tramite porta scelta in modo random in fase di installazione Es: http://server:21339 Forniscono accesso ai contenuti Ce ne pu essere pi di uno per server Es: http://portal1, http://portal2 Sito radice, non ha parent unit di backup Site collection multipli per vserver Possono essere distribuiti su DB diversi Es: http://portal1/demo1, http://portal1/demo2 Pi web per site collection Contenuti nello stesso DB dove si trova il site Es: http://portal1/demo1/subsite1, http://portal1/demo1/subsite2
End-user vserver
Site collection
Site (Web)
I siti di SP non sono in relazione con i siti di IIS (non sono configurati nel metabase di IIS) 12
http://www.codearchitects.com
Inclusions/Exclusions Static Page Gets Direct (_layouts directory). Examples: Create New View, User Profile and Custom Apps. Safe (lists, web part pages)
ASP.NET Handler
Config
Content, profile, service, and config db access List/View Rendering FrontPage server extensions DAV Static document gets Database I/O
Unmanaged Code
Service
Profile
Content
http://www.codearchitects.com
13
In direct mode, le pagine funzionano come pagine ASP.NET standard (application pages)
Pagine sotto la directory /_layouts, direttamente nel FS Disponibili per TUTTI i siti Pagine amministrative, non modificabili da browser (non hanno Web Part zone in cui aggiungere web part) Sono comunque eseguite sotto il contesto di SharePoint, e possono accedere ai suoi oggetti
In safe mode le pagine si trovano nel DB, e vengono recuperate ed eseguite dinamicamente (user pages)
Classi SharePointHandlerFactory e SharePointHandler I controlli su queste pagine (tipicamente Web Part) devono essere stati registrati come safe (sicuri) affinch possono essere caricati
Tipicamente possono essere personalizzate dallutente, a runtime Se il layout della pagina non stato personalizzato, la struttura caricata direttamente da FS (pi veloce) e le query su DB recuperano solo le Web Part da inserire
http://www.codearchitects.com
14
Codice unsafe
Il modello ad oggetti di SharePoint e il Framework per le Web Part sono dei layer sottili sopra DLL unmanaged (owssvr.dll)
Supporto per FrontPage 2003 Server Extensions Supporto per il protocollo DAV Database Input/output Fornisce logica per gestire le liste, interpretare il CAML (Collaborative Application Markup Language) e produrre lHTML di output delle viste
CAML usato per definire lHTML e Javascript che verr generato Tag per output condizionale
Nota: SPS03 usa anche ADO.NET per un accesso managed ai sui database
http://www.codearchitects.com
15
Le Web Part sono controlli ASP.NET server-side che vengono inseriti allinterno di pagine o zone eseguite nel contesto di SharePoint
Titolo, bordi, stato (minimizzato ecc.) Supporto per drag & drop Propriet shared o per utente
I controlli sulla pagina sono determinati da record del DB dei contenuti Implementano interfacce standard per comunicare le une con le altre
16
http://www.codearchitects.com
WSS
configurazione della web farm, lelenco dei vserver e delle collezioni di siti, riferimenti ai DB di contenuti, e degli altri componenti di infrastruttura
2.
Schema fisso indipendentemente da numero di siti e liste STS usava un DB per ogni sito, e una tabella per ogni lista
3.
4.
5.
http://www.codearchitects.com
17
Configuration Database
http://www.codearchitects.com
18
Content Database
Sites: impostazioni delle site collection Webs: impostazioni dei siti di una site collection Lists: definizioni della struttura delle liste Docs: pagine e file di document library, allegati di list item Se Content NULL, la pagina non stata personalizzata UserData: dati di colonne custom associate a liste e librerie Links: link tra pagine/webpart e file WebParts: informazioni su Web Part e List Views di siti / pagine Personalization: personalizzazioni sulle Web Part
http://www.codearchitects.com
19
Collezione di assembly .NET (scritti in C#) disponibili sul server Accessibile da ASP.NET o da qualsiasi altro processo serverside Espone la maggior parte dei metadati (struttura di siti, liste ecc.) e dei dati Leggere e modificare propriet del sito web Eseguire operazioni amministrative, come la creazione di siti web, utenti, ruoli ecc. Aggiungere, modificare, cancellare e recuperare dati da qualsiasi lista Creare nuove liste e impostarne la struttura (numero e tipo di campi) Lavorare con documenti (Word, Excel, InfoPath ecc.) delle document library
20
http://www.codearchitects.com
Dallintero di Web Part da caricare allinterno di pagine e zone esistenti del sito In intere pagine/applicazioni ASP.NET custom
Singole pagine o un intera applicazione web possono essere create sotto la directory /_layouts
Questo permette alle pagine di assere accessibili, e di girare sotto il contesto di siti diversi. Es:
http://server/_layouts/myapp/mypage.aspx http://server/subsite1/_layouts/myapp/mypage.aspx
http://www.codearchitects.com
List Data
Security
Administration
Documents
http://www.codearchitects.com
22
SPWeb (rappresenta un singolo sito) SPSite (rappresenta una collezione di siti) SPGlobalAdmin (accesso a impostazioni globali)
Per leggere/scrivere dati allinterno di un sito bisogna prima ottenere un riferimento alloggetto SPWeb che identifica il sito stesso
SPWeb web = SPControl.GetContextWeb(Context);
Propriet principali:
Web.Title (restituisce il titolo del sito) Web.Lists (restituisce la collezione di liste del sito) Web.Users (restituisce la collezione di utenti del sito)
23
http://www.codearchitects.com
Quando si legge un campo di un item, alla propriet indexer si pu passare il titolo della colonna (Es: Due Date) oppure il nome interno (Es: DueDate)
E sempre meglio usare il nome interno, perch non varia anche se la colonna viene rinominata. Come recuperare nomi interni/titoli?
SPList tasks = web.Lists["Tasks"]; foreach (SPField field in tasks.Fields) Response.Write(field.InternalName + " - " + field.Title + "<br>");
NOTA: per le proprie liste custom si consiglia di creare le colonne con dei nomi semplici (senza spazi), e poi rinominarle per cambiare il titolo -> il nome interno resta invariato!
24
http://www.codearchitects.com
NOTA: affinch le modifiche siano rese persistenti deve essere chiamato il metodo Update
25
http://www.codearchitects.com
Gli assembly con lobject model di SharePoint possono essere usati solo da programmi serverside
E se voglio accedere ai siti, liste e documenti da un qualsiasi client? (applicazione WinForms su client remoto, Pocket PC ecc.)
Molte funzionalit dellobject model sono esposte da un web service, che fa da componente di facade
Permette di manipolare siti, liste, viste, elementi ecc. Funzionalmente simile allobject model delle librerie sul server, ma con meno metodi, per minimizzare il numero di transazioni (chunky vs. chatty interfaces) Viene usato dalle applicazioni di Office per accedere ai dati in SharePoint
26
http://www.codearchitects.com
Creare unapplicazione WinForms Dalla finestra di dialogo Add Web Reference inserire lUrl del web service per le liste.
UserGroups.asmx accesso a utenti e gruppi Webs.asmx accesso ai siti Views.asmx accesso alle viste
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);
http://www.codearchitects.com
27
Cancel Check Out Check In Check Out Copy Delete Insert Move / Rename Update
http://www.codearchitects.com
Risorse
Vista ad albero di server, siti, web e liste di SPS e WSS Di ogni oggetto possibile leggere tutte le propriet Per ogni lista possibile vedere la struttura e i dati presenti Utile durante la fase di sviluppo per controllare ID, schema XML e altre propriet degli oggetti http://www.ontolica.com/English/Products/SharePointExplorer /SharePointExplorerHome.html
Verifica impostazioni e identifica configurazioni errate Report sullutilizzo di web Part Elenco di package e file di configurazione presenti sul server http://www.microsoft.com/downloads/details.aspx?FamilyID= 918f8c18-89dc-4b47-82ca-34b393ea70e1&DisplayLang=en
29
http://www.codearchitects.com
Domande?
http://www.dotnet2themax.it/forum/
http://www.codearchitects.com
30