DemiCode Scheduler 1.1.3

Release notes for version 1.1.3 including both fixes and improvements .
  • CodeTask does not dispose code
    CodeTask now properly disposes instances of types that supports the IDisposable interface.
  • ConsoleLogger dont display logger name
    ConsoleLogger now prefixes logger messages with the logger name.
  • Documentation errata
    Fixed sample in Getting Started/Creating a Scheduler programmatically.
  • More Create overloads in SchedulerFactory
    Added overloads of the Create method in SchedulerFactory that enables easier instantiation.
  • Race condition when schedules fire immediately
    Tight schedules, e.g. intervals that would trigger within milliseconds of each other, would cause the scheduler to trigger schedules several consecutive times. This is now resolved.
  • Scheduler does not dispose tasks
    For tasks that supports the IDisposable interface, Scheduler will now properly dispose these when the Scheduler instance itself is disposed.
  • Schedules with equal occurence date/time not triggered
    Schedules with equal occurrences down to the millisecond but small variations on the tick level would cause only the first schedule to be triggered.
  • Assigning Schedule Names in runtime
    When building schedules in code it is useful to be able to set the schedule name. The property is read-only since the name should not be changed after the schedule is created. To overcome this all schedule classes can now be instantiated with constructors accepting a name parameter.
  • ITask interface broken
    Due to refactoring of logging related interface the ITask.Execute method have changed its signature from the previous release. The reference to ILoggerFactory is now pointing to the DemiCode.Logging namespace defined in DemiCode.Shared library. Also, since the task object model now uses constructor initialization, the parameters collection passed to ITask.Execute is removed. Use parameterized constructors to pass values from configuration/code to task instances.
  • Scheduler does not support schedules with long intervals
    The system timer used by Scheduler internally does not support large intervals, thus schedules with long intervals between occurrences could not be supported. This is now resolved.
  • Scheduler indexer
    Scheduler objects can now be indexed by number to retrieve schedules.
  • Scheduler service is installed with Automatic startup
    A service installed with startup set to Automatic will start when "asked for" by the system. Since this may not be the intention when installing DemiCode Scheduler we have changed this to Manual.
  • Translate samples to VB.Net
    Translated samples to VB.Net. Added additional SchedulerConfiguration sample which demonstrates a simple GUI for editing Scheduler configuration files.
  • Writing configuration to file
    Scheduler configuration can now be constructed using a configuration object model and then written back to .config files.
  • Xml file format obsoleted
    The original Xml format is obsoleted. It is still supported in version 1.1.3 but support may be removed in later releases. It is advised to migrate code to use the new configuration object model which is based on the .NET 2.0 configuration system.