IT Hit User File System for .NET Release History
v3.2.8936.0July 16, 2021
- Some applications, such as Notpad++, remove the Offline attribute when saving a document, converting a placeholder to a regular file. In Virtual Drive sample the Attributes filter is added to the MsOfficeDocsMonitor class to monitor Changed event and convert the file back to the placeholder.
- If exception occurred during sample start-up the exception did not log. Now all exceptions that occurred during app start-up are logged.
v3.2.8901.0June 30, 2021
- msix packaging is now supported. The packaging project is added to the Virtual Dive sample.
- The thumbnails provider in the Virtual Drive sample now runs as a surrogate COM and can be installed/removed without admin privileges as part of the packaged installation. The thumbnails handler can now be debugged running the project directly from Visual Studio.
- Virtual File System sample refactored. The file/folder ID is now used to link user file system file with remote storage. Mapping.MapPath() function is removed from the sample project.
- targetParentItemId parameter, representing a new parent folder ID, added to IFileSystemItem.MoveToAsync() method.
- Item ID is now returned by the IFolder.CreateFileAsync() and IFolder.CreateFolderAsync() methods.
- Placeholder creation performance improved.
- Selecting "Always keep on this devise" on a folder that was never enumerated does not load file content. Now, this bug is fixed.
Virtual File System for macOS sample refactored.
v3.1.7115.0 BetaJune 9, 2021
- Item ID support provided. The IEngine.GetFileSystemItemAsync() method now has an itemId parameter. IFileSystemItemMetadata.ItemId property added. PlaceholderItem.GetItemId() method added. The IFolder.CreateFileAsync() and IFolder.CreateFolderAsync() methods now return item ID.
- PlaceholderItem.SetItemInfo() method renamed to PlaceholderItem.SetMetadata().
- The CustomDataManager calss in sample code renamed to ExternalDataManager to avoid confusion with IFileSystemItemMetadata.CustomData/PlaceholderItem.GetCustomData().
v3.0.7021.0 BetaJune 2, 2021
- Thumbnails implementation is provided in the Virtual Drive sample. The Virtual Drive can now read thumbnails from the remote storage and display them in Windows Explorer in thumbnail mode.
- FileSystemItemMetadata.CustomData property getter returned incorrect data. Now, this bug is fixed.
v3.0.6973.0 BetaMay 26, 2021
- Virtual File System sample for macOS now supports all file management functionality: remote storage to user file system sync, user file system to remote storage sync, files creation, hydration/dehydration, deletion, copy, move, etc.
- Virtual File System sample for Windows refactored and simplified to provide only minimum code required to create a file system with synchronization, on-demand loading, hydration/dehydration.
- Virtual Drive sample is provided with advanced functionality: Microsoft Office files editing, automatic Microsoft Office documents locking, custom columns/states in Windows File Manger.
- Virtual File System sample performance improved. The sample folder listing is tested with up to 35K files in a single folder. File hydration is tested up to 30GB per file.
- New locking interfaces are provided. ILock interface is provided in ITHit.FileSystem.Windows module. EngineWindows.AutoLock property is provided to enable automatic Microsoft Office documents locking.
- IEngine.FilterAsync() method is provided to avoid synchronization of specified files (typically Microsoft Office temp files) to the remote storage and back.
- Rename and delete operations can now automatically confirm the operation if no exception is thrown inside the method implementation or reject operation in case of exception.
- The IEngine.GetFileSystemItemAsync() method now provides FileSystemItemType parameter, indicating if a file or a folder is requested.
- EngineWindows class now processes hydration/dehydration as well as files and folder creation. No need to create a separate file system monitoring thread.
- PlaceholderItem class now provides HydrationRequired() and DehydrationRequired() methods.
- EngineWindows now provides the public StopAsync() method.
- IFile & IFolder now provides WriteAsync() method.
- IFolder now provides CreateFileAsync() and CreateFolderAsync() methods.
- IFile.TransferDataAsync() method is replaced by IFile.ReadAsync() with a stream parameter.
- IClientNotifications and IClientNotificationsWindows interfaces as well as EngineWindows.ClientNotifications() method is provided. To be called if the file system was not running to process operations and sent to remote storage.
- IServerNotifications interface and IEngine.ServerNotifications() method is provided for notifying the user file system about changes in the remote storage.
- If custom data is not specified in FileSystemItemMetadata.CustomData when creating a placeholder, the Win32Exception is thrown "Cloud Operation is invalid". Now, this bug is fixed.
- Custom columns data was erased when setting the file icon. Now custom data is stored in the external file in the data folder, separately for each file. Custom columns implementation is moved to a new Virtual Drive sample.
- Files and folders are now only marked as modified when file content is modified or the folder is moved. The StorageProviderSyncRootInfo.InSyncPolicy is now set to StorageProviderInSyncPolicy.Default in Registrar class in samples.
- New files are now converted to a placeholder only after successful file upload in the sample code.
- File comparison changed in Virtual Drive and User File System samples. Instead of ETag-LastModifiedDate now file hashes are computed.
v2.5.5091.0April 27, 2021
- Virtual File System Sample for Mac Alpha sample now supports download and upload the file content as well as move/rename and delete for files and folders.
- Incorrect references in sample projects for Windows to ITHit.FileSystem.dll and ITHit.FileSystem.Windows.dll. Now references are properly set to the NuGet repository.
- Samples solution for Windows does not include the ITHit.FileSystem.Samples.Common.Windows project. Now this project is included in samples solution.
- The Virtual File System sample for Windows included the unused source files in the "\Framework\" folder. Now, this folder is deleted.
- The Virtual File System sample for Windows contained the "License" configuration property in the appsettings.json file instead of the "UserFileSystemLicense". Now, this bug is fixed.
v2.5.5083.0April 22, 2021
- File hydration time significantly improved.
- Files of unlimited size are now supported.
- IVirtualLock interface is provided. Now this interface can be optionally implemented on files and folders that require locking support.
- IFileSystemItem.DeleteCompletionAsync() and IFileSystemItem.MoveToCompletionAsync() methods are provided, called when the delete or move operation is completed by the platform.
- Locking management code is refactored in samples.
- ETag management code is refactored in samples.
- ETag file did not delete after folder deletion, now this bug is fixed.
- Sample move code refactored in samples.
- "*User*" interfaces renamed to "*Virtual*" interfaces in sample code. "*BasicInfo" classes and interfaces renamed to "*Metadata".
- The installer project is provided for the WebDAVDrive sample.
- File content validation is disabled by default in samples.
- Folders with incorrect creation/modification/access date-time are created in remote storage. Now, this bug is fixed.
- MS Office documents did not unlock after editing. This bug is now fixed.
- Conflict error in Virtual File System sample. "ETags a not equal" after the file is saved a second time. This bug is now fixed.
v2.0.4465.0March 19, 2021
- ITHit.FileSystem.Mac module with User File System Engine for macOS implementation is provided.
- Virtual File System sample Alpha for macOS is provided in Xamarin. The sample implements on-demand folders listing as well as demonstrates virtual drive installation and uninstall. The sample also provides macOS status bar application (container app).
v1.4.4298.0February 24, 2021
- Challenge-response authentication (Basic, Digest, NTLM/Kerberos) is now supported in WebDAV Drive sample. The login form is provided. The credentials are securely stored in Windows Credential Manager.
- Web browser login form does not work in WebDAV Drive sample. If server replies with 302 redirect the request failed and the login form does not show. This bug is now fixed.
- WebDAV Drive sample is now using WPF for UI rendering.
v1.3.4108.0January 22, 2021
- Samples now use .NET 5.0 by default.
- The latest build of WebDAV Client Library for .NET with .NET Standard 2.0 Support is used in the WebDAV Drive sample.
v1.3.4102.0January 18, 2021
- Map Drive sample now supports Cookies authentication. The HTML log in window is rendered using Edge Chromium Canary.
- ITHit.FileSystem.Windows module now supports .NET 5.0.
v1.3.4067.0January 15, 2021
- WebDAV Drive sample added. The sample can synchronize documents from and to the WebDAV server, automatically locks/unlocks Microsoft Office documents when opened for editing, supports on-demand loading and selective offline availability. IT Hit WebDAV Client library for .NET is used to access the WebDAV server. The sample currently supports anonymous WebDAV servers only.
v1.2.3984.0December 14, 2020
- ITHit.FileSystem and ITHit.FileSystem.Windows now support .NET Standard 2.0.
- Delete and move operations triggered hydration in the Virtual File System Sample. Now, this bug is fixed.
- Memory violation excess exception was thrown in by IsPlaceholder() method in some environments. This bug is now fixed.
- Files locking on the server in the Virtual File System Sample can now be simulated with a read-only attribute set on the files in remote storage. Read-only attribute is no more used for in-sync detection in Virtual File System Sample. the StorageProviderInSyncPolicy.FileReadOnlyAttribute and StorageProviderInSyncPolicy.DirectoryReadOnlyAttribute are removed from StorageProviderSyncRootInfo.InSyncPolicy.
- Files locked by other users now show a gray lock icon in the Virtual File System Sample.
- FileSystemBasicnfo.LockedByAnotherUser property is provided in the Virtual File System Sample.
- Temporary excel files detection fixed in the Virtual File System Sample.
- Folder with ETags and locks moved from the current user temp folder to LocalApplicationData in the Virtual File System Sample.
- ETags comparison in the Virtual File System sample fixed. If both client and server ETags are null or empty they are now considered equal.
- URIs comparison in PlaceholderItem.IsMoved() extension method in the Virtual File System sample fixed is fixed. URIs with/without trailing slash are now considered equal.
v1.2.3941.0November 19, 2020
- When a new file is created in the user file system sent an update request to the remote storage calling UserFile.UpdateAsync() method instead of the new file creation. An exception is thrown when a new file is being created. Now new file detection implemented in VfsFile.CloseAsync() method, the UserFolder.CreateFileAsync() is now properly called.
v1.2.3810.0November 10, 2020
- Automatic locking is implemented in the Virtual File System sample. Microsoft Office documents are now automatically locked when opened for ending and automatically unlocked when closed. The file is also automatically locked before being sent to the remote storage and unlocked when saving is completed. The lock icon is displayed in the Windows File Manager in the Status column. The UserFileSystemItem.LockAsync(), UserFileSystemItem.UnlockAsync() methods and UserFileSystemPath.Lock property is provided.
- Excel temp files (A6TG7GPI.tmp) are now detected in the Virtual File System sample and are filtered from files being sent to remote storage.
v1.1.3573.0 BetaOctober 22, 2020
- All storage-specific operations in Virtual File System Sample are now performed in UserFileSystemItem.cs, UserFile.cs and UserFolder.cs files in sample code.
- ETag is deleted together with a file in the user file system. Now ETags are stored in external files. ETags moved/renamed or deleted when a file or folder in remote storage is moved/renamed or deleted.
- Save As in MS Office did not work. Save As in MS Office throw "ETags not equal" exception, because ETag is deleted during MS Office transactional save. Now Save As is supported in MS Office applications.
- Excel temp files synchronized to remote storage. Now excel temp files are not synchronized.
v188.8.131.5219 AlphaOctober 1, 2020
- Synchronization service from the user file system to remote storage is implemented in the Virtual File System sample.
- ETags comparison is refactored and fixed in the Virtual File System Sample. Remote storage ETag and user file system ETag are now compared during the user file system to remote storage upload operation.
- Conflicts between the user file system and the remote storage are now properly processed in the Virtual File System Sample. The conflict icon is displayed in the Windows File Manager. A ConflictException is provided by the Engine.
- If the move or rename operation was performed when the Virtual File System sample was not running, the delete-create sequence occurred in the remote storage (potentially deleting file history and attached data). Now move/rename in remote storage is performed when the app starts, during the synchronization process.
- MS Office documents saving refactored in the Virtual File System sample. ETags and all custom data on MS Office documents during MS Office transactional save are preserved now.
- MS Office lock file (~$file.docx) detection is fixed and refactored in the Virtual File System Sample.
- When a non-empty folder is deleted in the user file system in the Virtual File System sample, the respective folder deletion failed in remote storage. Now, this bug is fixed.
v184.108.40.20662 AlphaSeptember 14, 2020
- File System Engine for Windows with on-demand loading, offline files support, download, and upload progress reporting provided.
- Virtual File System Sample in C# provided. The sample simulates remote storage using a folder in the file system and synchronizes files both from the user file system to remote storage and from remote storage to the user file system.