04-14-2013 07:52 AM - edited 04-15-2013 01:26 AM
Hi All. - HELP!!!
I am new to ACT and its SDK.
I have been a Professional Computer Programmer for 38 years.
Assembler, Cobol, C, C++, SQL, VB6, VB.NET. I am not stupid by a long chalk.
Can anybody help me to fathom out the secret to understanding what on earth the SDK is all about.
It NEVER goes into any useful depth. Was it wriiten by somebody who NEVER EVER tried to use it?
I am unable to understand it. When I want to know what functions (Methods) are available and upon what attributes (class members) they act and what are acceptable values to put into parameters (arguments) I end up just trawling through this forum.
It takes me about 4 hours to write a tiny algorithm to just list some contacts or companies using sortcriteria and or filtercriteria.
I have never ever come across an SDK as poor as the ACT SDK, - it is worse than useless.
On the other hand, this forum is a goldmine. How on earth does anybody ever use the SDK which has absolutely NO examples in it.
If you didnt actually develop the ACT solution, then you would NEVER understand the SDK.
Sorry to have such a negative impression of it, but it is almost impossible to develop with it unless you are given explicit code as examples, and a lot of those dont actually work first time.
So could somebody please help me with the mindset needed to actually unravel the example-less SDK, otherwise its "Hello Again Dynamics, - sorry I havent been in touch for a couple of months!"
04-14-2013 11:54 PM - edited 04-15-2013 11:25 PM
There are a number of examples in the SDK documentation including one that demonstrates displaying a list of contacts. If you look in the help file for the topic 'Framework Example - Return a collection of Contacts' this should give you a good intro to the topic.
04-15-2013 12:59 AM - edited 04-15-2013 01:22 AM
Hi again Darron.
Thanks for the reply.
Yes, I had already found the code example you refer to in this forum and I had already copied it into my VS2010 code.
However, it took me almost 3.5 hours to actually make it run. The code suggested the way to do it, but I am sorry to say that it is the fine detail that is not documented or in the examples that is missing.
For example, it was almost impossible to use the SDK to fathom out what ACT think a sort criteria is! It turns out that a sort criteria is actually an object that has to be instantiated and populated in some unusual and weird manner which is not obvious or intuitive.
Ditto for Filter criteria. An OBJECT ???? Why?? Instantiated Class??? Why? What would be wrong with just passing to the method common sense strings such as "Company Name, Ascending" or "Contact Name = 'FRED BLOGGS'" I thought that OOP (which, by the way was invented and implemented in the 1970s initially by Cobol developers and very easy to understand) was all about not needing to know how the object worked, just to be able to use it easily, simply and intuitively.
The other thing I found frustrating was the forever going around in circles when trying to fathom out what the Class constructor methods need. There are many overloads present and most of the arguments are themselves objects which need full hierarchical naming starting at Act.Framework. .... and if you dont just know what the path is you spend hours guessing and searching. Its just like programming in an assembler language where you have a list of the instructions, but you have no idea what the instructions actually do until you write a piece of code and try each and every one out.
I guess I will not be making a living out of selling add on software for ACT after all.
Rant Over and thanks for your response, I really appreciate it.
04-15-2013 04:49 PM
I understand your frustration - I really do. If you need specific help with something I'll try to assist, there's some code in the download forum right next to this one and it should give you a decent understanding on some of the basic stuff.
Here's an attempt at explanation at what you're looking at:
The ACT! SDK really extends in 4 different directions and what you're seeing is the abstraction it takes to try to unify those into a common model. The SDK allows extension of the Framework via a Plugin, exposure of UI components via a custom control, independant framework instantiation for external application interface and a common architectural approach to do this for the windows client or the web client. It does this and attempts to remain forward compatible with a version of ACT! produced yearly. It ain't a pretty animal and it's darn hard to learn, but amazingly it usually works.
Is some of the SDK needlessly complex - Yep, I absolutely loathe the filter criteria approach to contact access. If I'm just reading a record I almost always use the OLEDB 2 interface rather than raise up an object with the filter criteria. A while back I made a half hearted attempt at implementing an interace allowing for a more OData like queriable signature, but alas I decided to join Swiftpage, help in acquiring ACT! then get a web service interface built for the product (OK I'm still working on that last part).
In my experience there's different levels of complexity when it comes to programming against the SDK - from easiest to hardest:
1. Custom Control - pretty straight forward, lots of examples
2. Plugin - good examples and experience from other developers on this forum
3. ACT! Framework instantiation - fewer examples, and some differences from plugin examples (easily confused code between the 2 approaches)
4. ACT! web specific plugins/controls - fewer still examples and challenging to understand code execution context
Which of the above are you starting with?
04-16-2013 12:42 AM
Good morning Alduet, Thnak you for your reply. It gives me hope!
It is 08:30 a.m. here in the UK and we are waking up to some upsetting news from Boston.
My thoughts are with you and all those affected.
I am starting with your option 3 - an application that will post Activities ('To Do') into ACT from an MS Access 2003 database.
I was going to 'Push' the data into ACT, but overnight I have made some progress with a Plugin example from this forum and I have now decided to 'Pull' the data in automatically every time the database is 'started'. The plugin also shows me how to add a menu optionto the explorer. I think that can be used to allow users to 'Pull' in the data at will during a work seesion.
So that means I am interested in your options 2 and 3.
I will look at Custom Controls later this week .
So that is a good result for me so far and I would say about 95% of it comes from this forum.
Thank for your help. I only hope that I can input at least as much back into this forum as I have already taken out.
All the best and thank you.