I'm currently working on a project which will support multiple file writing specifications (imagine if you had to support something like XML 1.0, XML 2.0, XML 3.0, etc) called ADIF. Currently there are two standards (version 1.0 and version 2.2.2), and they are both used commercially and both still heavily used.
Specification version 2.2.2 incorporates much of version 1.0 but there are some slight differences which rules out some inheritance and other OOP tools.
How would you organize your project to support older versions, yet continue to keep up with new standards.
- Namespaces (Standard.Version1, Standard.Version222, Standard.Version223 (next version?), etc.) in a single class library? Seems sloppy.
- Separate class library for each in the same solution (Version222.dll, Version223.dll, etc.)? Seems excessive.
- etc.
I do intend to implement some code which will convert from one version to another.
Basically, I'm looking for some advice on how to best organize this type of project.