What's New in Engine v8 Beta 2
ItemsChanged Event
The Engine v8.0 and later provides a post-processing event that that is fired on every item creation, update, delete and move operations. You an use this event to:
The ItemsChanged event provides a list of items that are being created/updated/deleted or moved, the direction of the synchronization, which can be incoming or outgoing sync and the detailed result of the operation.
See how you can use this event in the Engine ItemsChanged Event article.
Managing Custom Properties
The new version provides access to custom properties in each IFile and IFolder interface method via the Properties property of the IOperationContext parameter. Combined with ItemsChanged event, fired on every item change event, the new version provides an updated mechanism to save and read custom data received from your remote storage.
Find more in the Managing Custom Properties article.
Detecting Changes Using Content and Metadata eTags
The Engine v8.1 Beta provides a new built-in mechanism for detecting changes using content and metadata eTags. Now you can update content and metadata separately by setting IFileSystemItemMetadata.MetadataETag and IFileMetadata.ContentETag properties. See the Detecting Content and Metadata Changes article for detailed description.
Microsoft Office Merging
With a new version of the User File System you can open Microsoft Office document on more than one machine, receive notifications about changes and merge open documents. The ItemsChanged event is fired on unsuccessful file update with FileInUse status providing a new version of the document that you can merge with Microsoft Word or PowerPoint document open by the user.
See the Microsoft Office Documents Merging article for more details.
Pooling Synchronization
The Engine v8.1 provides an out-of-the-box incoming pooling synchronization, in addition to Sync ID sync provided in previous versions. The pooling synchronization traverses client file system, lists each folder content by calling IFolder.GetChildrenAsync(), compares folder content and than creates, updates and deletes items. The Engine will use IFileSystemItemMetadata.MetadataETag and IFileMetadata.ContentETag properties to detect if each item was modified. See how eTags are used to detect changes in this article.
In case you have CRUDE Incoming Synchronization, you will run pooling synchronization manually, by calling the Engine.SyncService.IncomingPooling.ProcessAsync() method, after Engine start or web sockets reconnection.
In case you do not have any notifications from server about item changes, you will run it automatically, on timer, by setting the SyncService.IncomingSyncMode:
Engine.SyncService.IncomingSyncMode = IncomingSyncMode.TimerPooling; // Set sync interval for both incoming and outgoing sync. Engine.SyncService.SyncIntervalMs = Settings.SyncIntervalMs;
See the article about synchronization modes here: Incoming Synchronization Modes.