Category Archives: SharePoint

SharePoint, generale

Per gli amanti delle combinazioni di tasti… su SharePoint

Io non sono mai stato un amante delle combinazioni da tastiera… in particolar modo durante l’erogazione dei miei corsi non le spiego quasi mai, considerandole uno sforzo mnemonico in più (con già tante altre cose da ricordare).


Le combinazioni di tasti mi fanno tornare alla memoria i vecchi incubi trascorsi su Wordstar 4 (ricordate a cosa serviva Ctrl + K + S ?) ūüôā


E’ però innegabile la loro comodità di fronte ad un utilizzo esperto e ripetitivo.


Ho letto un bel post dove sono riassunte le principali combinazioni di tasti per SharePoint.

Lavorare con le Site Definitions di SharePoint

Anche oggi, da un cliente, in occasione di un progetto che prevede la personalizzazione di WSS (Windows SharePoint Services), mi sono imbattuto con le Site Definitions


In parole povere, si tratta di un sacco di file e cartelle che danno vita e trasferiscono specifiche impostazioni agli Elenchi e Raccolte di WSS.


Il tutto è solitamente collocato in:
C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033
se si tratta della versione inglese di WSS/SPS o
C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1040
se si tratta di quella italiana.


Per ogni modello di Elenco o Raccolta cՏ una specifica cartella sul file system del server, dentro alla quale sono collocate le pagine .aspx che rappresentano la gestione dei contenuti degli Elenchi e Raccolte create sulla base del relativo template. Oltre a questi file sono poi presenti alcuni file .xml di configurazione, per definire i campi presenti nei diversi form e le impostazioni generali delle liste.
Modificando ad esempio i file contenuti  nella cartella LISTS\EVENTS si andranno a modificare i comportamenti di tutte le liste Eventi (o Calendario) create in tutti i siti su WSS.


Per rimanere nell’esempio, una caratteristica poco gradita del modello Events è il fatto che all’aggiunta di un nuovo appuntamento è richiesto obbligatoriamente di specificare data/ora di inizio dell’appuntamento ma non la fine dello stesso… chi quindi utilizza questo oggetto per gestire la prenotazione di sale riunioni aziendali o altro all’interno della intranet, si trova con molti utenti che prenotano le sale indicando l’inizio della prenotazione… ma non la fine!


Una possibile soluzione è quella di lavorare sulla Site Definition di Events, indicando come required anche la compilazione del campo fine.


Le linee guida per lo sviluppo e il buon senso suggeriscono di evitare la modifica diretta di questi file, e di crearsi invece delle proprie Site Definitions personalizzate. Non è infatti sempre corretto intervenire con delle modifiche che si estenderanno su tutti i siti aziendali… ed inoltre, cosa accadrà di fronte all’installazione di un nuovo Service Pack? Che magari… guarda caso… decide proprio di aggiornare le Site Definitions standard?
Creandosene di proprie si potranno legare specifici comportamenti a particolari template personalizzati, da sfruttare soltanto nei siti dove effettivamente occorrono; ed infine non si correranno rischi di fronte ad un incontrollato Windows Update! ūüôā


Per chi desidera approfondire, segnalo un post letto su di un blog che riassume (purtroppo solo parzialmente) la logica delle Site Definitions. Oltre a questo utile prospetto, segnalo da non perdere due articoli pubblicati su MSDN Online. Il primo è sui modelli, sui diversi tipi di file delle Site Definitions; il secondo approfondisce alcuni aspetti trattati nel primo articolo orientando alla corretta¬†personalizzazione dei siti WSS ed SPS.

Scrivere WebParts riusabili

Mi è capitato di vedere un buon articolo su MSDN Online che suggerisce una serie di linee guida per sviluppare WebParts effettivamente riusabili.


Seguendo i suggerimenti si dovrebbero evitare (o limitare) le sorprese in occasione dell’installazione di qualche Service Pack o pensando alla futura versione di SharePoint (e relativa migrazione dei siti).


Magari può essere utile a qualcuno, pertanto lo segnalo. ūüôā

Archiviazione ottica con SharePoint

Ormai si parla da tempo di ridurre la carta, introducendo in azienda soluzioni di archiviazione ottica in grado di digitalizzare anche i documenti cartacei, al fine della loro archiviazione digitale. In parte, soprattutto per la Pubblica Amministrazione, le direttive che spingono in questa direzione sono chiare ed esplicite.


