SharePoint framework extensions in developer preview
Adam Wildash, Unily's Developer Team Lead shares his excitement about the recently announced SharePoint framework extensions in developer previews.
As Developer Team Lead at Unily, the recent announcement of the SharePoint Framework Extensions got me really excited. The new modern sites experience in SharePoint Online is great, and the development model for the new framework a step in the right direction in terms of modern web development. However, the current customization options for modern sites are very limited compared to what we can do when we build responsive intranet solutions for our clients using publishing site collections (for example).
I had a client recently who was very keen to use the new modern sites as the basis of their SharePoint intranet. When I explained the limitations of the customization however, they chose to make use of a publishing site collection instead. One of the key issues with the modern sites was the inability to have a common header or footer across the site - a problem in terms of user experience. With the new Framework Extensions (which are, at time of writing, in developer preview) we will now be able to customize the header and footer, creating an intranet for the client with a united look and feel!
The client I speak of is almost ready for go-live, but as we developed their customizations in React & TypeScript, what we’ve built for their current intranet solution can be easily ported to the new modern site experience.
To test this, I kicked off the Yeoman SharePoint Generator and picked the new App Extension option:
Firstly, I imported my top navigation React component from the publishing site collection into my SPFramework solution. I then amended the onRender function of the ApplicationCustomizer (see the announcement video on how to do this) to render this component, instead of the ‘hello world’ markup. I tweaked the client’s branding for anonymity of screenshots and then ran the solution locally using gulp serve.
When running the solution locally, a querystring has to be appended to the modern site URL to see the customisation in action:?loadSPFX=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"d03ae0c2-bbbf-4cf5-9ff7-0986904553da":{"location":"ClientSideExtension.ApplicationCustomizer" }}
The outcome can be seen below:
Top browser:publishing site
Bottom browser: modern team site
In the top browser, we have the blue custom responsive navigation in a publishing site collection. This also has a custom theme applied to the site, hence the green Office365 Suite Bar. The bottom browser overlapping it is a modern team site with the same React component, added using the new SharePoint Framework Extensions. Pretty cool.
See the Office developer documents for getting started with writing your own SharePoint Framework Extensions.
The next announcement I’ll be looking out for will be the release of Communication Sites (currently set for Q2 of 2017) with the ability to pick section layouts in the modern site experience.