Windows SharePoint 2003
Products & Technologies
–
Personalizzazione
Marco Bellinaso
Senior trainer & consultant
Code Architects S.r.l.
Web: http://www.codearchitects.com
E-mail: [email protected]
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 di UGI SharePoint (www.ugisharepoint.it)
Sviluppatore dei siti *2TheMax (www.dotnet2themax.com)
(www.dotnet2themax.it )
e-mail: [email protected]
http://www.codearchitects.com
2
Agenda

Cosa sono i Custom Template


Personalizzazioni da browser
Personalizzazioni avanzate da FrontPage 2003

Cosa sono i Site Definition

Quando usare gli uni o gli altri?
http://www.codearchitects.com
3
Overview

Tutto quello che è possibile creare in SharePoint è
basato su template





Siti
Liste
Pagine
Documenti
Due tipi di template per siti e liste:


Site Definition: insieme di file XML sul file system, che
definiscono la struttura di tutte le parti del sito
Custom Template: personalizzazioni generate da browser
e salvate sul DB dei contenuti
http://www.codearchitects.com
4
Custom Template

Personalizzazione di un Site Definition


Delta tra il sito originale (creato dal Site Definition) e la
versione personalizzata
Il template è dipendente dal Site Definition dal quale è
stato creato


Salvato su DB, ma può essere salvato anche come
file .STP



Non può essere usato se il Site Definition originale non è
presente
Può essere rinominato con .CAB e aperto in Explorer
Contiene un manifest.xml e tutte le pagine da creare
Una volta personalizzata, la pagina diventa
“unghosted” e sarà caricata da DB
http://www.codearchitects.com
5
Custom Template – Liste

Creati da browser, cliccando “Save As Template”
da “Modify Settings and Columns”



Vengono salvati nella “List Template Gallery” del
sito radice
Disponibile per tutti i siti della site collection


Tipicamente dopo aver aggiunto o modificato colonne
A patto che siano stati creati dalla stessa Site Definition,
e basati sullo stesso linguaggio del sito dal quale il
template è stato creato
Per rendere disponibile un template per siti di altre
site collection, scaricare il template su file system
(file .STP) e farne l’upload dal sito target
http://www.codearchitects.com
6
Custom Template – Siti

Salva le modifiche/aggiunte dell’interno sito




Opzionalmente include i contenuti (max 10MB)
Salvati nella “Site Template Gallery” a livello di site
collection
Possono essere esportati in altre site collection,
come avviene per i List Template
Possono essere importati nella “Central Gallery” ed
essere usati per la creazione di siti top-level
(radice)



Scaricare il template su file
Usare “stsadm –o addtemplate –filename filename.stp
Eseguire “iisreset”
http://www.codearchitects.com
7
–title Titolo”
Custom Template e FrontPage

FrontPage 2003 permette di svolgere in modo
molto semplice una serie di personalizzazioni




Applicare, modificare e creare nuovi temi
Modificare il layout di tutte le pagine, aggiungendo e
modificando elementi grafici
Inserire Web Part zone, e Web Part all’interno di esse
Trasformare qualsiasi lista in una Web Part di tipo XSLT
Data View



Conditional formatting
Layout / display view personalizzata
Connessioni
http://www.codearchitects.com
8
Site Definition

Insieme di file XML (quindi salvati su file system)
che definiscono la struttura dei siti







ONET.XML
WEBTEMP*.XML
SCHEMA.XML
(DOCICON.XML)
(VWSTYLES.XML)
(FLDTYPES.XML)
Di default, tutti i siti che si possono creare sono
basati su Site Definition
http://www.codearchitects.com
9
Site Definition

ONET.XML






Barre di navigazione (Top, Quick Launch)
Liste disponibili
Template di documenti
base type (Generic List, Doc Lib, Discussion Board,
Survey, Issue Tracking)
Configurazioni
Moduli
http://www.codearchitects.com
10
Site Definition

Moduli



Specifica una collezione di file da includere nel sito
Nel caso di Web Part Page, si può anche specificare quali
Web Part sono subito incluse di default nella pagina
Configurazioni

Lo stesso Site Definition può avere diverse configurazioni,
che includono una selezione di liste e moduli disponibili



