I am cutting my teeth on Notes API development. I have a question which I think has an obvious answer but I thought I’d ask.
I am writing a program using the notes lib from the 6.5.x sdk. Can my API run on a 6.0.x system? Are 6.5 and 6.0 radically different? The functions I am using are actually available in both versions.
I’ve tried it out and it “seems” to work but don’t know if I am setting myself up for a problem later on
Why would you use the SDK from 6.5 if the functions are available in both? Instead, use the SDK from 6.0 and avoid the chance of a problem. The SDK is upwardly compatible, but is not guaranteed to be downwardly compatible, so you should always use the libraries at least from the lowest version you plan to support.
Ben you are right- it’s more of a theoretical question. I started out using 6.5.x (i.e., latest and greatest) and ended up testing on a 6.0.x server. It “worked” (I didn’t notice any problems), and then used the correct 6.0 libs.
It just sparked a question and wondered. The only scenario I could think of is that there is something fixed in 6.5.x over 6.0.x. An api function that say memory leaked but was fixed upstream.
So this avoids forcing the user to upgrade to a 6.5 server to be compliant.
Basically, there may be new entry points into the 6.5x DLL. If you access those, you go “BOOM!”. You think you won’t because you only use functions that are in each, but imagine this scenario:
6.0.x API
SpiffyCoolFunction is a macro that calls SpiffyCoolInternal function
6.5.x API
SpiffyCoolFunction is redefined to call SpiffyCoolInternalWithSameTimeAwarenessCleanup function
Now, if you run the SpiffyCoolFunction compiled with 6.0.x API, it runs SpiffyCoolInternal even on 6.5.x, because SpiffyCoolInternal is still defined for backward compatibility, but if you run the SpiffyCoolFunction compiled with 6.5.x API on 6.0.x, you go “BOOM!” because the SpiffyCoolInternalWithSameTimeAwarenessCleanup function entry point does not exist.
This may be a tortured example, but I have seen it happen between versions. You might run without trouble, but you are asking for trouble in the long run. Anyway, just my two cents.