Una delle modalità più usate e più consigliate per effettuare una migrazione da MOSS 2007/WSS 3.0 a SharePoint 2010 è sicuramente quella dell'attach del database dei contenuti.
Se avete mai provato questa modalità per le vostre migrazioni, saprete sicuramente come utilizzare il cmdlet "Test-SPContentDatabase" di powershell e saprete anche che il risultato prodotto da questa operazione risulta pieno di informazioni, forse un pò forvianti o pressoché inutili. Il tool infatti, visualizza sulla console le informazioni di base riguardo tutte le issue che potrete incontrare se decidete di migrare il vostro database dei contenuti alla nuova versione di SharePoint.

Test-SPContentDatabase method

Sfortunatamente però, non otteniamo le informazioni che ci aiutano a capire quali sono queste issue e dove sono attualmente utilizzate. Per esempio:

  • Le feature che verranno perse durante la migrazione sono presentate solamente tramite il loro identificativo
  • Le web part che dovranno essere spostate/migrate, vengono presentate solamente tramite un'identificativo (ottenuto tramite il calcolo spiegato qua).

Questo significa che non siamo ne in grado di capire quali sono le web part che dobbiamo migrare, ne quali le feature e, sopratutto, non possiamo sapere dove queste sono attivate o utilizzate all'interno dei siti SharePoint presenti all'interno del database di contenuto che stiamo migrando.
Questo rende decisamente difficile la nostra migrazione, sopratutto se ci troviamo di fronte ad un ambiente SharePoint 2007 che non abbiamo customizzato in prima persona.

Ecco quindi che, io e il mio gruppo, abbiamo sviluppato un piccolo tool di supporto a questa operazione che è in grado di leggere il report generato dal cmdlet "Test-SPContentDatabase" e generarne un secondo un pò più ricco diciamo.
Infatti, una volta eseguito il nostro tool, una web part mancante che prima ci veniva presentata in questo modo:

And a MissingWebPart issue like

Category : MissingWebPart
Error : True
UpgradeBlocking : False
Message : WebPart class [xxx] is referenced [3] times in the database xxxx], but is not installed on the current farm...


nel nuovo report generato, verrà invece visualizzato quanto segue:

WebPart Details: CustomWebPart

WebPart name: CustomWebPart
WebPart Type name: CustomWebPart.namespace
Assembly Name: CustomWebPartAssembly, Version=1.1.0.0, Culture=neutral, PublicKeyToken=7668678dcd8080b491
WebPart Id:: xxx
This wep part can be located in the following pages:
SubSite/default.aspx
SubSite1/subsite/page.aspx


Quindi, dal niente a TUTTO ! :)
Scherzi a parte, con questo tool siamo in grado di capire esattamente quali saranno le web part, le feature e le altre customizzazioni che dobbiamo migrare all'interno della nuova farm SharePoint 2010.

Per utilizzarlo, è necessario seguire questi passi:

1- effetture un backup e restore del database di contenuto all'interno del database server di SharePoint 2010
(qua per le istruzioni: http://msdn.microsoft.com/en-us/library/ms187048.aspx);
2- eseguire il comando "Test-SPContentDatabase" tramite powershell per generare il report di input
(qua per le istruzioni: http://technet.microsoft.com/en-us/library/cc263026.aspx e http://technet.microsoft.com/en-us/library/ff607941.aspx);
3- Copiare il report generato all'interno della vecchia farm SharePoint 2007;
4- Eseguire il nostro tool passando il file .txt come unico parametro

Questa figura vi può chiarire il processo di utilizzo.

Processo di creazione del report

Per poterlo utilizzare, potete scaricare l'eseguibile compilato da codeplex o potete prendere i sorgenti e ricompilarlo. Ecco il link diretto al progetto:
http://sp2010extmigrareport.codeplex.com/

Bene, mi sembra tutto :)
Chiaramente il tool è ancora in fase di sviluppo e alcune missing customization non vengono recuperate nella loro interezza. Se qualcuno ha voglia di partecipare al progetto, ne saremmo ben contenti.
Se invece, pensate di utilizzarlo per le vostre migrazioni e siete così gentili da darci un feedback, ne saremo sicuramente felicissimi !