Tag

, ,

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).

BlankMasterPage

Figura 1 – Creazione di una nuova master page vuota

SPDArtefatti

Figura 2 – Gli artefatti di SPD 2010

Step 2:

Rimozione dei controlli del 2007 ora inclusi nel ribbon:

  • Publishing Console (<PublishingConsole:Console>)

Publishing Console

  • Site Actions Menu  (<PublishingSiteAction:SiteActionMenu>)

SiteAction

  • Sign-in e Log-in

RimozioneWelcome

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):

RimozioneTagRegisterControlli

  • Se necessario perchè pensate di utilizzarlo, aggiunta del tag register per il multilingua (<%@ Register TagPrefix="wssuc" TagName="MUISelector" src="~/_controltemplates/MUISelector.ascx" %>)

Mui

Step 4

  • Inserire il Ribbon (comprensivo degli stili perché è a questi che fanno riferimento i suoi script)

Ribbon

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

ScriptManager  

  • Aggiunta dei riferimenti a SPPageManager e ScriptLink nell’head della pagina

AggiuntaScript

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)

CallstackFalse

Figura 3 – Web.config standard

CallstackTrue

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?
  • … .