The Future for SharePoint Development
Office 365 has made SharePoint simpler to install, simpler to manage and simpler to use. Under the direction of Microsoft CEO Satya Nadella, the focus of new innovation has been on lightweight, easy to use Apps. Planner, StaffHub, ToDo and Teams are all designed to be out of the box, zero training tools to help organisations become more efficient.This ‘simple and lightweight’ principal has also been applied to SharePoint. Since its release in 2001, it’s fair to say that SharePoint has been very ‘Marmite’. Acknowledged as being a powerful tool for organising information and managing business processes, it has never been loved by end users due to its clunky interface.Last year saw the release of SharePoint 2016, and with it, the ‘Modern Experience’. This takes the core SharePoint functionality – pages, lists, libraries – and re-skins them to give a more intuitive and modern interface. Common tasks, such as copying documents, are easier to achieve. And the underlying system that drives this has been brought up to date to reflect current trends in software engineering.
So far, so good…The problem with the new SharePoint experience is that it was released before all of the features had been completed – a touch of cart before horse. Companies had begun to embrace SharePoint Online because it was readily available and becoming integrated with Outlook, OneDrive and Yammer. Suddenly there was confusion, with 2 interfaces, and no clear way to customise and extend the new one.This has left people in limbo – do we keep developing on the Classic Experience using the older (but mature) technologies? Do we develop using current technologies on the new system? Or do we hold fire until a clearer picture emerges?Hopefully this article can provide some clarity as to what direction to follow.
The current landscapeAs always, there are different solutions for different problems. Previously, if you wanted to create some business processes on SharePoint, you would either:
- Use SharePoint Designer to create some workflows and forms;
- Use InfoPath to create more interactive form-based solutions, with Workflows giving you business logic;
- Fire up Visual Studio and C# to write full-blown applications that run on your server.
PowerApps and FlowThese are the no-code, business friendly, modern alternatives to Microsoft InfoPath and SharePoint Workflows.PowerApps is a Form Builder tool designed for modern devices. Without having to write any code, you can quickly create a PowerApp that will interact with a SharePoint List (or other data). Once created, you customise the App using drag-and-drop controls, changing the order of fields, adding validation and rules. To do more complex tasks, you can create a ‘Formula’ or connect to server code by building a Custom Connector.Flow is an engine that can perform tasks in the background as the user interacts with the PowerApp. It is designed to connect together any number of cloud systems – SharePoint, Dynamics, DropBox, MailChimp, Twillio, Twitter… And these tasks can be strung together using a flowchart-based designer. This is where you can instruct the App, when a user adds a new item to a list, to email the user’s manager, create a new lead in Dynamics, and add a record to MailChimp.Just like SharePoint 2013 Workflows, Flow allows you to create reasonably complex process, inlcuding loops and ‘if – then – else‘ statements. It can be attached to a list or library in SharePoint, or just run as part of the PowerApp.Flows and PowerApps can be saved as packages and version controlled.
SharePoint Add-Ins (aka SharePoint Apps)When SharePoint moved online, Microsoft needed to find a way to allow people to run server-side code that wasn’t going to bring down their hosting service. Previously, developers had been able to install code to run on the servers in a ‘sandbox’ – i.e. in its own process so that, theoretically, it wouldn’t break anything else on the server. However, allowing people run any sort of bespoke code on Microsoft’s SharePoint servers was never going to be allowed for very long.SharePoint Apps, which were subsequently renamed SharePoint Add-Ins, were the solution to this. SharePoint Add-Ins are self contained applications that can be hosted anywhere. They communicate with your SharePoint Tenancy using one of a number of SharePoint APIs that Microsoft have made available. They can make use of SharePoint functionality, such as lists, libraries, pages, workflows and Web Parts.Because they are typically created using Visual Studio, they can be packaged up and redistributed to many SharePoint tenants/installs. They can also be placed on the SharePoint Store for people to purchase and download.SharePoint Add-Ins are Self Contained. To run them in your SharePoint site, you have three options:
- Run them as full page applications – this means navigating out of your SharePoint Site into a new site.
- Run them in your SharePoint page as an Add-In Part. This adds an iFrame to your page and runs the app in there.
- As a custom UI action – add a menu item to kick of a process in the background.
The SharePoint Framework – The Answer?So far we have considered:
- PowerApps – Responsive, integrated with Modern Experience, but limited and potentially costly.
- Sharepoint Add-Ins – Powerful, server-side code, but needs to run separately.