The New way to develop on SharePoint

Microsoft did a lot of announces yesterday and I’ve spent a part of the night to shell all of those changes, and I’ve figured out a really special thing : everything will change for SharePoint Developers. Yes. Really.

The « add-in model » was just a step to something bigger, something made of Azure, APIs, Open Source, PnP, PowerApps, LogicApps, Azure WebJobs, Visual Studio Code (or whatever)… And a lot of new things we’ll  have to stay aware.

Definitely, it will change our way to develop business applications. There is now an alternative to the whole « old » SharePoint SDK.
Here is a table which let you help to understand (I hope) all of those changes :

Action Old way New way Tools of the New way, gains, …
Provisioning sites, content types, lists and libraries – Declarative : Sites and list definitions
– With procedural mode

Languages :
– XML
– C# SDK
Declaratively : PnP provisioning engine with templates

Languages :
– XML for templates
– CSOM
– PowerShell
– Visual Studio
– PowerShell

Note that the PnP provisioning engine allow you to create a SharePoint Site, and save a readable/editable XML template of this site, really quickly, to reuse it.

Customize Publishing or Team Sites – MasterPages
– Webparts
– User controls

Languages :
– ASP.Net
– C# SDK
– Javascript

– SharePoint Framework
– Office UI Fabric 

Languages :
– HTML
– JavaScript OR TypeScript
– API, if needed, so any language you need

– Visual Studio
– Visual Studio Code
– Any other dev tool
– SharePoint Workbench will allow you to debug without any Internet Connexion !

Note that you’ll have a full SharePoint Mobile App compatibility

Event action – Event receivers
– Workflows

Languages :
– C# SDK
– SharePoint Designer (lol)

– Remote event receivers (just kidding)

Logic Apps or PowerApps Logic Flow (same thing)
– with existing APIs
– with self-coded APIs (Azure API)

Languages :
– CSOM and MVC 6 for your self-coded API
– Any other language you want for your API

– Azure Logic Apps Interface
– PowerApps
– Visual Studio
– Visual Studio Code
– Any other dev tool
Scheduled actions – TimerJobs

Languages :
– C#

Azure Web Jobs
– ? Logic Apps ?
– Any other system that can scheduled a task (CRON, …).

Languages :
– CSOM
– Any language supporting REST and oAuth

– Visual Studio
– Any other dev tool
Link to external sources – External Content Types (developed or with SharePoint Designer)

Languages :
– C#

– Logic Apps
– External Content Types
– Power Apps
– Visual Studio
Get usage reports &
Get datas from your business
– SharePoint usage logs – Office graph
– Microsoft graph

Languages :
– Any language supporting REST and oAuth to get datas

– Visual Studio
– Any other dev tool- Power BI (Portal, Desktop, …)
Publish / Embed reports – Excel Services
Oh_no,_not_this_shit_again
– Power BI (Online)
– Pyramid Analytics (On prem)

Languages :
– C#
– CSOM
jPBI (JavaScript framework)

– Visual Studio
– Any other dev tool
– Power BI (Portal, Desktop, …)
– Content web part editor (for jPBI)
Responsive SharePoint Sites Oh_no,_not_this_shit_again – PnP : SharePoint.UI.Responsive – Visual Studio
– PowerShell
Source code controller and devops projects management tools Team Foundation Server – Visual Studio Online + Agility
– GitHub

 

And now, a little Q&A :

Is the « old way » dead ?
Not yet. But I give it 5 years to die. There are still a lot of applications that need to get maintained.

What can I do to get ready and not loosing my SharePoint Developer job in 5 years ?
Systematicly privilegiate the new way for your projects. Don’t be afraid. We, MVPs, are here to answer your questions, as Microsoft team is. You can join us/them on Twitter, … Remember you won’t have the same job for more than 5 years. You need to get used to it.

Where should I start ?
– Read and watch all of those ressources. It will give you tons of ideas.
Read the PnP documentation
– Start using MVC 6. Leave Webform. For ever. Yes. I’m not kidding.
– Open a free Azure Tenant and develop your first Azure API
– Get used to Visual Studio Code

My projects are SharePoint OnPremise only, so I don’t care all of your Azure stuff
I can hear that 😉 Please consider :
– Hybrids solutions : SharePoint On Premise using Azure for Logic Apps, …
– Full On Premise solutions : SharePoint On Premise and Azure Stack
– Today or tomorrow, your client will ask you something that you can only do with Office 365 or Azure (Power BI, Exchange Online, dev environnements in Azure…)
– It’s the future !

We can conclude by saying the new model is really owned by PnP which regroup all ressources a SharePoint Developer will need. All of the front office stuff are regroup in the SharePoint Framework and PowerApps. The whole intelligence will be shared between Azure Logic Apps and APIs. APIs can already exists (like Power BI API for example), or you can develop some APIs for specific needs.