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.
Part of the problem has undoubtedly been poor implementation and even worse end user training. We once came to the rescue of an organisation that had invested £120,000 in licences and hardware, and purchased just 2 days of consultancy to help configure the system.
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 landscape
As 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.
With SharePoint 2016 and SharePoint online, these approaches all begin to look outdated.
Microsoft have been embracing this new world, and the road-map is now taking shape with some really exciting options.
PowerApps and Flow
These 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.
Things to watch out for with PowerApps and Flow
There are licensing (i.e. cost) implications for Flow and PowerApps. Although the basic versions of these tools are included with most Office 365 plans, and these versions are pretty good, more advanced features require an additional subscription which currently costs £4.40 per month, plus a £30.20 per month subscription for ‘App Makers’.
Advanced features encompass creating your own data connectors to use more complex data, and access to the ‘Premium Connectors’. These include MailChimp, SalesForce, DocuSign, MySQL, Oracle, SurveyMonkey amongst others.
This still leaves you a lot to play with, and certainly for creating Office 365 or SharePoint Apps that work with current data to give your users a better experience, you have a lot of scope. If you want to create enterprise grade tools that interact with real databases, you may find yourself with more licenses to buy.
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.
This works OK, but if you want to create some nice front-end functionality within your SharePoint site, it doesn’t really fit the bill. iFrames are not responsive, and there is no way to interact with other elements on the page or create nice popups. Many organisations won’t allow iFrames for security reasons.
SharePoint Add-Ins originally couldn’t be run in Modern Pages. However, a 2017 update has enabled this functionality.
That’s great for classic SharePoint, and allows some really nice functionality to be built, but unfortunately, the Modern Experience doesn’t allow this type of customisation.
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.
Early in 2017, Microsoft released the SharePoint Framework for general availability.
And the great thing about building web parts using the SPFx is that they can run in SharePoint Classic as well as Modern.
Security is always a concern when running businesses applications. Whereas SharePoint Add-Ins run on the server, using the same privileges regardless of which user is logged on, client-side code runs under the same privileges as the current user. The code won’t, therefore, be able to access anything that the current user wouldn’t normally have access to.
With the SharePoint Framework, we have the ability to create great looking SharePoint systems that run on any device, and connect these systems to other tools that your company uses.
So, what’s the downside?
Sometimes you want to save data to or query data from somewhere that a user doesn’t normally have access to. Also, JavaScipt isn’t great for running long and complex business logic – for example, stepping through every item in a large list to check and update the status. And thirdly, you might not want to give all of your hard-written code to your customers to download.
This gives a highly functional hybrid solution with all of the advantages of modern browser-based applications, while still being able to get the power of server-side code when needed. And because Microsoft are using it themselves to create features, it looks like it will be supported well into the future.
Its still early days with this new technology. However, there is now a clear vision from Microsoft of how developers can extend not only SharePoint, but Office 365 in general. The Office Graph makes Mail, Calendar, Contacts, Documents and more available to developers; Flow Connectors can quickly connect you to other Cloud Services; PowerApps can quickly produce interactive forms for any device; and the SharePoint Framework gives a modern development environment for building proper business tools.
The tools are maturing quickly, and the developer community is growing. Microsoft has been in a rush to release these modern frameworks, but the substance is now following, and SharePoint Online will rapidly become a natural home for high quality business applications.
If you would like to discuss how AMT Evolve can help you with building high quality business applications on Microsoft Technologies, call 02393 872560 and ask to talk to James or Paddy.