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.

Modern SharePoint lists with flow

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.

In today’s cloud-connected, multi-device world, apps need to be able to run anywhere, and connect to anything. SharePoint now has Mobile Apps on iPhone and Android. Systems that make use of cameras, geo-location and RFID are commonplace. Developers are using new tools based around client-side, JavaScript technologies to give end-users fast, responsive, accessible solutions that work anywhere.

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.PowerApps

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.

The second potential gotcha is common to many ‘point and click’ tools. While they are good for getting up and running quickly, you can run out of scope to do what you need. This is particularly the case with the UX elements. There is no ability to add you own JavaScript, HTML or CSS, and so you have to work with the controls and layouts that come in the box. For complex user interfaces, this can be too restrictive.

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 Store

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.

Building user interfaces that require an iFrame is still clunky, though. Modern web development has moved on a lot in the last few years, and JavaScript now rules the roost.

Front-End Customisation using JavaScript

The vast majority of modern web applications are predominantly JavaScript based. If you use Hotmail, Gmail, Facebook or LinkedIn, you are using an application written in JavaScript. There are many tools available for make the coding of JavaScript similar to any modern programming language, and making it possible for developers to create responsive, cross-browser, cross-device, accessible products.

For SharePoint 2010, Microsoft released a “JSOM Client Side Object Model”. This gives JavaScript access to lists and libraries from the client-side, i.e. from code running in the browser. With SharePoint 2013 came JSLink, combining JavaScript, HTML and CSS elements to customise the look of SharePoint list views and forms.

Developers could now write attractive, feature-rich, JavaScript-based utilities that interact with data stored in lists and libraries.

The simplest way to deploy these is to create the HTML, CSS and Javascript code that is needed, and store these in files in a document library such as Site Assets. A Content Editor Web Part can then be configured to load these files and run the code on the page.

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.
  • JavaScript – Nice, but won’t work with Modern Experience.

Early in 2017, Microsoft released the SharePoint Framework for general availability.

The SharePoint Framework is a ‘page and web part model’ that gives developers the ability to create new SharePoint pages and web parts using any of the modern JavaScript frameworks such as React or Angular. These tools greatly simplify the code needed to create attractive and highly functional pages – binding data to lists and creating interactive forms and reports. To illustrate what the SharePoint Framework (SPFx) can do – it was this framework that was used by Microsoft to build the New SharePoint Experience.

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.

SPFx solutions code can be hosted anywhere – in SharePoint, or elsewhere in the cloud. Because they use standard JavaScript code, they can interact with other cloud services, or pull in data from other databases that you run.

SharePoint Framework

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.

Happily, that’s all fine….! SharePoint Add-Ins are still available as a way to run code server-side, with its own permissions. Using the Add-In model, you can create Restful APIs (~web services) that you can call from the JavaScript to do the stuff you can’t do on the client, and all of this code is hidden from the end-user.

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.

Conclusion

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.