By Pradeep Tapadiya
Review by Dr Richard Grimes
With it being so fashionable to write about the beta .NET framework - books that will be out of date soon after they are published - it is nice to see a book about an established product, and one that has a lengthy future. I am talking about COM+ of course, the .NET framework relies on COM+ for its component services and will do in the future. So it makes sense to learn about COM+ because you can use it now with Windows 2000 and you will use it in the future when .NET is released.
Tapadiya's book is a comprehensive look at COM+ and developing COM+ components in C++ with ATL (in my opinion, the _only_ way to develop COM+ components). The book has two parts: the first part "The Foundation" explains COM and interface programming, whereas the second part "The Extension" describes the COM+ services. The first part is really intended for the novice COM programmer who has an understanding of C++ and Win32, the text goes through an extensive explanation of the problems that interface programming and the dynamic invocation of COM were designed to solve. To many programmers such an explanation is of minor interest, since it is pretty well established that COM is best way to develop components on Windows and justifications to this effect have been described in other books in great detail. However, it makes an interesting read to a seasoned COM developer to learn of Tapadiya's point of view. The chapter on interface design is a useful introduction to interface definition language (IDL) and presents in a single chapter a good overview.
The second half of the book is split into 9 chapters that decribe COM+ services. These build upon the ideas about COM described in the part half of the book. All of the COM+ 1.0 Services are covered - contexts, concurrency, transactions, security, events and message queuing. Tapadiya explains in detail what these services are and how to write code to use them.
There is a lot of information in this book, and in places Tapadiya goes into too much detail. For example, when describing aggregation Tapadiya explains in fine detail the reference counting problems solved by the ATL aggregation macros, without mentioning the difference between the BLIND and non-BLIND macros. Most developers will simply use the macros without needing to know how they work - but they do need to know which one to use. (To answer the question in your mind: use the non-BLIND version, because only that way can you control the interfaces exposed by your component.)
This is a recurring 'problem' in "COM+ Programming" - Tapadiya is clearly well read and the text often provides deep insight that appears out of place. It would have been better if such sections had been presented as side bars so that the reader could choose whether to read them.
In summary, this book should appeal to a developer who intends to target COM+, the "A practical guide using Visual C++ and ATL" subtitle is a statement of the tools used to write the example code. If you don't already know C++ and ATL, then get books on those and read them first.Buy the Book - Outside Europe
Contribute to IDR:
To contribute an article to IDR, a click here.