The co-authoring feature of SharePoint/Office 2010 has put an end to disasters in terms of document versioning once and forever, but there is no similar solution for list data available yet – not even in SharePoint 2013. The system enables you and your colleagues to read list item data jointly, but when it comes to changing data, there will be a winner who can send his updates to the database and a bunch of losers who will get the popular SharePoint save conflict message:
Refreshing the page, retyping and resubmitting your work is, of course, the stuff that every information worker’s sweetest dreams are made of.
The solution for this nasty little problem is not as far away as you might think. You simply need to know which one of your colleagues is currently editing the same list item that you are working on. Then you need to know about the exact changes that he or she is making and incorporate those into your own list item update. And finally you need to tell him/her that you will send everything to the database for them. That’s all you have to do in order to avoid the save conflict. Considering an enterprise of hundreds or thousands of information workers, this sounds incredibly easy, right?
This is where SignalR enters the stage. SignalR is an ASP.NET library that supports software developers in creating real-time functionality for web applications. The preferred communication type is Web Sockets, but the library comes with a lot of fallback mechanisms that support almost all versions of legacy browsers out there. It facilitates bi-directional communication and makes it easy to intertwine clients and servers very closely. Page requests and even web service calls appear to be outdated stuff compared to the new client server communication model introduced by SignalR. Servers can push content to clients via a simple method call. The following code samples show everything that you have to code in order to set up a simple yet powerful real-time chat application with SignalR:
You will need 8 lines of code on the server side and 13 lines on the client side – comments, declarations and connection handling included – that’s everything, promise!
Ciber’s Application Development and Maintenance (ADM) experts leveraged the SignalR approach to real-time web application development to build a fully functional solution for SharePoint. It provides co-authoring and other real-time communication features like a chat and field level comments for the OOB SharePoint list item forms. The co-authoring works the same way that you are already familiar with from document collaboration in e.g. Word. You can see the people’s names, who are currently editing the same item that you are working on and you can even see them typing. This way, multiple people editing the same list item at the same time will always have the same data in their forms and save conflicts turn into a relic from the past. Besides ruling out save conflicts once and forever, the solution brings very useful real-time collaboration features to SharePoint list forms.
The following screen shows Harry Collaboration’s view of a SharePoint list item edit form, which he is currently working on collaboratively with his colleague, John Information. We won’t show John’s view here, because it looks 100% the same! Except for the username in the upper right corner, of course.
Both, Harry and John have a lock on the field that they are typing in, that is they won’t interfere with each other typing in the same field – you might know this behavior from your Word application issuing locks line by line, too. Field locks will be released as soon as the locking user clicks or tabs anywhere else in the form thus moving his focus to another element on the webpage. John and Harry are really excited about the new real-time collaboration features within their well-known SharePoint environment and can’t wait to tell their colleagues about it.
If you are interested in adding real-time communications functionality like the chat or the magnificent co-authoring feature to your SharePoint sites or any other web application (it is in no way limited to SharePoint or even .NET), get in touch with me to discuss a solution that perfectly fits your needs and your landscape.