Upgrading to WebDAV Server Engine .NET v9

The v9 Engine is redesigned to provide G Suite editing capabilities as well as to achieve integration of WebDAV and G Suite features. After upgrading to v9 you can add G Suite editing without significant programming efforts or reprogramming your existing WebDAV implementation.

What Has Changed in v9

v9 Engine interfaces are redesigned to provide common base for building WebDAV and G Suite editing. The new namespace, provided in v9 - ITHit.Server contains interfaces and classes that are common for WebDAV and G Suite Editing, can be found in ITHit.Server module on NuGet. The interfaces specific to G Suite editing are provided in ITHit.GSuite.Server namespace located in ITHit.GSuite.Server module on NuGet

 V3-v8 EntityCorresponding V9 Entity
Class - EngineAsync<THierarchyItem> - provides functionality, common for WebDAV Engine and G Suite Engine.
Class ContextBaseAsync<THierarchyItemAsync> - base context class for WebDAV and G Suite contexts.
Class GSuiteEngineAsync - Provides editing in Google G Suite online.
Class DavRequest Replaced with ITHit.Server.RequestAsync
Class DavResponse Replaced with ITHit.Server.ResponseAsync
Property DavRequest.ClientLockTokens Replaced with GetClientLockTokens() extension method for RequestAsync class. Located in ITHit.WebDAV.Server.Class2 namespace.
Interface ILogger Moved to ITHit.Server
Class DavEngineAsync Now inherit from EngineAsync<IHierarchyItemAsync>
Interface IHierarchyItemAsync Now inherit from IHierarchyItemBaseAsync 

Upgrading Your Server Code

To upgrade your existing WebDAV implementation to v9 follow these steps:

  1. Update your WebDAV.Server.Engine reference. Typically you will download the latest build from NuGet. Otherwise, in case you are adding a reference to your project from the file system, make sure to add the new ITHit.Server.dll module reference.
  2. Replace DavRequest.ClientLockTokens property call with GetClientLockTokens() extension method, located in DavRequestExtensions class in ITHit.WebDAV.Server.Class2 namespace:
    IList<string> clientLockTokens = context.Request.GetClientLockTokens();
  3. Add 'using' directive to all files where ILogger interface is used:
    using ITHit.Server;
     such as DavEngineMiddleware.cs/vbDavEngineCore.cs/vbDavContext.cs/vb, etc.