Ogni campo di una lista o document library SharePoint ha un suo identificativo interno che, oltre al campo ID, permette di riferirsi al campo stesso in maniera univoca quando si sviluppa una qualsiasi tipologia di soluzione che deve leggere o scrivere un valore nel campo. Questo identificativo è detto "InternalName" del campo e può essere generato in due modi:

  • in automatico da SharePoint
  • manualmente dallo sviluppatore, in fase di provisioning  della lista

Questo vale sia per i campi locali alla lista che per le site column e chi sviluppa su SharePoint lo conosce molto bene.
Sin dalle prime versioni di SharePoint Server, quando il sistema crea in automatico l'internal name di un campo con uno o più spazi, ogni spazio è sempre stato sostituito dai caratteri _x0020_, quindi un campo chiamato "Approvato da" diventava "Approvato_x0020_da".
E' così dalla notte dei tempi e diciamo che ormai noi sviluppatori SharePoint ci siamo abituati a questa porcheria :)
Questo è uno dei motivi per cui è sempre consigliato di effettuare il provisioning della lista tramite un qualsiasi automatismo, così da poter tenere sotto controllo la creazione di questi identificativi da utilizzare poi all'interno delle proprie personalizzazioni.

La grande novità del momento è che (dopo ben 18 anni di presenza sul mercato) SharePoint Online crea gli internal name dei campi senza i caratteri _x0020_ !
Ecco le prove.

Attenzione però: ad oggi il comportamento si verifica solamente se il campo viene creato dalla lista in modalità "modern ui". Se decidete di creare il campo all'interno dell'area di importazioni della lista il campo verrà creato sempre con i caratteri _x0020_ nell'internal name, lo stesso per quanto riguarda una site column.

Il vantaggio più immediato di questa modifica riguarda la funzionalità di formattazione delle liste. Fondamentalmente si semplifica un pò la vita di chi personalizza la visualizzazione di liste o campi, riducendo notevolmente la sintassi per il riferimento ai vari campi. Credo che alla fine questa modifica sia stata fatta proprio per questo.
Dal punto di vista dello sviluppatore non cambia molto: a meno che non siamo obbligati a dover lavorare con una lista già in essere (in cui possiamo quindi beneficiare di questo piccolo improvement), è sempre meglio preoccuparsi del provisioning delle proprie strutture.