Solved

Advice on which API to use

Posted on 2004-08-26
11
177 Views
Last Modified: 2013-12-18
I have code that I wrote for outlook in C++ using Extended MAPI.  I had started out with the Outlook Object Model, but it turned out to be prohibitively too slow.  This is literally what my C++ code does:

The module is designed to create an XML database of all of your contacts (either from e-mail or actual Contacts).  

It goes through every message in every folder the end user selects, and creates ContactInfo objects in memory.  These ContactInfo objects contain data like e-mail address, subject of last communication, date of last communication, name (interpreted from name field if it is not a real Contact vs. just an email).  I do NOT go through the body or attachments.  For Contacts in Outlook, I grab the address, company name, job title, etc.  (every field I can).
The list of ContactInfo objects is then spit out to XML (I have about 1700 unique contacts where unique is defined by e-mail address).  

At a later time, I can read back in this XML, and go through all selected folders again, ONLY reading objects that were received/created after Date X, where Date X was the time of the last extraction.  

Now, there are many other things we do to write back data to Outlook/Exchange, but for now, I just want to be able to do that.  

Is LotusScript feasible here?  If not, is C++ API any faster?  
0
Comment
Question by:jjacksn
11 Comments
 
LVL 24

Expert Comment

by:HemanthaKumar
ID: 11906720
With your background I believe C++ API would be the best, addition to that it has more flexiblity compared to LS and is faster...


~Hemanth
0
 
LVL 19

Accepted Solution

by:
RanjeetRain earned 250 total points
ID: 11909342
Depends a lot on your specs. carrying over from your last thread; stop looking around, you know you need LotusScript. C++ API is truely faster and C fastest. But C or C++ API doesn't push your HDDs to start spinning @100000 rpm. Your HDD still does a 7200 rpm and maximum you get is what is defined by your disk controller. The REAL question is -- What do I need to use the available resources in a optimum way. YOu do not want your program to make your CPU go over 80%, do you? C, C++ is best when processing is the requirement. YOur requirement is data-extraction (read disk I/O).

You are not making a .EXE here. You are not making a stand-alone product. Your application runs as an extra (add-on in MS lingua). You want it to perform well, but doesn't mean you want the system to become non-responsive when your program runs.

Like Exchange/Outllok, there is a Domino/Notes pair here. Do you have any ideas at this moment what you wanna do it for? The server? The Workstation? An individual? An organization?

These are all open questions, whose answers you need. But these questions themselves reveal a lot. They reveal the way your app may come out. My another suggestion is -- firstly try n understand Domino/Notes environment. Then make up your mind what you want to do. Freeze your specs.

I see your MAPI/VBA thing. This is trivial to do in Domino. Trivial, as long as you know what is it that you are gonna do.
0
 
LVL 19

Expert Comment

by:RanjeetRain
ID: 11909414
Oh, did I hear Qwaletee say Use DXL API :)
0
 
LVL 5

Author Comment

by:jjacksn
ID: 11922016
I have been asking around elsewhere, and its not common sentiment, but, occasionaly, someone will says, "this is trivial to do using the ODBC provided for NotesSQL".  What is the argument against using this method?
0
 
LVL 19

Expert Comment

by:RanjeetRain
ID: 11929897
No arguments againts NotesSQL. Just that I am not comfortable it (My own argument).

See, the problem of this world is that, everyone has certain likings and dislikings. I feel you will be happiest doing it with C++ API (just becoz you are very very comforatble with it). But, one thing is sure. NotesSQL would be slower than C++ API (and may be even slower than LotusScript).

Another thing is: I do not know why someone would suggest you NotesSQL. NotesSQL ain;t particularly suitable for this purpose. As far as I understand, your need is more of "data-extraction" than "data-query". COrrect me if I am wrong.

I will again suggest, take a look at LotusScript. Its capable, reasonably fast and easy to learn. If you are looking at reducing your development time, take a llok at DXL API. I do not know how fast/slow that is, but it can be the fastest whereas developement time is concerned.
0
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 
LVL 31

Expert Comment

by:qwaletee
ID: 11935541
Yes, you could use DXL for this, but the extra I/O of irrlevenat item transform, and extra logic for handling it, would make it silly.  if you are using C++, and are willingt  to spend the time to learn the AOPI, go with the C++ API.  It has relatively simple atomic functions for searching content by date.  I say relatively simple, because you really will have to learn the overall API structure first before you can do much with it.

On the LotusScript side, you can do similar things, but the XML interface won't be nearly as easy, and there will be a significant performance difference in many cases.  Same goes for Java, minus the XML issue.
0
 
LVL 19

Expert Comment

by:RanjeetRain
ID: 11940872
Qwaletee, I am surprised you didnt recommend DXL strongly ;)
0
 
LVL 31

Assisted Solution

by:qwaletee
qwaletee earned 250 total points
ID: 11946574
First f all, I have many tools, so not every problem is a nail.  Second, this mighthave to work in older environments.  Third, DXL strikes me as overkill here, but I could be wrong.  So, if DXL works well, they use pure R6, then get out that hammer, cause we're nailing DXL's in.  Otherwise...
0
 
LVL 19

Expert Comment

by:RanjeetRain
ID: 11954685
I was hoping to hear it would be easier to do with DXL. That's all. I hope you didn't misread.
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 13032970
No comment has been added to this question in more than 21 days, so it is now classified as abandoned.

I will leave the following recommendation for this question in the Cleanup topic area:
    Split: RanjeetRain {http:#11909342} & qwaletee {http:#11946574}

Any objections should be posted here in the next 4 days. After that time, the question will be closed.

Zvonko
EE Cleanup Volunteer
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

This is an old article, please see an updated version of this article, located here: http://www.experts-exchange.com/articles/23619/Notes-8-5x-Windows-7-Notes-info-and-tips.html
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now