Sei sulla pagina 1di 30

Windows SharePoint 2003 Products & Technologies

Architettura

Marco Bellinaso
Senior trainer & consultant Code Architects S.r.l.
Web: http://www.codearchitects.com E-mail: mbellinaso@codearchitects.com 1

Biografia

Consulenza, sviluppo e training con Code Architects Srl


Collaboratore di Visual Basic & .NET Journal, Computer Programming, MSDN Magazine e ASP Today Coautore di ASP.NET Website Programming, Fast Track ASP.NET e Visual C# .NET: a Guide for VB6 Developers (Wrox Press) Sviluppatore dei siti *2TheMax (www.dotnet2themax.com)

e-mail: mbellinaso@codearchitects.com

http://www.codearchitects.com

Agenda

WSS vs. SPS I componenti di SharePoint Opzioni di deployment Web Server

IIS, esecuzione di pagine ASPX, Web Part, codice unsafe La struttura dei DB di configurazione e di contenuti

I database di SharePoint

Il modello ad oggetti di SharePoint

Accedere a SharePoint tramite Web Service

http://www.codearchitects.com

WSS vs. SPS


SharePoint Portal Server (SPS)

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

Windows SharePoint Services (WSS)

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 vs. SPS in dettaglio (1/2)


Feature
Alerts Discussion boards Document libraries Document Workspace Lists Meeting Workspace Microsoft FrontPage integration Microsoft InfoPath integration Surveys Templates Web Parts Framework
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 vs. SPS in dettaglio (2/2)


Feature
Area Alerts Audiences Automatic categorization BizTalk integration Central Site Manageability Enterprise Search News Personal sites Shared services Single sign-on Site Directory Topic areas User profiles
http://www.codearchitects.com

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

Web / Application Server


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

Windows Server 2000/2003 Database supportati:


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

Load Balancer (hardware o software)

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

Whitepaper su strategie di deployment in casi reali seguiti da Microsoft IT:

http://www.microsoft.com/technet/itsolutions/msit/deploy/spswhtwp.mspx

http://www.codearchitects.com

10

Architettura Scale-out

Performance e scalabilit migliorate ripetto a STS e SPS01


.NET Framework, SQL Server 2000 Architettura three-tier Componenti separati: web rendering, database, search, indexing

Si possono aggiungere facilmente nuovi web server allaumentare di richieste web

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 si occupa di HTTP listening, port resolution, e authentication Admin vserver


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 Virtual Server Site collection Web Web Web

End-user vserver

Site collection

Site collection Web Web Web

Site (Web)

Configurazione di IIS Configurazione di SharePoint

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

Web Server Dettagli


HTTP Requests IIS ISAPI Filter .aspx .asmx ASP.NET Handler Direct ASP.NET ADO.NET Safe SharePoint Unmanaged Code Static Pages FrontPage RPC DAV ISAPI Ext

ISAPI Filter (STSFLTR.DLL))


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

Managed objects (SP Object Model)

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

Managed objects areaccessed here

http://www.codearchitects.com

13

Esecuzione di pagine ASPX Direct vs. Safe

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

Non possibile eseguire script in-line

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

Pi siti possono usare la stessa pagina in cache, per migliorare la scalabilit

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

Web Part Framework


ASP.NET Page Controlli ASP.NET che ereditano dalla classe base WebPart, che a sua volta eredita da System.Web.UI.Control Web Part zone

Le Web Part sono controlli ASP.NET server-side che vengono inseriti allinterno di pagine o zone eseguite nel contesto di SharePoint

Forniscono caratteristiche comuni, offerte dal framework


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

SQL Server 5 tipi di database


1.

Configuration Database: contiene informazioni di

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.

Content Database (Site): contiene tutti i dati dei siti/web


(metadati e dati delle liste, documenti)

Schema fisso indipendentemente da numero di siti e liste STS usava un DB per ogni sito, e una tabella per ogni lista

3.

Profile Database: contiene i profili personali degli utenti, e le


configurazioni delle audience per il targeting dei contenuti

4.

Services database: supporta i servizi di search, indexing, e


dei job schedulati (subscriptions/alerts)

5.

Single Sign On (SSO) Database: credenziali criptate, per


utente, di applicazioni esterne

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

.NET Object Model

WSS e SPS offrono entrambi un completo modello ad oggetti

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

Cosa posso fare con lobject model?


http://www.codearchitects.com

.NET Object Model Scenari di utilizzo

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

Da un programma WinForms/console che gira sul server


21

http://www.codearchitects.com

.NET Object Model


Referenziare assembly Windows SharePoint Services Includere il namespace Microsoft.SharePoint e sottostanti

List Data

SPField SPFieldCollection SPListCollection SPList SPListItemCollection SPListItem SPView

Security

SPGroup SPGroupCollection SPSite SPUser SPUserCollection

Administration

Documents

SPGlobalAdmin SPQuota SPVirtualServer

SPDocumentLibrary SPFile SPFileCollection SPFolder

http://www.codearchitects.com

22

.NET Object Model Le basi

Il modello a oggetti di SharePoint ha tre oggetti di primo livello:


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

.NET Object Model Leggere dati

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

.NET Object Model Modificare dati

Modificare le propriet di una lista


tasks.Title = "Attivit"; tasks.Description = "Lista delle attivit"; tasks.Update();

Modificare i dati di un singolo item esistente


SPListItem task = tasks.items[0]; task["Status"] = Completed"; task["Title"] = Aggiornare presentazione"; task.Update();

Aggiungere un nuovo item alla lista


SPListItem task = tasks.Items.Add(); // impostare tutti i campi di task e chiamare Update...

NOTA: affinch le modifiche siano rese persistenti deve essere chiamato il metodo Update
25

http://www.codearchitects.com

LObject Model tramite Web Service

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

LObject Model tramite Web Service


Creare unapplicazione WinForms Dalla finestra di dialogo Add Web Reference inserire lUrl del web service per le liste.

Es: http://server/_vti_bin/lists.asmx Altri web service:


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

Document Library Events

E possibile intercettare molti eventi relativi il contenuto delle document library


Cancel Check Out Check In Check Out Copy Delete Insert Move / Rename Update

Utili per limplementazione di workflow


Attualmente questo supporto non esteso alle normali liste!
28

http://www.codearchitects.com

Risorse

Ontolica SharePoint Explorer

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

SharePoint Configuration Analyzer


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