I was thinking that in the future I might be updating some of my class libraries and when I do that, it might be useful to keep old classes, namespaces and objects in the updates just for backwards compatability.
I was wondering what you guys and gals thought of naming classes and namespaces with version information? For example a namespace might be MyCompany.MyApp.ControlLibrary.V1 or MyCompany.MyApp.ControlLibraryV1 or some other variation.
The reason I was thinking about this is, if I needed to update say, a class, and the update was basically a very large re-write (or total re-write) and I wanted to keep the old one there for backwards compatability, the name of the class would already be taken, wouldn't it be better to version everything like that so it would be ControlLibrary.MyTextboxV1 instead of just ControlLibrary.MyTextbox? That way the functionality of the first version isn't lost, and unnecessary code isn't needed in the methods to jump around code depending on the application version?
Thoughts?