ITHit/WebDAVServerSamples
WebDAV, CalDAV & CardDAV server examples in C# and VB based on IT Hit WebDAV Server Engine for .NET
<ul> <li>WebDAV Ajax Library release version is now referenced by samples and code generated by VS Wizards.</li> <li>"Download Drive" button now displays description how to deploy the product in test mode and release mode.</li> <li>WebDAV Drive is now build and deployed on first project launch.</li> <li>All vulnerability warnings that appeared in v15 Beta releases resolved. App referenced packages in samples and code generated by WebDAV Wizards for Visual Studio upgraded to the latest versions.</li> <li>JavaScript dependencies updated to the latest versions.</li> <li>All WebDAV Server wizards now support .NET 9.0 and .NET 8.0 only.</li> <li>WebDAV Integrated Wizard for Visual Studio minor interface fixes.</li> </ul>
<ul> <li>Context Menu Wizard for Visual Studio updated and fixed.</li> <li>WebDAV sever sample projects references updated.</li> <li>All projects generated by WebDAV Integrated Wizard for Visual Studio now read license from a file located in solution root.</li> </ul>
<ul> <li>Add Context Menu Wizard for Visual Studio provided for WinUI 3 projects. Now you can add Windows Explorer menu using wizard started from VS context menu.</li> <li>Add Custom Column Wizard for Visual Studio provided for WinUI 3 projects. Now you can add Windows Explorer custom columns using wizard started from VS context menu.</li> </ul>
<ul> <li>Google Identity Platform is now supported by WebDAV Integrated wizard. You can now generate projects with OAuth 2 that use Google accounts to log-in.</li> <li>Windows authentication options added to WebDAV Integrated wizard. You can now authenticate using Kerberos and NTLM authentication against domain accounts.</li> <li>Legacy authentication options added to WebDAV Integrated wizard. You can now generate projects with Basic, Digest, NTLM.</li> </ul>
<ul> <li>Microsoft Identity platform is now supported by WebDAV Integrated wizard. You can add Entra ID (Azure AD) authentication to the project after code generation.</li> <li>WebDAV Drive client configuration dialog added in WebDAV Integrated Wizard for Visual Studio.</li> <li>Projects generated by WebDAV Integrated Wizard for Visual Studio now reference latest User File System v9.0 Beta.</li> </ul>
<ul> <li>WebDAV Integrated wizard updated. Web UI project is generated as separate project now.</li> </ul>
<ul> <li>A new WebDAV Integrated wizard provided for Visual Studio 2022 and VS Code. The new wizard generates now generates three projects: WebDAV server project, Virtual WebDAV Drive project based on IT Hit User File System with Win UI 3 and Ajax UI project.</li> </ul>
<ul> <li>WebDAV wizard for Visual Studio now supports .NET 9.</li> <li>WebDAV Server Samples now run on .NET 9.</li> <li>Default handler page updated. Paging is replaced with infinity scroll.</li> <li>WebDAV wizard did not work with Visual Studio 17.12.2 update. Now this bug is fixed.</li> <li>Engine.CorsAllowedForList method added. Now list of CORS domains are supported with regexp.</li> <li>License verification updated to support new bundle licening.</li> </ul>
<ul> <li>Default server page updated. Now new WebDAV Ajax Library v6 Beta and WebDAV Drive app is used to open documents.</li> </ul>
<ul> <li>NPM JavaScript packages references updated.</li> <li>NuGet modules references updated.</li> </ul>
<ul> <li>WebDAVServer.FileSystemSynchronization.AspNetCore sample and code generated using WebDAV wizard for Visual Stdudio with Synchronization option enabled did not move streams with a file on Windows file system. This bug is now fixed.</li> </ul>
<ul> <li>Item ID is now long value (8 byte) in instead of 16-byte array in all synchronization collection samples.</li> <li>If file is deleted, moved or renamed the project failed to run in VS Code. Now App_Data folder is removed from project.</li> <li>resource-id header is now added to PUT response headers in sample code and code generated by Visual Studio WebDAV wizard.</li> <li>"Object reference not set" exception is thrown when sync id was not found during files and folders delete operations in collection synchronization sample WebDAVServer.FileSystemSynchronization.AspNetCore and code generated by Visual Studio wizard with file system back-end.</li> <li>Collection synchronization sample now return metadata-Etag property for each item, indicating if file metadata has changed.</li> <li>React UI front-end flicker on refresh or any notifications from server. This bug is now fixed.</li> </ul>
<ul> <li>WebDAV Server wizard for Visual Studio Code is provided.</li> <li>Alternative Data Streams / extended attributes sample classes refactored.</li> <li>In WebDAV server samples with file system back-end, if 0-length file upload overwrite existing file, the file modified date did not update. This bug is now fixed.</li> </ul>
<ul> <li>.NET 8 is now supported by WebDAV wizard for Visual Studio.</li> <li>All WebDAV server samples now run on .NET 8.</li> <li>NPM and NuGet references updated.</li> </ul>
<ul> <li>NullReferenceExceprion was thrown in WebDAV Server samples with MS SQL back-end during lock discovery. This bug is now fixed.</li> <li>ETag was not returned for newly created files in WebDAV Server Samples with MS SQL back-end. This bug is now fixed.</li> <li>Synchronization collection sample and code generated by wizard did not delete files correctly. This bug is now fixed.</li> </ul>
<ul> <li>The content-length of a file is now reported as zero while file is being uploaded in WebDAV server samples with file system back-end. Otherwise client application may try to download a file while upload is in progress.</li> </ul>
<ul> <li>MimeType class did not return content-type for some types of images. This bug is now fixed.</li> <li>Web Sockets did not reconnect in VUE UI. Now Web Sockets reconnect automatically.</li> </ul>
<ul> <li>deep paramater did not work for ISynchronizationCollection.GetChangesAsync(). Now this bug is fixed.</li> <li>IChanges interface is replaced by DavChanges class.</li> <li>Sample implementation of ISynchronizationCollection.GetChangesAsync() method refactored.</li> <li>Resizing of UI in WebDAV wizards for Visual Studio dialogs broke layout. Now this bug is fixed.</li> <li>Dependencies fixed in React sample code. React sample code refactored.</li> <li>Dependencies fixed in VUE sample code.</li> <li>WebDAV server samples and code generated by WebDAV wizards for Visual Studio that use Bootstrap migrated to Bootstrap 5.</li> </ul>
<ul> <li>In WebDAV Server samples with file system back-end if GetChangesAsync() received 0 in limit parameter, the sync-token were not returned. Now sync-token is properly returns if 0 is passed in limit parameter. No changes are returned in this case.</li> </ul>
<ul> <li>Sync-token was modified to be passed as URI. Now sync-token is passed as a string returned from GetChangesAsync() method without changes.</li> </ul>
<ul> <li>After calling IFolder.CreateFileAsync() method, the Engine reads newly created file ID by calling IBind.Id property. If IBind is implemented on file, the ID is returned in resource-id property.</li> <li>IFolder.CreateFolderAsync() method now returns IFolder interface. If the folder implements IBind, the ID of the newly created folder is returned to the client.</li> <li>UI of WebDAV wizards for Visual Studio updated.</li> </ul>
<ul> <li>Sample implementation of ISynchronizationCollection.GetChangesAsync() method performance improved in WebDAV server samples with file system back-end.</li> <li>ReactJS and VUE front end UI flickered on every item refresh. This bug is now fixed.</li> <li>Set License dialog updated in WebDAV wizards for Visual Studio.</li> <li>Upgrading to the latest ReactJS and VUE broke project dependencies causing build failure. ReactJS and VUE versions are now tired to the sample version.</li> </ul>
<ul> <li>WebDAV Wizard UI updated and refactored.</li> <li>Client build script is now cross platform. Build moved from .bat to JavaScript.</li> <li>Deleted item in the synchronization list now contains resource-id.</li> <li>Lock icon did not update in case of react.js and Vue.js UI. This bug is now fixed.</li> </ul>
<ul> <li>New WebDAV server sample is provided with file system back end and synchronization support. Now this sample can be used together with a new WebDAV Drive for macOS sample provided with IT Hit User File System.</li> <li>resource-id property and parent-resource-id are now supported.</li> <li>WebDAV wizards for Visual Studio updated.</li> <li>WebDAV wizard failed if the generated sample code is located on a drive which is different from the Visual Studio installation drive with following error: "Looks up a localized string similar to Project was generated successfully, however IT Hit WebDAV Ajax Library failed to download from NPM". Now this bug is fixed.</li> <li>X-Engine header is now added only in debug mode and in case of a trial license. The header is not added for non-trial license in the release mode.</li> </ul>
<ul> <li>Collection Synchronization protocol is now supported. All changes can now be requested by sending last sync ID to the server. ISynchronizationCollection.GetChangesAsync() method is implemented in WebDAV server file system sample.</li> <li>ReactJS is now a default option in WebDAV Server wizards.</li> <li>Default handler page JavaScript fixed for vuejs and reactjs.</li> </ul>
<ul> <li>Client UI demo page now can be generated in React.js, VUE or JQuery. Visual Studio WebDAV Wizard step added.</li> <li>"Async" is removed from all interface names.</li> <li>IFolder.CreateFileAsync() method now provides stream and mime-type parameter. IFile.WriteAsync() is not called anymore after IFolder.CreateFileAsync() call if entire file content is passed. The file should be created and content is written in CreateFileAsync() method.</li> <li>Upload of files >30Mb via Microsoft mini-redirector with Digest auth failed if the sample WebDAV server was hosted in Kestrel. Now workaround in sample Digest middleware is provided.</li> <li>Now the sample servers implementation filters web socket events by client instance ID. Events are not sent back to the WebDAV client that initiated the update/move/delete/lock/unlock operation. The client instance ID is provided by the IT Hit User File System WebDAV Drive sample in InstanceID header when connecting web sockets and sending requests to the server.</li> <li>Now the sample web sockets implementation sends events only for the root folder in case of a move and delete. Events for subfolders and files under the root folder are not being sent.</li> <li>Web sockets did not encode item name in ItemPath field during files/folders creation. This bug is now fixed.</li> <li>Reference to Microsoft.AspNetCore.Http.Abstractions is updated.</li> </ul>
<ul> <li>In case any error occurred during OPTIONS or HEAD request processing and the Engine is running on Microsoft-HTTPAPI/2.0 the response body was returned. Now OPTIONS and HEAD responses does not have body on Microsoft-HTTPAPI/2.0.</li> <li>If LogFlagsEnum.LogGetResponseBody is set to true, HEAD request returned 'Content-Legth: 0' for files of non-zero length. Now, this bug is fixed.</li> </ul>
