Google Answers Logo
View Question
 
Q: Learning COM, ATL, ADO ( Answered 5 out of 5 stars,   1 Comment )
Question  
Subject: Learning COM, ATL, ADO
Category: Computers > Programming
Asked by: adbuy-ga
List Price: $15.00
Posted: 22 May 2004 06:07 PDT
Expires: 21 Jun 2004 06:07 PDT
Question ID: 350328
I would like to learn everything about COM, ATL and ADO. I am quite
familiar with C++ and have good proficiency with VC++. 
1) Where should I start and in which sequence should I proceed?
2) I would like links to publicly available source codes (sample
programs) for COM objects developed using ATL ; especially those COM
objects that can connect to SQL server databases.

Request for Question Clarification by mathtalk-ga on 22 May 2004 10:48 PDT
Hi, adbuy-ga:

I have read Essential COM by Don Box and own ATL Internals (by Rector
and Sells), and I can second those book recommendations by
aryabhatt-ga (see Comment).

However I'm curious to hear the motivation behind your goals. 

Visual Studio 6.0 had a very long shelf life, and no doubt a fair
amount of maintenance programming will continue to require it for the
next couple of years.  But if you are setting out to learn "new"
technologies, then I would at least amend your goals to learning how
COM and ATL development have been revised in the VS .Net platform.

Learning some basis information about COM objects is worthwhile, but
unless you plan to develop COM components (possibly for database
access?) for a specific market niche, I'd guess that an aspiring
application programmer would be better off for focusing on .Net
development (and ADO.Net in particular).

As a supplementary book recommendation, take a look at:

[Essential .Net (vol. I, CLR) by Don Box with Chris Sells]
http://www.amazon.com/exec/obidos/tg/detail/-/0201734117/

Don Box's prose is an acquired taste for most people, though I rather
enjoy how his abstract viewpoint drills down into details omitted by
the MS documentation.

regards, mathtalk-ga

Clarification of Question by adbuy-ga on 22 May 2004 12:05 PDT
Hi Mathtalk and Aryabhatt,

Thank you for your comments and advice. My main motivation is to get
ready for a project which is going to be assigned to me and which
requires this knowledge. I guess the requirements have to do with some
legacy code.

Mathtalk, I know nothing about .NET but I think it might be worthwhile
to start moving in that direction for future. Could you please give me
a brief study plan (say for 3-6 months)? Since this question is beyond
my earlier stated one, I have increased the list price. I greatly
appreciate your advice.

Thanks
Answer  
Subject: Re: Learning COM, ATL, ADO
Answered By: mathtalk-ga on 22 May 2004 18:42 PDT
Rated:5 out of 5 stars
 
Hi, adbuy-ga:

Here's another book I own:

[Beginning ATL COM]
http://www.amazon.com/exec/obidos/tg/detail/-/1861000111/

Have a look at the reviews there at Amazon.  It's from the old Wrox
repetoire, and the result of a number of coauthors
(Grimes/Stockton/Reilly/Templeton).
ATL stands for Active Template Library, and it refers to a fairly
ambitious approach to accelerating COM programming productivity by
using C++ templates and macros.  The ATL Internals book by Rector and
Sells would be useful in getting an orientation as to how it all works
"behind the scenes", but I'd put it off until you've spent 3 to 6
weeks in hands-on stuff.

I suspect Beginning ATL COM will be a good fit for your needs.  It's
comprehensize enough to be useful as a reference later, and
introductory enough to allow many C++ proficient programmers to tackle
ATL COM projects after a thorough read.

It's the "thorough reading" part that some find daunting.  Because of
the collaborative nature of the book, I suspect that you will need to
reread some chapters several times to feel properly enlightened about
the subject matter.

Anyway, it's been around awhile and there are very inexpensive used
copies available, so it really is a question of the time investment,
not money.  Plus, I have a copy and would be happy to help with
bridging any deeply confusing parts.

There's another book by the same authors, more or less, from about a
year and a half later (May 1999 vs. Sept. 1997):

[Beginning ATL 3 COM Programming]
http://www.amazon.com/exec/obidos/ASIN/1861001207/

and I'd recommend it except I don't happen to own a copy.  Even one of
the authors seems to confuse the two books:

[Beginning ATL (3?) COM Programming]
http://www.grimes.demon.co.uk/beg_atl.html

Wrox has unfortunately sold many of their older titles (including this
one) to another publisher, so many of the links on that last page have
perished in the transition.

Amazon sells it in a bundle with Box's Essential COM, but bear in mind
that the Box viewpoint is really kind of "academic-y".  Not every
one's cup of tea, though many consider him an indispensible guide to
the philosophy of COM.

Now let's consider the ADO programming side of things.  I'd say the
best introductory ADO programming books tended to be VB oriented.  If
you're not a Visual C++ purist, you might take a look at this one by
Sybex:

[SQL Server and ADO Programming Complete]
http://www.amazon.com/exec/obidos/tg/detail/-/0782129749/

On the C++ side you'd mostly have to make do with the stray chapter
devoted to ADO objects in a more comprehensize book on application
development.  What I did was get the ADO 2.X reference books, which
(because Microsoft churned through the version updates pretty
frequently) wound up being a little expensive.  I think I have three
of these, for different values of X!

But Microsoft has been pushing everyone into ADO.Net, so ADO itself
has stabilized at version 2.8.  Some of the features of ADO 2.7 got
broken in 2.8, so your "legacy" project may be keyed to that (MDAC
2.7).  Ask questions of the folks handing it off to you!

Once you get the ADO object model under your belt, I think you'll be
fine with the online documentation from Microsoft.  Not to give Google
a gratuitous plug, but the Microsoft search engine on the MSDN site
can't hold a candle to Googling for appropriate syntax and sample code
references.

If you are trying to get started on your own machine to do some
exercises, you might install MSDE (Microsoft SQL Server 2000 Desktop
Engine):

[Microsoft SQL Server: MSDE 2000 Home]
http://www.microsoft.com/sql/msde/default.asp

Although it lacks some administration tools and limits connections,
it's free (and freely redistributable!) and very good for learning
about SQL Server.

I could go on, but I feel this is already a lot to bite off for a 3 to
6 month crash course.  Please feel free to use me as a "mentoring"
resource as you get into compiling sample projects, and I'll be happy
to point out additional resources as you progress.

The CodeProject and CodeGuru sites recommended by aryabhatt-ga have
been around for awhile, and will have substantial "legacy" content. 
Again Google may be the best way to find stuff there; you can limit a
Google Web search to a particular site by adding the qualifier:

site:xxx.com

or whatever the case may be.

best wishes,
mathtalk-ga
adbuy-ga rated this answer:5 out of 5 stars
Thank you for the excellent advice.

Comments  
Subject: Re: Learning COM, ATL, ADO
From: aryabhatt-ga on 22 May 2004 06:43 PDT
 
1. Read "Essential COM" by Don Box
http://www.amazon.com/exec/obidos/tg/detail/-/0201634465/103-3022019-3145402?v=glance

2. Read "ATL Internals" by Brent Rector and Chris Sells
http://www.amazon.com/exec/obidos/tg/detail/-/0201695898/103-3022019-3145402?v=glance

3. Join ATL@DISCUSS.DEVELOP.COM 
http://discuss.develop.com/atl.html

4. There are couple of samples on 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample/html/_core_ATL_Samples_Index.asp

Look at www.codeproject.com and www.codeguru.com for more samples.

5. and you can find bunch of links here
http://www.cetus-links.org/oo_ole.html

good luck.

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy