This issue serves as a document on the proposals and requirements for the next rewrite of the FileSieve software, should it happen.
Update: It's unlikely to happen; I've got an actual, proper adult job now so my projects have become very low priority as I was barely making any income from them. I'll just be writing "me-ware" from now on.
High-Level Overview
Open source?
Technology
FileSieve 5.00 will be written on ~.NET 5~ .NET 7, which is the next major version of the .NET 4.8 Framework that the current 4.xx series is written on. ~One of the big features is that FileSieve will be able to run on Mac and Linux, as well as Windows.~
~While 5.00 should be able to run on mobile devices, it generally won't be a consideration during its development as it is ill-suited for such a platform.~
Fewer - or no - modal dialogs. All dialogs should work concurrently with others and dynamically update when something related changes.
The Methods/Modifiers window should have a search facility to help find the appropriate Method/Modifier for what the user is trying to accomplish. Detailed descriptions of what each does should also be present; this was going to be in v4.xx but didn't seem to make it.
Backend
General
Intelligent multithreaded I/O; only runs one thread-per-physical drive but multiple threads on fast media. Configurable.
Full transaction log so profile runs can be inspected, and even reverted.
It's possible that a Windows batch file (.bat) could be created from the log and run without having to have FileSieve.
True file mirroring so copy modes other than Copy is supported.
Plugins
In opposition to the methodology of having one Method/Modifier per plugin, 5.00 would have a single plugin for all Methods and another plugin for all Modifiers. This would reduce the start-up time and provide protection against data loss for plugins that were removed when FileSieve (4.xx) was then subsequently run due to deserialisation type resolution failure. Build time should also be greatly improved as it has become somewhat annoying as Visual Studio seems to waste time on projects that don't actually need rebuilding.
Include an empty but commented project template with FileSieve that could be loaded by the user in an IDE so they can immediately start writing their own fully-featured Method/Modifier if they would like more flexibility/customisation than the Scripting system allows (eg. full settings editor).
Scripting
Potentially have all Methods/Modifiers created as scripts that can be inspected, modified, and submitted by users.
The main issue here is providing a GUI to the user of a script so they can edit its settings; in 4.xx, UIs are created via the Windows Forms Designer in Visual Studio. It's possible this can be gotten around by using a Property Grid like in 3.xx, but it's a pretty large regression in terms of flexibility and user-friendliness. Scripts would also then potentially contain a large amount of UI code.
A hybrid approach could be used in that Methods/Modifiers are written normally, but the actual code contained within the IPlugin interface members could be passed out to the script equivalents instead. The downside with this approach is that programming experience is required for scaffolding, etc.
Maybe add an additional generic Method/Modifier that allows the selection of a script to run, but settings would be limited to the PropertyGrid approach in this particular case.
A "gallery" of scripts could be available to download directly from within FileSieve.
Flexibility
Allow Methods to feed into other Methods?
Add an equivalent of a Modifier that runs as a stage directly before a Method.
Entirely decouple processing from the UI so multiple Profiles can be run at the same time, and even headless.
This issue serves as a document on the proposals and requirements for the next rewrite of the FileSieve software, should it happen.
Update: It's unlikely to happen; I've got an actual, proper adult job now so my projects have become very low priority as I was barely making any income from them. I'll just be writing "me-ware" from now on.
High-Level Overview
Open source?
Technology
Frontend
General
Backend
General
.bat
) could be created from the log and run without having to have FileSieve.Plugins
Scripting
IPlugin
interface members could be passed out to the script equivalents instead. The downside with this approach is that programming experience is required for scaffolding, etc.PropertyGrid
approach in this particular case.Flexibility
Integrity
Miscellaneous