Game Development Reference
The main goal of this framework is to promote reusability of the code that exists
in all batch file processing tools, and to ensure that this framework will be suffi-
ciently flexible for all the tools utilizing it.
The framework must be designed to work in either a console or WinForm envi-
ronment, so the code should remain in a class library and only reference the core
Strong design should be promoted through the use of solid OOP techniques.
Maintainability is extremely important in any project, so a framework with a solid
design results in better tools.
Developers must be able to quickly build tools without using a cumbersome API;
the framework should be easy to configure and execute.
A verbose mode where operation progress can be reported to the user should also
be available, keeping in mind that other tools should be able to run in silent mode
The framework must have extremely low overhead because large operations
Special situations where files are read-only should also be handled safely; the
framework should be able to ignore read-only files or force writing if configured
to do so. Configuration of the common base code is important, so other options,
such as whether or not to recursively travel down directory structures, will also be
Lastly, the framework should be able to cancel the current operation. Support that
will enable cancellation on a per-transaction basis will be integrated; that is, can-
cellation will not be supported halfway through the modification of a file, but
rather after the current operation finishes. A mechanism will be available to devel-
opers so that they can support cancellation during an operation if they wish to
worry about data integrity themselves.
In order to make a truly generic framework, we have to isolate the code that is dif-
ferent than other batch file processing tools, and build our framework around the
code that remains. The work that these utilities perform is the variant data, so a