Binary compatibility is your distributors nightmare. If and when you
break binary compatibility you can have some nasty 'side-effects'.
Anyways, Binary Compatibility for a component basically means that
it is going to expose all the same properties in the same fashion.
If you add a new 'feature' to a component - by changing parameters
like a .Add method that goes from just params of 'value as string'
to 'value as string, index as integer' then you've broken binary
compatibility with any previous releases of that component.
Basically, your old stuff doesn't know what to do with the new
component since they were compiled with the understanding that if
they create a certain object it will expose certain properties and
methods with certain 'needs' that are in a specific order and have
certain qualities (data types and such).
Equate it to upgrading 'girlfriend' to 'wife' - certain
misconceptions you had about the way 'girlfriend' worked are no
longer applicable - since the way you interact is completely
different after the upgrade, though to the observer, nothing has
really changed. <g>
Regards,
Shawn K. Hall
http://ReliableAnswers.com