Declined
Last Updated: 09 Feb 2023 14:30 by ADMIN
Elliot
Created on: 04 Feb 2023 11:17
Category: UI for WinForms
Type: Feature Request
0
Real-time collaboration

Background: With many people having moved to working remotely, collaboration is a much larger part of any enterprise applications. As such, it would be highly beneficial to add real time collaboration capabilities to editor controls, more specifically the RadRichTextEditor control. It would work similarly to how MS Word works when more than one user is editing a document at the same time.

Scenario: Assume you have and WinForms application where there is a form that contains a RadRichTextEditor. The content for this control is populated from a centralized database. This content is editable by users of the application. Lets say that you have two users (User A and User B) editing this content at the same time. Currently, User A cannot see what User B is doing in real-time, and vice-versa. Each time one of the users saves the content, it will overwrite any changes made by the other user.

Desired outcome: If the users in the above scenario are using MS Word, each user would see that someone else is currently editing the document and the other user's changes would be displayed in real-time. This same outcome should be made more readily available with the Telerik editors, primarily the RadRichTextEditor, so that when two users are editing the same content, they would see each others' changes in real-time.

I know this is possible using SignalR and a bit of code, but I think it would be beneficial for the RadRichTextEditor to have better "out of the box" support for this feature.

I am aware of a web-based control that has this feature. Specifically, the CKEditor (https://ckeditor.com/) control has the features I am requesting. However, I am looking at WinForms as opposed to web.

1 comment
ADMIN
Dess | Tech Support Engineer, Principal
Posted on: 09 Feb 2023 14:30
Hello, Elliot,

It is important to note that MS Word is a complete end-user application which provides a variety of features for text/document editing. However, I would like to note that RadRichTextEditor is simply a UI control and it is not expected to provide all the functionalities that are described out of the box. It is a subject of application specific development and it is up to the developer to integrate such functionality in the application. It is not expected to be provided by the UI control out of the box.

The possible approach that I would suggest is to use a timer with the desired interval and check for content changes in the database. If the content that is stored in the database is different than the one inside the control, it is necessary to import it in RadRichTextEditor. Once the user is done with editing the document, the changes should be stored back to the database. For this purpose, RadRichTextEditor offers export functionality. Additional information about import/export features is available in the online documentation:
https://docs.telerik.com/devtools/winforms/controls/richtexteditor/import-export/overview 

Once you have the document, you can save it to the database. After some research in general programming forums on this topic, I have found the following useful threads:
https://stackoverflow.com/questions/2579373/saving-any-file-to-in-the-database-just-convert-it-to-a-byte-array   
https://www.codeproject.com/Questions/5275810/How-to-save-data-in-database-Csharp-winform 

I hope this information helps.

Regards,
Dess | Tech Support Engineer, Principal
Progress Telerik

Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.