Durante il primo giorno di Build 2017 Microsoft ha annunciato una serie di novità per tutti gli sviluppatori che gravitano intorno agli strumenti offerti dal mondo "Office". Parlo di tutto ciò riguarda Office 365, Graph e SharePoint ovviamente.
Queste novità accrescono sempre di più le possibilità di personalizzazione dei tool di Office e Office 365, riempiendo pian piano tutti i gap con cui ci siamo dovuti confrontare fin'ora.
In questo post vedremo quali sono le opzioni di personalizzazione aggiunte allo SharePoint Framework che, fino a qualche giorno fa, ci dava la possibilità di implementare solamente Client Side Web Parts. Queste opzioni ci permettono di customizzare quella che è la nuova UI dei team sites in SharePoint Online, rilasciata a step durante il 2016 e questi primi mesi del 2017.

Application customizers

Attraverso questa nuova tipologia di personalizzazione sarà possibile:

  • aggiungere script Javascript all'interno della pagine di un team site SharePoint Online
  • recuperare specifici elementi HTML all'interno della pagina e personalizzarne il rendering
Sarà la stessa Microsoft a fornire la lista di questi elementi HTML che potranno essere personalizzati.
Esempi pratici di utilizzo di questi "application customizers" sono in primis l'aggiunta di script globali nelle pagine, come lo script di tracking di Google Anlaytics o particolari plugin di cui avete bisogno in tutte le pagine del sito. Un pò come si faceva con le custom action con location=ScriptLink.
Grazie alla possibilità di modifica del rendering di alcuni elementi facenti parte della UI di default di SharePoint Online, potremmo invece implementare header e footer custom per esempio, o rivedere la grafica di alcune area dell'interfaccia. Un pò come si faceva con i delegate controls all'interno di master page custom.
Ecco l'esempio di un team site SharePoint Online con l'header personalizzato.

Nuove possibilità di personalizzazione di SharePoint Online attraverso lo SharePoint Framework

Field customizers

Attraverso questi customizers, sarà possibile ridefinire il rendering di liste, viste e campi. In poche parole, si tratta della nuova versione dei Client Side Rendering (JSLink) per la personalizzazione di liste e document library in cui è abilitata la modern UI.

Command sets

Attraverso questa nuova opzione, sarà possibile aggiungere azioni personalizzate all'interno dei menu di comando di liste e document library SharePoint Online, assieme alla possibilità di implementare logiche Javascript al click su queste azioni direttamente all'interno della pagina (novità rispetto a quanto si poteva fare con l'add-in model).
Si potranno inserire azioni custom sia all'interno dell'edit control block (il menu che appare facendo click sui tre puntini in ogni elemento/file), sia nella barra dei comandi posta sopra la vista.

Web part connections

Le Client Side Web Part verranno dotate di un supporto nativo per lo scambio dei dati tra due web part all'interno della pagina. Sarà possibile utilizzare delle nuove API per capire quali sono le web part presenti in pagina e sottoscriversi ad eventi e modifiche di stato.
Il funzionamento è praticamente lo stesso delle connessioni tra web part che sono presenti sulla versione on-premise di SharePoint dalla notte dei tempi. Ci sarà un'interfaccia per lo scambio dei dati e le due modalità producer e consumer.


Come avrete capito Microsoft sta investendo tanto sullo SharePoint Framework, per ridare agli sviluppatori SharePoint parte della libertà di personalizzazione che è stata sempre disponibile all'interno del prodotto on-premise. Non sono state date indicazioni precise circa il rilascio in preview di queste novità ma sarà sicuramente presto.
Vedremo cosa ci diranno domani allo SharePoint Virtual Summit.