SharePoint, con le sue Document Library, può senza dubbio candidarsi come possibile soluzione a basso costo (parlo anche dei semplici WSS) per costruire una soluzione di questo genere. E soluzione basso costo non significa certo soluzione limitata


Le ragioni per cui dico questo sono diverse:



  • SharePoint offre un supporto per l’archiviazione dei file in grado di offrire -a costo zero- funzionalità di versioning, approvazione, check-in/check-out e integrazione Office.
  • Il solido storage, basato su¬†SQL Server, offre garanzie di scalabilità e affidabilità (quelle di SQL Server).
  • L’ambiente SharePoint, grazie alle Web Parts, offre uno spazio web-based, facilmente personalizzabile e rapidamente implementabile, dove esporre i contenuti informativi.
  • Le Raccolte documenti offrono una struttura dati (campi)¬†velocemente espandibile, con la possibilità di arricchire il tutto con metadati finalizzati alla ricerca o alla categorizzazione dei documenti.
  • Le visualizzazioni delle Raccolte documenti offrono spazio alla rapida personalizzazione dei layout, fornendo risposte a chi necessita di filtrare, riordinare o raggruppare i contenuti delle Raccolte documenti.
  • I contenuti archiviati (documenti) sono ricercabili, sia nella versione SharePoint Portal Server (SPS) che in Windows SharePoint Services (WSS); nel primo caso grazie agli specifici e potenti servizi di indicizzazione e ricerca, nel secondo caso grazie alle funzionalità full-text serach di SQL Server.
  • I contenuti sono raggiungibili via browser ma anche via HTTP Webdav, offrendo spazi di integrazione anche con applicazioni non recentissime o comunque nate per l’integrazione con SharePoint (come Office 2003 o FrontPage 2003 e le sue FP2003 RPC).

Chi oggi si occupa di archiviazione ottica tende ad archiviare i documenti digitalizzati in formato Adobe PDF o TIFF.
In entrambi i casi SharePoint può indicizzare e rendere ricercabili i contenuti di questi file.


L’architeturra di ricerca di SharePoint infatti si basa sul sistema degli IFilters, così come ci ha abituati in generale il mondo dei servizi MS Search.


Per abilitare SharePoint all’indicizzazione dei file Adobe PDF è sufficiente installare l’IFilter per i PDF. Recentemente è stato rilasciata la versione 6 dell’IFilter di Adobe, versione compatibile con le attuali versioni di SharePoint (mentre in precedenza la versione 5 richiedeva una serie di operazioni manuali post-setup).


Mentre per abilitare l’indicizzazione dei documenti TIFF (disabilitata di default) è necessario modificare opportunamente una chiave di registro. SharePoint sfrutterà così un potente OCR in grado di eseguire il riconoscimento dei caratteri, rendendo ricercabili full-text anche le immagini TIFF (il sistema è anche in grado di riconoscere l’orientamento dell’immagine, ed eventualmente di ruotare il TIFF al fine di una sua corretta lettura).
Per abilitare l’indicizzazione/ricerca dei file .TIFF:



  • Aprire il Registro attraverso Regedit
  • Ricercare la chiave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MSPaper
  • Inserire una nuova voce di tipo DWORD Value
  • Chiamare la nuova voce PerformOCR
  • Per abilitare il riconoscimento dei caratteri attribuire il valore 1 alla chiave (il valore 0 disabilita le funzionalità OCR).
  • Accedere ai Servizi della macchina e riavviare il servizio Microsoft Search.

In aternativa a tutte queste operazioni, se disponi del CD di SharePoint Portal Server 2003, puoi semplicemente fare un doppio clic sul file Tiff_ocr_on.reg contenuto nella cartella \Support\Tools (se ti fidi…).


Per maggiori dettagli leggi l’articolo della KB.

SharePoint in italiano o in inglese?

Una domanda tipica è legata alla scelte della versione con cui effettuare l’installazione di SharePoint (ed in particolare WSS).


In praticamente tutte le installazioni che ho incontrato nelle diverse realtà aziendali (italiane)¬†incontrate ho visto installata la versione italiana.
La scelta è sempre legata alla comodità di trovarsi già pronta un’interfaccia in italiano per chi dovrà gestire i contenuti dei siti WSS o che in generale dovrà interagire con gli strumenti (Web designer e Contributors), pensando ad utenti non particolarmente skillati tecnicamente e con scarsa confidenza con l’inglese delle interfacce.


