Streambolics Core Library

A library of C# classes providing robust tools for real-time data monitoring

This library contains the classes I find useful when implementing data communication applications. The fundamental principles of the classes are:
  • Simplicity: use the simplest possible technology instead of complicated one, even if it has limitations. For example, I prefer using INI files instead of XML for configuration, as they are so much simpler to read and edit.
  • Proven technology: use technology that has been proven to work instead of the cutting-edge new protocol that emerged last week. For example, to exchange data, I prefer to use a file transferred by FTP over some kind of distributed message queue working in the cloud.
  • Robustness: use techniques that ensure that data gets transferred even when subsystems fail. For example, I prefer "pull" transfers where the data consumer polls the data producer, instead of "push" where the producer indicates that new data is available: if the consumer never receives a push, does that mean the data does not change, or is the producer locked in an infinite loop?

The library is not currently a complete and finished set of polished tools, but more a loose collection of classes, in a state of flux, that change every time I work on a new project. You can use them if you find them useful, but I will probably not implement features I don't need myself...

The library currently focuses on data transfer with the following devices:
  • Patlite lightpoles
  • PtBurn CD-producing machines from Primera Technologies
  • Any real-time monitor providing numerical readings (temperature sensors)

Last edited Dec 26, 2009 at 8:05 AM by sleclercq, version 5