Es: STS => Team Site, Blank Site e Document Workspace
Ogni configurazione viene elencata nella pagina di
selezione del template in fase di creazione del sito
Tutte le altre configurazioni di ONET.XML sono condivise
http://www.codearchitects.com
11
Site Definition

WEBTEMP*.XML


Elenca le configurazioni da rendere disponibili
Se si creano nuovi Site Definition o configurazioni, creare
un file WEBTEMP{QUALCOSA}.XML invece che modificare
quello di default (Es. WEBTEMPWEBCAST.XML)


SharePoint fa automaticamente il merge di tutti i file
WEBTEMP*.XML
SCHEMA.XML



Definisce colonne, viste e contenuti di default di una lista
La struttura è definita in CAML
ONET.XML referenzia le liste da rendere disponibili per la
creazione nella sua sezione ListTemplates
http://www.codearchitects.com
12
Site Definition

Creare un nuovo Site Definition piuttosto che
modificare uno di quelli di base


Si può partire copiando e rinominando la directory STS (o
altra dir della definizione da usare come base)
Modificare una definizione esistente può causare problemi



l’applicazione di service pack può sovrascrivere le proprie
modifiche
Custom template basati sul Site Definition modificato, o
altri Site Definition che referenziano sue liste, potrebbero
smettere di funzionare
Se proprio si deve modificare una definizione esistente (e
in uso) assicurarsi di apportare solo AGGIUNTE, non
rimuovere o modificare elementi già presenti
http://www.codearchitects.com
13
Custom template o site definition?

Site Definition

PRO:




I dati sono salvati come file su file system => più veloce che
leggerli da DB
Maggiori possibilità di personalizzazione delle liste intervenendo
direttamente sui file SCHEMA.XML
Nuovi tipi di file, documenti di default, stili per le view e voci di
menu possono essere aggiunte solo nei site definition
CONTRO:





Richiede parecchio lavoro e conoscenza di CAML
Una volta usato da un sito, non si dovrebbe più modificarne la
struttura, per evitare di corrompere siti esistenti
Non si possono creare due liste dello stesso tipo, anche se con
diverso contenuto di default
Non si può specificare il tema di default
E’ richiesto l’accesso al file system => normali utenti non possono
creare nuovi Site Definition
http://www.codearchitects.com
14
Custom template o site definition?

Custom Template

PRO:




Molto facili da creare (tutto tramite browser e FrontPage)
Tutte le modifiche fatte da browser (o da FrontPage)
possono essere salvate come template
Possono essere modificati senza corrompere siti esistenti
basati su di essi
CONTRO:


Meno efficienti, perché salvati su DB => richiedono più
query
Sono personalizzazioni di un Site Definition => se il Site
Definition originale non è presente, il Custom Template
non può funzionare
http://www.codearchitects.com
15
Creare siti e liste da codice

L’object model permette di creare siti e liste
basati su template di default o custom

Creare un sito basato su template di default
SPSite site = new SPSite("http://localhost/sites/webcast");
site.AllWebs.Add("dev", "Sito sviluppatori", "My dev site", 1040,
SPWebTemplate.WebTemplateSTS, false, false);

Creare un sito basato su template custom
SPWebTemplate template = site.GetCustomWebTemplates(1040)["DevSite"];
site.AllWebs.Add("dev", "Sito sviluppatori",
"Il sito degli sviluppatori", 1040, template, false, false);

Applicare un template custom ad un sito esistente
SPWeb web = site.AllWebs["dev"];
SPWebTemplate template = site.GetCustomWebTemplates(1040)["DevSite"];
web.ApplyWebTemplate(template);
http://www.codearchitects.com
16
Creare siti e liste da codice

Creare liste

Basate su tipi base
SPSite site = new SPSite("http://localhost/sites/webcast");
SPWeb web = site.AllWebs["dev"];
SPListTemplate template = SPListTemplateType.Events;
web.Lists.Add("Eventi", "Lista di eventi", template);

Basate su template custom
SPListTemplate template =
site.GetCustomListTemplates(web)["ProjList"];
web.Lists.Add("Progetti", "Lista di progetti", template);
http://www.codearchitects.com
17
Domande?
http://www.ugisharepoint.it
http://www.dotnet2themax.it/blog
http://www.codearchitects.com
18
Scarica

Site Definition