Ma va ricordato un elemento importante, a favore della versione inglese,¬†cioè quello della maggiore facilità di reperimento di webparts e componenti sviluppati (spesso gratuitamente) dalla comunità mondiale degli sviluppatori SharePoint, funzionalità realizzate e testate sulla versione inglese di WSS e spesso incompatibili con quella italiana.


Adottare la versione italiana potrebbe dunque significare rinunciare all’importante opportunità di usufruire gratis o quasi di componenti per SharePoint. Oltre naturalmente a mettere in difficoltà lo sviluppatore di fronte a nomi di oggetti e percorsi tradotti in italiano, a differenza di quanto presentato da documentazione ed SDK.


Un problema reale dunque… come affrontarlo?


Il mio suggerimento è quello di installare sempre la versione inglese di WSS 2003.
Ma come risolvere il problema dell’interfaccia per gli utenti meno skillati?


Facile: esiste un apposito Language Pack per Windows SharePoint Services 2003, che non è altro che una raccolta di modelli di sito WSS (in italiano) utilizzabili per generare i siti SharePoint anche se l’architettura è in lingua inglese.


Si parte quindi dall’installazione di WSS in inglese, quindi prima di “estendere” a SharePoint qualsiasi Virtual Server della macchina si deve installare il Language Pack italiano.
Dopo aver installato il Language Pack, si procede all’estensione del Virtual Server a SharePoint, e durante l’operazione verrà chiesta anche la lingua (inglese o italiana) con sui generare il root site.


E il gioco è fatto! ūüôā

WSS Service Pack 2 in arrivo…

Il Service Pack 2 di Windows SharePoint Services 2003 (WSS) è in beta, ed è parte di Windows Server 2003 R2.


L’atteso aggiornamento per WSS si preoccuperà di:



  • Supportare i virtual server “IP-bound“, ossia supererà uno degli attuali limiti nella configurazione di IP statici per virtual server descitto nell’articolo della KB.

  • Supportare diverse configurazioni avanzate per le Extranet, superando l’attuale limite che impone l’uso di URL assoluti per le pagine web ed i link contenuti negli e-mail. Tra le nuove configurazioni possibili, anche SSL Termination, Host Header Modification e Port Translation: tutte possibilità utili a superare gli attuali limiti incontrati in scenari di Extranet complesse.

  • Abilitare come¬†predefinita dell’autenticazione Kerberos.

  • Garantire piena compatibilità con ASP.NET 2.0 (Whibdey), con la possibilità di far girare su WSS le nuove webparts create con ASP.NET 2.0.

  • Supportare le nuove edizioni Windows x64, per sfruttare a pieno IIS in modalità a 64 bit.

Per maggiori dettagli leggi il Whitepaper.


Insomma, niente male per un service pack… chiara finestra verso la prossima versione di SharePoint (2006).

Abilitare le ricerche booleane su siti WSS

