The Virtual Bookcase Reviews of 'Inside Atl (Programming Languages/C)':
Reviewer amazon.com wrote:Written for readers with knowledge of C++, Inside ATL surveys the strengths of today's Active Template Library (ATL), used for creating lightweight, high-performance COM components on Windows. This book provides an excellent guide to ATL programming while introducing all its features, both for client- and server-side development. One of the best features of Inside ATL is its thorough coverage of using (and understanding) the wizard-generated code in Visual C++. The authors describe each of the choices developers face when running these wizards, as well as examining and modifying the generated boilerplate code. (You'll find good detail on the various threading options available with ATL components.) The book also provides an excellent discussion of smart pointers and C++ templates to explain how ATL works by analogy. Another notable section is the full treatment of using ATL to build efficient client-side ActiveX components. (This last chapter alone will justify the cost of the book for many readers.) Instead of long coding examples, Inside ATL is filled with shorter excerpts used to illustrate essential COM topics effectively. A complete example shows how to use ATL for efficient client-side ActiveX components, including using property pages and events. The book also covers ATL support classes available for both client-side and server-side programming, and it illustrates the use of ATL in writing Windows applications. A final section on Windows 2000 and COM+ looks at the future of ATL in the enterprise. With the solid knowledge of two experts from the field of component development, Inside ATL does a fine job of exposing the most important inner workings of ATL. Its mix of savvy detail and thorough introduction to virtually every capability of ATL will allow this book to fill a critical niche for every C++ developer. --Richard Dragan Topics covered: COM basics, smart pointers, ATL wizards, threading apartment models, COM servers and client-side components, aggregation, wizards, building ActiveX controls, ATL window classes and collections, and COM+.
Reviewer Rob Slade wrote:
Fred Brooks said that there was, and would be, no "silver bullet" for
the programming task: the job is hard and that is all there is to it.
This book seems to exemplify that idea, since it presents a
programming aid, but demands that the reader be skilled enough not to
need the assistance before full understanding of the tool can be
conveyed.
An introduction to ATL (Active Template Library) states that ATL is to
the production of binary COM (Component Object Model) objects as MFC
(Microsoft Foundation Class) is to the generation of object-oriented
C++ source code. In chapter one, this explanation may mean relatively
little to those who are not completely familiar with all of those
technologies. The authors are, however, to be commended in their
coverage and explanation of the Microsoft COM paradigm. They deal
extensively with the advantages of using binary, rather than source
code, objects, and the ability to use different programming languages
for different parts of a project. (The initial exegesis of abstract
base classes is not quite as clear.) There is not as much discussion
of the disadvantages of the model, and the argument is somewhat
weakened in that the book only uses C++. As the book starts to move
into the details of the use of templates, it does become clear that
the reader had best be well up on C++ programming.
Actual programming and usage starts in chapter four, or, at least, it
seems to. The material does seem to have internal contradictions,
such as the insistence that it is best to avoid the AppWizards, to
begin with, but then presenting an apparent reliance on the AppWizard
in producing the first simple object. After this introduction, the
book touches on client-side ATL, fundamentals of ATL COM objects and
servers, advanced composition techniques, details of the ATL Wizards,
ATL and ActiveX controls, persistence, connection points, ActiveX
controls in different environments, window classes, enumerators and
collections, ATL and applications, and the future directions of ATL.
A good deal of humour is used in the book, and it does make a
contribution to the readability. Unfortunately, the jokes included in
the text do not contribute to understanding of the base material,
since they relate only very peripherally to the concepts under
discussion at any point, and so distract from, rather than enhancing,
the learning process.
ATL works with C++, so it is not unreasonable to expect some knowledge
of the language for those wanting to use the templates. However, if
the objective of the technology is to make programming easier, then
this book makes very rigorous demands of precisely that audience who
stand to benefit the most from ATL. For those who are solidly
experienced in C++ and object programming, though, this book does
provide a thorough explanation of the COM concept, and the use of ATL.
copyright Robert M. Slade, 1999
Add my review for Inside Atl (Programming Languages/C)