Archivi categoria: SharePoint

SharePoint, generale

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!

Ripristinare un singolo file dal Backup di SharePoint

Una delle domande più gettonate durante i miei corsi, in particolar modo in occasione del modulo sul Backup/Restore di SharePoint, è senza dubbio la domanda: “Ma come? Come sarebbe a dire che il tool di backup di SharePoint Portal Server 2003 è in grado di fare solo il backup/restore completo del portale?”.


Sì, avete letto bene. Se un qualsiasi utente del portale o della intranet documentale cancella per errore un documento da una Document Library, *ufficialmente* c’è una sola strada: ripristinare l’intero portale dal backup della notte precedente. Accidenti! Mi pare un pochino come sparare con un cannone ad un uccellino…


E che fine farebbero tutti gli altri documenti aggiunti o modificati nel corso della giornata incriminata? Persi. Ovviamente. Argh!


Beh, non credo sia una soluzione nemmeno presentabile ad un qualsiasi cliente o azienda che sta valutando l’intenzione di passare a SharePoint per gestire i propri archivi documentali, titubante nell’abbandonare il vecchio e consolidato File Server.


I produttori terzi di sistemi di backup/restore sono in grave ritardo, rispetto all’uscita del prodotto. Ma sono ormai diversi quelli che vendono un tool in grado di eseguire questa attività in modo granulare, per il ripristino del singolo item. Così come i grandi nomi tardano nel rilasciare opportuni Agenti per i propri prodotti di Backup/Restore.
Un buon esempio, tra i primi ad uscire sul mercato, è senza dubbio il prodotto di AvePoint, anche se forse un po’ troppo costoso per piccole implementazioni.


Chiunque oggi ha in produzione un sito SharePoint (sia WSS che SPS) perlomeno effettua il backup dei dati dei database di SQL Server 2000. Almeno grazie a questi è ipotizzabile un intervento di disaster recovery.


Dalla comunità francese, e francofona, di SharePoint arrivano buone notizie.
Grazie ad un comodo tool, gratuito, con interfaccia in inglese e scaricabile liberamente, l’amministratore di SharePoint può connettersi dal proprio computer al server SQL e ripristinare dal backup del DB anche il singolo oggetto, navigando comodamente all’interno della struttura di siti e sottositi. Ovviamente bisognerà aver prima ripristinato il DB in questione sul SQL Server.
Il ripristino del file viene fatto direttamente su file system, e non all’interno della collocazione originaria. Sarà poi compito dell’amministratore quello di passare il file all’autore dell’eliminazione del file o potrà ri-uploadare il tutto nella raccolta documenti.

EDIT: Ecco il link aggiornato al Granular Backup Tool di Renaud Comte:
http://blog.spsclerics.com/articles/434.aspx

Capacity planning per SharePoint 2003

Spesso mi viene chiesto di dimensionare correttamente una macchina che dovrà essere utilizzata in un deployment di SharePoint 2003. Ed in particolare di SharePoint Portal Server 2003.


Una prima considerazione va fatta in funzione dello scenario di deployment, se si tratta di un’installazione su di un solo server o distribuita su più macchine (scenario server farm).


Ipotizzando un’installazione singolo server (componenti di SharePoint per il rendering delle pagine Web, index, search e SQL Server 2000 per i database), il suggerimento di Microsoft indica almeno:



  • 1 GB di RAM (io ne suggerisco di solito 2 GB),

  • 100 GB di hard disk

  • bi-processore Pentium 4 da 2.8 GHz.

Questa configurazione è pensata per offrire queste prestazioni:



  • 32 richieste al secondo (con SQL Server) o 15 richieste al secondo (con MSDE),

  • indicizzazione di 5 documenti al secondo,

  • archiviazione di un volume fino a 100.000 documenti (con SQL Server),

  • indicizzazione fino a 1 milione di documenti,

  • possibilità di ospitare fino a 10.000 siti (team e personal),

  • possibilità di creare fino a 5 siti portale.

Pensando invece ad uno scenario di piccola server farm (due computer), queste potrebbero essere le indicazioni:



  • Server su cui installare SharePoint Portal Server 2003:


    • 2 GB di RAM,

    • 200 GB di hard disk,

    • bi-processore Pentium 4 da 2.8 GHz.

  • Server su cui installare SQL Server 2000 (o eventuale server già presente, su cui creare i DB per SharePoint):


    • 2 GB di RAM,

    • 200 GB di hard disk,

    • bi-processore Pentium 4 da 2.8 GHz.

Questa configurazione è pensata per offrire queste prestazioni:



  • 37 richieste al secondo,

  • indicizzazione di 5 documenti al secondo,

  • archiviazione di un volume fino a 100.000 documenti,

  • indicizzazione fino a 1 milione di documenti,

  • possibilità di ospitare fino a 10.000 siti (team e personal),

  • possibilità di creare fino a 5 siti portale.

Per maggiori informazioni, o per analizzare scenari differenti, consulta il sito.

Accellerare l’invio degli Alerts

SharePoint 2003 invia di default ogni dieci minuti gli Alerts (Avvisi) agli utenti che hanno sottoscritto tale richiesta, in occasione dell’evento configurato (aggiunta, modifica o eliminazione di un elemento da una lista o da una raccolta documenti).


Per velocizzare tale tempo standard è possibile seguire un paio di strade.


In entrambi i casi torna d’aiuto il “mitico” comando STSADM.EXE (ma cosa non fa questo tool? :-), che si trova nella cartella:
C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\BIN 

puoi forzare la consegna dei messaggi di avviso, provando ad eseguire il comando con la seguente sintassi:
stsadm -o setproperty -pn job-immediate-alerts -url http://miosito -pv “every 2 minutes”


Da questo momento in avanti il server invieerà gli avvisi con intervalli di due minuti (anzichè i soliti dieci).


Altra funzione utile è la sintassi per scoprire come è configurata tale impostazione: 
stsadm -o getproperty -pn job-immediate-alerts -url http://miosito


Se l’impostazione non è stata attivata verrà restituito il valore:


altrimenti, seguendo l’impostazione dell’esempio:


E il gioco è fatto! 🙂


Una seconda strada è quella attraverso quest’altra sintassi:
stsadm.exe -o setproperty -pn job-immediate-notification -pv 3
 
Il valore -pv (PropertyValue) indica il valore del ritardo in minuti, nell’esempio 3 minuti.


Ma attenzione: utilizzando questo secondo comando tutti gli utenti riceveranno anche una copia di tutti i loro vecchi avvisi!