10-17-2011 10:27 AM
If I develop an application that will do some data modification using the ACT 2012 SDK, would I be able to use that same code to run it against a 2008/2011 system? What would I need to do if I wanted my codebase to support several different versions of ACT?
Thank you
10-18-2011 06:07 AM
Typically, you want to develop for the oldest version you need to work with. The reason for this is due to newer versions having additional methods, objects, classes, etc. that the old version doesn't. Using any of the new items will prevent it from working with the old. It is usually easier to upgrade code to a newer version, than it is to go backwards.
This is in general, with just about any SDK/API.
In short, write your code against 2008. If you need to have your code target a newer version of ACT, I'd suggest copying your code to a new project, and upgrade it to work with that version of ACT. This way would keep your 2008 (base) code working, assuming you need it yet.
10-21-2011 01:57 PM
Absolutely accurate information int he reply.
Generally you just need to reference assemblies from the oldest version of ACT! you want supported in your project in Visual Studio.
10-21-2011 03:30 PM
dont forget tho that act 2011+ require the .Net 3.5 framework?? yet older only support 2.0 ? i didnt think newer act versions load plugins etc that are 3.5, am i right?
10-21-2011 04:55 PM
Thanks for the reminder!
The assemblies I created targeting the .Net 2.0 framework load up and run in Sage ACT! 2011/2012 in the .Net 3.5 framework.
Generally .Net is also forward compatible, though there are a couple of exceptions where interfaces or methods have been deprecated so no longer work in the newer version of the runtime.
Like ACT! - .Net is not backward compatible, so if you create the assembly targeting the .Net 3.5 framework it will likely not work in older versions of ACT! even when the older references are used.
So in addition to referencing the older framework dll's you also need to target .Net 2.0 for your assembly build.