Planned Improvements

Jul 26, 2008 at 10:20 AM
Edited Aug 9, 2008 at 10:02 AM
The current source is rather bare boned.
It does the job that it is intended to do but is missing a few features from the utility that inspired it:
  • Addition xslt functions:
    • convert a string to PascalCase from camelCase  [Made it into 1.0]
    • convert a string to upper case [Made it into 1.0]
    • convert a string to lower case [Made it into 1.0]
  • Produce a log of changed files []
  • Batch mode, where a set of transforms may be run with a single invocation of the utility (eliminates startup overhead which can be significant).
  • Permit version control headers to be preserved across a transform.
I intend to add each of these to the product, but using a cleaner implementation than before.

I have had some further ideas for improvements:
  • xslt function that can include a named block of text from the app.config file.  This would permit the templates to emit a consistent header block explaining the source of the data file. [Made it into 1.0]
  • xslt function that can create and insert a guid. []
  • xslt function that can create and insert a guid, but will associate a name with the guid. If the same name is asked for then the same guid would be returned. This would permit a single transform (or batch of transforms) to create and populate a document with the same guid in multiple locations. []
  • xslt function that can insert the date and time. []
  • Preprocessor function that will extract a value from a multiple line regular expression run on the old file and store it in a named variable.
  • Perform checks on the input model and xslt files and report useful errors. []
  • Ensure that the product also works under Mono. []
  • Provide a test suite
Jul 26, 2008 at 7:22 PM
Implemented the first three utility functions.
Jul 27, 2008 at 9:15 PM
Named block of text has been implemented in the initial version.

The new xslt functions look to be trivial to implement (maybe tomorrow)

Batch mode should be quick to implement.

Logging should also be easy to do (now that I have the config file under control).
Jul 28, 2008 at 6:08 AM
Edited Jul 29, 2008 at 9:09 PM
Add a function to give the filename of the generated file. []

Add a function to tell if the file is new. []