With Quartz.NET I could contrast some of the earlier points:
- Code to write – You can express your intent in .NET language, write unit tests and debug the logic
- Integration with event log, you have Common.Logging that allows to write even to db..
- Robust and reliable too
- Even richer API
It’s mostly a question about what you need. Windows Scheduled tasks might give you all you need. But if you need clustering (distributed workers), fine-grained control over triggering or misfire handling rules, you might like to check what Quartz.NET has to offer on these areas.
Take the simplest that fills your requirements, but abstract enough to allow change.