improve shared customizations story (i.e. custom field types, JSLink restrictions, shared customizations)
I'd like to see an improved story around customizations that traditionally required server side customizations and no real parody was provided for client side techniques including web parts, field types, _layouts files, etc)
We can sort of get Custom Field Types with Site Columns and JSLink, however a few limitations:
- Only one instance of a site column per list/library.
- There is a bug in provisioning Rich Text site columns to lists that converts them to Plain Text.
- Users still see them as "text" fields when they visit the field settings in the SharePoint UI.
- JSLink is restricted to a link in the Site Collection or link relative to the site collection such as layouts - however, we are not supposed to be deploying to _layouts anymore :(
Rich Text allows us to store data just about however we might like and then parse it out and render an editing/display experience with JSLink. However, code is required to provision the field properly into a list when a Rich Text field is used (due to bug).
Perhaps there could be a way to abstract out the concept of the _layouts folders. Perhaps each tenant gets a "root" area where customizations can be deployed to and shared. Perhaps this area could be addressed relative to any given site collection (similar to way _layouts is today) or the JSLink would allow references to this area (maybe by some token, like ~tenant instead of ~sitecollection). This way an update to a shared customization could be globally deployed by updating a single location, rather than copying into every site collection/site where the shared customization is used (and having to upgrade each "app")