Per attivare le ricerche booleane su WSS (Windows SharePoint Services 2003), che va ricordato sfrutta le funzionalità full-text search di SQL Server 2000, occorre procedere ad alcune modifiche delle stored-procedure contenute nel DB di WSS.
Naturalmente queste istruzioni non sono applicabili a scenari di WSS con DB su MSDE (oWMSDE), dove le funzionalità di full-text serach non sono disponibili.



  • Attraverso Enterprise Manager, apri il DB e accedi al container delle stored-procedure

  • Per abilitare la ricerca booleana sulle Raccolte documenti, apri la SP “proc_FetchDocSearchResults

  • per sicurezza fatti una copia di backup della SP (anche con un semplice copia incolla delle istruzioni su un file .txt)

  • Fai clic con il pulsante di destra del mouse sulla SP e scegli Properties

  • Ricerca la stringa “SET NOCOUNT ON“, e inserisci prima di questa riga la seguente istruzione:


    • DECLARE @CustSearchTerm nvarchar(255)
      SET @CustSearchTerm = ‘”‘ + @SearchTerm + ‘”‘

  • Cerca la stringa “FreeTextTable“e sostituiscila con “ContainsTable

  • Sulla stessa riga, sostituisci la variabile “@SearchTerm” con “@CustSearchTerm

  • Conferma il tutto (Apply e OK).

  • Per abilitare la ricerca booleana sulle Liste (Elenchi), apri la SP “proc_FetchListItemSearchResults

  • Fatti la solita copia di backup (non si sa mai ūüôā

  • Fai clic con il pulsante di destra del mouse sulla SP e scegli Properties

  • Ricerca la stringa “@SearchTerm” con “@CustSearchTerm” (sono presenti tre occorrenze)

  • Conferma il tutto (Apply e OK).

  • Se il contenuto dei tuoi siti WSS è distribuito su più database, ripeti la stessa procedura su ciascun DB

  • Chiudi Enterprise Manager

  • Esegui IISRESET per riavviare i servizi web.

Da questo momento in poi le funzionalità di ricerca dei siti WSS saranno in grado di supportare gli operatori booleani AND/OR (non altri).

Lavorare con Autocad su SharePoint

Per poter estendere ancor di più la propria gestione documentale, in particolar modo per quelle aziende che utilizzano/producono anche documenti Autocad, segnalo un link interessate.

Si tratta di Thaoe 2005 (buffo che abbiano scelto il codename di SharePoint, quando era ancora in beta…), un prodotto realizzato da Cad&Company per sfruttare le Raccolte Documenti di SharePoint come repository dei disegni Autocad.

Il prodotto (che costa 250€) offre anche uno specifico iFilter per indicizzare e ricercare i file .dwg.

Per maggiori informazioni, e per scaricare un trial del prodotto, visita il sito del produttore.

Aggiungere utenti su WSS da script

In diverse occasioni mi sono trovato di fronte a deployment di Windows SharePoint Services 2003 (WSS) di tipo Extranet e sito pubblico.


In queste situazioni il server Windows Server 2003 su cui è installato WSS è una macchina fuori Dominio, dove quindi è necessario creare i necessari accounts locali di Windows. Questo naturalmente perché WSS sfrutta l’autenticazione integrata di Windows, sui cui aggiunge le successive autorizzazioni, e l’appartenzenza ai Site Groups (il ruolo ricoperto dall’utente all’interno del WSS Site).


Di conseguenza, in previsione di un deployment che prevede la massiccia creazione di accounts, o in situazioni dove è da prevedere una possibili migrazione sei siti tra server (con ricreazione degli accounts), è possibile immaginare alcune soluzioni via script.


Una possibile strada è quella di creare un file batch contenente le istruzioni del comando
NET USER
[username [password | *] [options]] [/DOMAIN]
         username {password | *} /ADD [options] [/DOMAIN]
         username [/DELETE] [/DOMAIN]


Questa soluzione è senza dubbio utilissima per una nuova installazione, ed evita una noiosa operazione manuale, ma non è suficiente a completare l’opera, se il sito WSS è già stato creato.


Occorrerà infatti aggiungere gli utenti al sito SharePoint, e associarli conseguentemente al Site Group di appartenenza per conferire le corrette autorizzazioni.
Se si vuole fare tutto questo senza ricorrere all’interfaccia di amministrazione via web di SharePoint, è possibile creare un secondo script chiamando in causa il comando stsadm.exe -o adduser.


Innanzitutto si dovrà accedere da un commando prompt alla cartella
cd c:\program files\common files\microsoft shared\web server extensions\60\bin


e da qui eseguire il comando:
stsadm.exe -o adduser -url URL -userlogin DOMAIN\UserName -useremail utente@example.com -role Site_Group_Name -username “Users Display Name”


Al posto del DOMAIN si potrà inserire ovviamente il nome del computer server oggetto dell’installazione.


Volendo, è anche possibile aggiungere in coda al comando il parametro -siteadmin per assegnare all’utente le autorizzazioni di amministrazione del sito:
stsadm.exe -o adduser -url URL -userlogin DOMAIN\UserName -useremail utente@example.com -role Site_Group_Name -username “Users Display Name” -siteadmin


Per cambiare il proprietario del sito WSS, è possibile seguire questa strada:
stsadm.exe -o siteowner -url URL [-ownerlogin DOMAIN\User_Name | -secondownerlogin DOMAIN\User_Name]


Eh, sì… non c’è che dire. Il comando stsadm.exe è davvero una fonte inesauribile di soluzioni!