opens with a chapter devoted to the migration from C++ to COM programming, presenting five "attitude shifts" that C++ coders need to undergo to program successfully with COM. It starts with a discussion of defining interfaces in the Interface Definition Language (IDL), and then moves on to a discussion of the unique distribution challenges of COM-based systems. The authors also discuss other differences, such as exception calls.
The next chapter presents tips pertaining to the all-important interfaces in COM. Both the big picture and some precise details are covered to help you implement your interfaces safely, as well as the implementations and the particular challenges that COM presents. The authors emphasise "defensive coding"--pointing out dangerous assumptions and offering suggestions for producing reliable components.
Apartments, security, and transaction management are addressed in succeeding chapters. As with the previous topics, they are handled via a series of specific tips and suggestions. If you're new to COM programming, you should read some more introductory texts first, but if you've already experienced your baptism by fire into the subject, this title can help ease future pain. --Stephen Plain, Amazon.com
From the Back Cover
In Effective COM, the authors, Don Box, Keith Brown, Tim Ewald, and Chris Sells, offer 50 concrete guidelines for creating COM based applications that are more efficient, robust, and maintainable. Drawn from the authors' extensive practical experience working with and teaching COM, these rules of thumb, pitfalls to avoid, and experience-based pointers will enable you to become a more productive and successful COM programmer.
These guidelines appear under six major headings: the transition from C++ to COM; interfaces, the fundamental element of COM development; implementation issues; the unique concept of apartments; security; and transactions. Throughout this book, the issues unique to the MTS programming model are addressed in detail. Developers will benefit from such insight and wisdom as:
- Define your interfaces before you define your classes (and do it in IDL)
- Design with distribution in mind
- Dual interfaces are a hack. Don't require people to implement them
- Don't access raw interface pointers across apartment boundaries
- Avoid creating threads from an in-process server
- Smart Interface Pointers add at least as much complexity as they remove
- CoInitializeSecurity is your friend. Learn it, love it, call it
- Use fine-grained authentication
- Beware exposing object references from the middle of a transaction hierarchy
- Don't rely on JIT activation for scalability
and much more invaluable advice.
For each guideline, the authors present a succinct summary of the challenge at hand, extensive discussion of their rationale for the advice, and many compilable code examples. Readers will gain a deeper understanding of COM concepts, capabilities, and drawbacks, and the know-how to employ COM effectively for high quality distributed application development. A supporting Web site, including source code, can be found at http://www.develop.com/effectivecom.