Over the last month of May, we’ve seen quite a few announcements from Microsoft with respect to what’s new and coming related to the SharePoint Framework (SPFx). This news has come out in part at the Microsoft Build 2018 conference in Seattle, WA and the SharePoint Conference North America 2018 in Las Vegas. Some of these things are available today while others are coming soon or in the next few months.
In this post, I’ll call out a few of these items that are noteworthy to me. For each one, I tried to get a good picture of the timing when we can expect to see each one, but some things are still a little murky to me.
Many of these things were discussed in two recorded presentations: One of these was at the Build Conference, Leveraging SharePoint as a development platform for the modern intranet & at the regularly scheduled bi-weekly SharePoint PnP JS & SPFx special interest group’s May 10, 2018 meeting.
Furthermore, you can hear an interview with Microsoft’s Vesa Juvonen on my podcast where we discussed a lot of the changes in depth: Microsoft Cloud Show: Episode 252 | SharePoint Development with Vesa Juvonen Live from Build. We also interviewed the SharePoint & OneDrive engineering team at the SharePoint Conference in episode 257 which you can watch on Facebook or listen to when it’s released.
Microsoft is going to release v1.5 of the SharePoint Framework and associated Yeoman generator @microsoft/generator-sharepoint. This feels like a maintenance release as there are a lot of generator bugs addressed in this revision, but it also includes a few new features or capabilities.
One of these capabilities is the option to configure the generator to use a package manager other than NPM. While NPM is still the default package manager recommended by the SPFx engineering team, you will have the option to configure it to use Yarn or pnpm. Personally, I’m a fan of Yarn but it’s nice to have the generator be a bit more flexible in allowing us to pick which one we want to use.
Another big change to the generator is that it will be released in two modes. One mode will be like we are used to where you have all the GA released features in it. However, unlike before, you can also get a version that will include preview features as well as some capabilities that I’d classify as experimental meaning that they may or may not eventually make it into production.
ETA: sometime in the coming weeks/days.
This is a welcomed addition to SPFx! Traditional server-side SharePoint developers are aware of web part connections. Microsoft will introduce a new feature to the SharePoint Framework called dynamic data that serves a similar role, but much bigger. This will be an SPFx marshaled service that any SPFx component, including web parts and extensions, can leverage in a pub-sub model.
I like to think of this as a client-side SPFx-hosted service bus like feature. Components can publish events/messages that other components can subscribe to. The initial release of this will include API support while a later release will give provide a UX for connecting components together.
ETA: unsure… maybe part of v1.5?
Microsoft developers may be familiar with a technology called SignalR. SignalR is a very Microsoft-centric technology. The more popular option that is used by the rest of the connected web world is called socket.io. Microsoft has added the necessary components on the server that we can leverage in the client.
Today when you create an SPFx extension such as an application customizer, you have to manually install it to each site collection where you want to use it. Tools like the SharePoint PnP PowerShell & Office 365 CLI have commands that will make it easier to do this to many site collections at once, but it still a manual task.
Vesa demonstrated in his Build session & JS SPFx SIG meeting (linked above) this new capability that’s coming soon. There is a special list at the tenant level that you can manually add the SPFx component extension to install a component across all sites in a tenant. This will greatly simplify the process of deploying extensions at scale!
Of course, you can always limit an extension to specific site collections by either manually installing it or by adding it to the site collection app catalogs.
ETA: sometime in the coming weeks/days.
At Build and the SharePoint Conference, Microsoft showed how customizations you build with the SPFx can be surfaced as custom applications within Microsoft Teams. Think of a web part that takes up the entire canvas on a page.
This leads me to believe that maybe the SPFx could possibly morph into a bigger “Office 365 Extensibility Framework” (my term, not Microsoft’s) in the future.
ETA: unsure… maybe as a preview in v1.5?
Many developers with experience in building solutions using Angular have had trouble getting them to work in a performant way in SPFx solutions. It’s not that Angular doesn’t work in SPFx solutions or that Microsoft doesn’t support it, it’s that the nature of how Angular likes to own the entire customization experience makes it a challenge, not to mention the large payload of Angular-based customizations.
With the release of Angular 6, Google introduced Angular Elements, something I wrote about previously on my blog: Solve the SharePoint Framework + Angular Challenge with Angular 5.0 Elements. Angular Elements isn’t required for SPFx, but it makes a lot of sense (and a lot more sense to me than building a full-blown Angular application that’s surfaced in an SPFx component.md" >}} in an SPFx scenario.
At both Build & SharePoint Conference, Google presented a session demonstrating Angular Elements and the technology behind it. The Build session was recorded here: Angular Today, Angular Tomorrow, Angular Forever. Coming soon with Angular in the next few months is a new rendering engine for Angular called Ivy. This will dramatically speed up the rendering but also slash the side of the generated bundle.
The SharePoint Conference session was basically the same session but included an SPFx demo at the end. This used the upcoming Ivy rendering engine and while it was a simple “hello world” example, the resulting bundle was just 13kB… which includes everything it needs to run including Angular.
I attended the session at the SharePoint Conference and had a great discussion with attendees afterward. If you know Angular, the code was pretty straightforward… there wasn’t anything special you had to do. The challenging part has to do with the building of the Angular code. While we’re still waiting for the code to be published, it will prove to be a good web framework alternative to building SPFx components for developers who don’t want to use React.
Personally, I’m waiting to see the sample project from the SPC session to see how the build process was customized to create the application as that’s the most complicated piece.
ETA: Angular Elements is part of Angular 6 which is available today… what we’re waiting on is someone to come up with a good pattern on how to implement the build process within an SPFx project.