Migrare una master page da SharePoint 2007 a SharePoint 2010
Alla Microsoft SharePoint Conference di Las Vegas ho avuto la fortuna di assistere all’interessantissima sessione di Andrew Connell e Chris Johnson sul tema Upgrading a SharePoint 2007 Publishing Site Master Page to SharePoint 2010.
Essendo pane per i miei denti, non vedevo l’ora di cimentarmi in un’esperienza simile per verificare se fosse realmente così facile (tuttora ho gli incubi per la migrazione dal 2003 al 2007); l’occasione è venuta pochi giorni fa quando, dopo aver già realizzato la master page per un nuovo sito web su ambiente SharePoint 2007 (Moss), il cliente ha deciso di fare il salto e di investire sul nuovo SharePoint 2010 (SharePoint Server).
In questo caso non si è trattato di un vero proprio upgrade (il sito con i contenuti devono ancora essere realizzati), ma di fare in modo che il lavoro fatto per il vecchio SharePoint non andasse perso.
Gli obiettivi da perseguire erano 2:
- non perdere/rifare quanto realizzato;
- usufruire appieno delle nuove funzionalità (ribbon, finestre modali, etc).
Sulla base del materiale raccolto nel post sopracitato e nella documentazione microsoft, condivido in una serie di post con l’elenco degli step seguiti.
Step 1:
In ambiente 2010 creare una nuova master page vuota con SharePoint designer 2010 nella quale copiare il contenuto della master page 2007 (può sembrare un passaggio inutile, ma altrimenti il nuovo SharePoint Designer, che ora ragiona per artefatti, non considererà il nostro file come una master page disponibile).
Figura 1 – Creazione di una nuova master page vuota
Figura 2 – Gli artefatti di SPD 2010
Step 2:
Rimozione dei controlli del 2007 ora inclusi nel ribbon:
- Publishing Console (<PublishingConsole:Console>)
- Site Actions Menu (<PublishingSiteAction:SiteActionMenu>)
- Sign-in e Log-in
Step 3:
- Rimozione dei tag register del Site Action menu e della Publishing Console nell’head della pagina (non è invece necessario rimuovere i controlli del Log in che nel 2010 sono i medesimi):
- Se necessario perchè pensate di utilizzarlo, aggiunta del tag register per il multilingua (<%@ Register TagPrefix="wssuc" TagName="MUISelector" src="~/_controltemplates/MUISelector.ascx" %>)
Step 4
- Inserire il Ribbon (comprensivo degli stili perché è a questi che fanno riferimento i suoi script)
Fonte: http://msdn.microsoft.com/en-us/library/ee539981(office.14).aspx
Step 5
Inserire i riferimenti ai vari script utilizzati dal ribbon e dalle nuove funzionalità (finestre di dialogo, etc)
- Aggiunta dello Script Manager (deve essere dentro il tag form ma prima del ribbon
- Aggiunta dei riferimenti a SPPageManager e ScriptLink nell’head della pagina
Step 6
Applicare la master page così modificata al sito ed andare in preview. In caso di errori, non dobbiamo spaventarci. E’ probabile infatti che al rendering della pagina (e del ribbon) alcuni placeholder risultino duplicati (ad esempio per la breadcrump).
Armandoci di santa pazienza e mouse non dobbiamo fare altro che capire qual è il controllo duplicato (modificando opportunamente il web.config della web application in questione)
Figura 3 – Web.config standard
Figura 4 – Web.config modificato per mostrare gli errori
Questi sono tutti gli step da seguire necessariamente affinché la nostra master page nata del 2007 possa essere felicemente trasportata nel 2010, ereditando le nuove funzionalità.
Seguiranno una serie di trucchetti per abbellirla; alcune anticipazioni sugli argomenti:
- Come fare in modo che il ribbon si sostituisca all’header?
- Come nascondere agli anonimi lo spazio occupato dalla nuova editing toolbar?
- … .
Auguri per il neonato blog.
Pingback: Come nascondere il controllo “PopoutMenu” per l’accesso anonimo « Baxy's Blog
Questa procedura fa il caso mio se devo migrare per esempio un sito da un wss 3.0 a uno sharepoint foundation 2010? Perchè sto facendo il porting di alcuni siti, ma uno di questi era stato creato con un custom template quindi una volta portato non mi permetteva di visualizzarlo con la nuova interfaccia. Per il database come faccio? Faccio prima un porting normale e poi modifico la masterpage oppure prima creo la webapp con relativa masterpage vuota seguo la guida e poi migro il db?
Grazie mille delle info
Ciao Matteo,
il metodo migliore per migrare passa da una procedura definita di add content db (ovvero si fa un backup del/dei db sql di contenuto SharePoint 2007 e lo si “attacca” al nuovo SQL del 2010). Questo vale se la farm 2010 è nuova rispetto a quella 2007; in caso contrario (upgrade della stessa farm, si può procedere con un upgrade in place.
Questi gli steps principali:
dapprima bisogna verificare che la farm 2007 soddisfi i presupposti per la migrazione (ovvero deve essere sufficientemente aggiornata). Questi gli steps:
Se i requisiti minimi sono soddisfatti, puoi effettuare la migrazione; ti riporto 2 post sull’argomento (ma in rete ne puoi trovare tanti altri):
A questo punto i tuoi vecchi siti si troveranno su un’infrastruttura 2010. Ora potrai decidere se mantenere l’interfaccia vecchia o passare a quella 2010 (in termini tecnici si parla di Visual Upgrade): gestione degli elementi con il ribbon, dialog box, etc.
Questa operazione può essere fatta sia a livello di site collection che a livello di singolo sito. Se si decide di fare questo passaggio (è una scelta che va valutata attentamente perchè, sebbene si abbiano degli indiscutibili vantaggi in termini di nuove funzionalità, la user experience cambia radicalmente per cui non è a costo zero per gli utenti), ai vari siti sarà sostituita al volo la vecchia master page 2007 con la nuova 2010 (v4.master).
Ora: i vecchi siti erano stati personalizzati in termini di Branding?
Se sì, bisogna migrare a mano la vecchia master page (per farlo, puoi partire dal mio post) Se no, sei abbastanza fortunato perchè eventualmente puoi lasciare la nuova.
Spero queste dritte ti siano utili,
ciao
Barbara
Si si ma sono abbastanza pratico per quanto riguarda migrazioni in generale, il problema mi è sorto ora che devo migrare una sito Wss 3.0 che però è stato creato con un template custom. La migrazione del sito è stata effettuata con successo su SP2010, però non mi è permesso passare alla nuova interfaccia (a causa del custom template. Sugli altri siti potevo passare tranquillamente alla nuova); quindi mi chiedevo se fosse possibile passare alla nuova user experience pur partendo da un custom template.
Grazie
Ops
se per custom template intendi una custom master page assolutamente sì, questa è la strada. Fammi sapere come procede.
Ehm.. Intendo che non è stato fatto il sito utilizzando i classici “Team Site”, “Collaboration Site”, ecc.. ma è stato utilizzato un modello custom (presumo sviluppato da qualcuno). Ok quindi seguo la tua guida, se ho qualche problema di comprensione ti commento qui, ma speriamo di non averne
Grazie per l’aiuto!
Giusto un accorgimento: verifica che si stia realmente parlando di master page (in tal caso un approccio site builder con SharePoint designer sarà sufficiente, così come indicato nel post) e non di Site Definition (in tal caso è necessario un approccio dev).
Ti giro alcuni link:
http://andersrask.spoint.me/files/2010/05/WhitePaper-Upgrading-SharePoint-2007-to-SharePoint-2010.pdf
http://msdn.microsoft.com/en-us/library/ms439232.aspx
Pingback: Branding di Sharepoint 2010: ABC e qualche appunto. - diploD