2 von 2 Kunden fanden die folgende Rezension hilfreich.
am 24. Februar 2000
This book <CANNOT> be understood unless you know Standard C++ fluently cold. Almost every piece of implementation block instructions in the book require a commanding understanding of templates and the Run Time Type Identification language features. There are a lot of COM books at the book stores like Dale Rogerson's Inside COM, which is more of a simpleton tutorial, now I had that book but for some reason I felt that the explanations of that book where too Sesame Street. Rogerson's book is good and I do not want to bash it but with Essential COM this book makes wanting to read any other book on COM wasted time, and as you would learn C++ from Stroustrup, the definitively reliable source, the same courtesy is applied to Don Box. You awkwardly feel safe and secure with the teachings of Box. The training that this book gives you is unbelievably detailed and presise, giving you a certain arrogance and swagger upon the books completion, because as he states it a C++ COM programmer is the smartest and most skillfull programmer in the developers circle. Don Box Essential COM is also a tutorial contrary to belief, but because it is exhaustively detailed, it also serves as keyboard side COM reference without the cold and dry syntax of most reference manuals. This book is classic and worth every penny. The mentality to spend on this book is what will the ramifications be once I really understand the COM model, and program in it effectively? Can you say humongous pay raise? How about jolting you marketability as a developer ten fold? It definitely has its place as tutorial but Don Box's book explains how COM can be used as a better C++. How is that? Box explains that in writing standalone binary implementations C++ without COM has its purpose without any influence, but should we really expose to much information about the class in the header files? He explains as you will read, that COM promotes interfaces, not class state exposure. He penetrates his dominance of COM throughout the book that COM exposes only what the client programmer using the interface should only be concerned with, the interface. And the details of how COM objects handle the responsibility performing the required service is in the implementation. Box explains in exhausting detail about the lack of the Standard C++ run-time class loading as opposed to Java which does support run-time class loading and COM now paired with C++ allows that feature. He really makes you understand COM theoretically, fundamentally that you can truly master COM with this book. This is the best programming book I have read. This book writing style is clear, the author Don Box clearly demonstrates his Lordship over the COM. The word is that Visual Basic programmers wanting to learn COM will get the concepts but will be lost with the implementation samples, this book is aimed at serious C++ programmers, but Java programmers will learn a great deal from Effective COM. If you want to hear what COM is and how it is used from Don Box himself, go to the Dr.Dobbs URL, ddj.com, click on Technetcast on the left margin, and look at bottom of page for Visual C++ Developers Conference 1998 archive real audio/video hosted by Technetcast Phillipe Lourier, or search for Don Box and it will come up with the segment to be played. This streaming video segment is invaluable and you get to see and hear Don Box talk about the need for COM and how COM compares with CORBA, Java, and how to use it to make you a superiorly better C++ progammer. Oh, yeah ahhh, buy this book if you want to learn COM, be a master of COM, be a Lord of COM....
1 von 1 Kunden fanden die folgende Rezension hilfreich.
am 27. April 1999
I bought and read this book about 16 months ago.
I've re-read it twice since then. This is not because I didnt understand the book the first time -- its because there are so many layers of information in the book.
Some authors seem to be able to write 20 books on a subject -- You've seen the authors that do 3 C++ books a year, or 3 COM books a year. This is great for publishers, and the successful "serial author". (I am aware that Stroustrup has 2 other C++ books and Don has taken part in Effective COM -- but they're not on the same subject material)
Don takes a different approach. He's only going to write one COM book and do it properly. He does. This book is the most dense in terms of giving solid information to help you understand whats going on. Whats going on when your product is about to ship and there's only 3 "showstopper" bugs left. Thats when understanding it properly matters. It also matters when you want to design something. These details also matter to VB projects when they ship, or when they're being designed.
I generally read any COM book I see sitting around. So I've probably read about 6000 pages on COM. I've seen about 1000 wizard screenshots. I've seen 40 analogy-riddled COM explanations. I've seen "cute and funny" examples. This is the only one I've bought and I've never regretted it or covetted my neighbour's book.
Similarly with C++ books, there are authors who sell a rehash of the same material 20 times. I read any of these lying about too -- another 10,000 pages with 50 useful per book. I only _bought_ Stroustrup.
It's not (nor was it intended to be) _the_ tutorial. It doesnt have screenshots. Its not 'funny'. Depending on your initial level of knowledge, you should probably read one or two other books such as Inside COM (or intros to other books of that ilk) -- in fact the best primers are probably articles in MSDN. Use these as a primer as necessary. When you've read 1500 pages of these, come back to Essential COM, and you'll have any gaps in your knowledge filled in.
If I was allowed to own only 3 books on C++/COM development, they would be Stroustrup, Box and Effective COM. (Although Mr Bunny's Guides would come close :)
Finally, would people, regardless of positive or negative opinions held, please be kind enough to give their identity -- IMHO it invalidates your opinion if you're not willing to stand behind it.
1 von 1 Kunden fanden die folgende Rezension hilfreich.
am 15. Februar 1998
You've read a lot, you've built the samples, you've used the wizards, you can actually turn out components in C++, VB and maybe even Java, but you still secretly ask questions like "OK, but WHAT IS this so-called Apartment? WHERE is it?", or "so how does *IT* notice its reference count is zero?", or "WHO keeps track of threading models?". It that's the case, you have a nasty habit of wanting the world to make sense, and Essential Com is for you. Well-organized, with clear lucid prose, a sort of man to man discussion of the reasoning and the detailed implementation issues *behind* the wizards and templates. While rich in C++ code, this is not a paint by numbers cookbook, e.g. MFC and ATL are hardly mentioned. Get that elsewhere and come back here when you have gotten "productive" and want a crack at actually understanding what you're doing. This book is one of the current masterpieces, and you will read it cover to cover. In addition, it's reasonably priced and the pastel color scheme of the cover blends nicely with most bathrooms.
am 10. November 1998
Some woodworkers are content to read books on "100 router tricks" and "50 cool projects you can build with your table saw". Those who would be masters of the craft read books on how to select wood for a particular purpose, or when to use a particular type of join, or how to design a piece of furniture for a specific purpose.
There are dozens of COM books of the first type. There's only one of the second. This is it.
There are a lot of books that will tell you how to develop COM applications. Most of them are aimed at the journeyman programmer who is capable of following directions and making small extensions to cookie-cutter sample apps. They serve this need quite well. Don's book isn't aimed at that sort of person, and doesn't fill that need.
If you need to understand why COM looks the way it does, or how COM grew, or what its underlying philosophies are, or if you need to deeply understand the whole COM paradigm, Essential COM contains the answers.
COM is full of jargon; terms that convey only a small amount of information themselves. The richness of an object model relies upon the abstractions that serve as its foundation; if you don't understand the abstractions, you can't really apply the model creatively.
Sure, the sample code gets pretty deep, and does so rather quickly. Take the time read the samples, and understand them; consider them "exercises for the reader". There is much to be learned from them.
Yeah, the macros get deep, too. COM is layer upon layer of abstraction; the implementation is layer upon layer of code. Macros help flatten that out; they keep the programming level of abstraction high enough that one can see a forest rather than an endless collection of trees. Understand them when they're introduced; take the time to work through the code. Then use them without worry.
Is this book truly "essential"? Depends on what you think that means. Does it describe the essence of COM? You bet. Can one write COM apps without it? Probably. But they won't be the most efficient, or the best designed, and they won't make the best use of the technology.
am 1. November 1999
This is the best COM book I've read so far. Don Box has an amazing mind. He's able to organize and express this complex body of knowledge in a way that makes complete sense. There are two problems that I hope he will address in a later version.
One is that the book would benefit from a more "drill-down" approach, presenting the basic, most common usage first, and then drilling down into the esoterica. For example, when talking about class objects, I think it would be most useful to talk about them first in their role as implementors of IClassFactory, which is their most common function, and then tell us about all of the other cool stuff you can do with them if you want. If the book did a better job of formalizing what was most important and what was of secondary importance, making liberal use of multi-level headings, I think it would be a lot more usable as a reference.
Second, the real-world examples are of limited use. In chapter 5 Don states, "Occasionally, it is necessary to marshal interfaces explicitly from one apartment to another outside the context of an activation request or method call." Why? I'm sure there's a good answer, possibly somewhere in this book, but I can't find it anywhere near this statement. He just goes on to explain how to do it, without explaining why.
Things like this make it a bit frustrating. But this is without a doubt the most thorough and lucid introduction to COM I've ever read. And as other readers have mentioned, the first chapter is a triumph in itself, finally explaining the true foundation of COM in a way that cuts through the confusion.
am 15. Februar 1999
Starting from the progressive definition of an informal set of requirements for modular software architectures, the first chapter of Essential COM highlights how, by itself, the C++ language is not capable of satisfying many of them, even when associated with DLLs. Several possible design alternatives are then evaluated, and the final decision leads to the rough engineering of COM. This is perhaps the most vaporware-free introduction to the subject I have ever read because it explains through facts and not conjecture how and why the C++ object model maps well to COM... As the book proceeds, more and more room is given to complex technical issues and useful (while not trivial) COM programming idioms, such as tear-off interfaces for saving memory as the number of interfaces climbs significantly but not all of them happen to be constantly in use. In all cases the solutions make use of only the raw COM API and interfaces at the C++ level. Neither the theory, nor any of the numerous code snippets sprinkled throughout in the book, mention high-level frameworks such as ATL or MFC. The dissertation on multithreading issues and marshaling are very detailed and betray the vast experience of the author in the implementation of nontrivial COM systems.
am 2. Februar 1999
The book is the best COM book I've read. I was tempted to give it 5 stars, but IMHO the only thing which prevents it from being perfect is that different chapters have different levels of complexity. Chapters introducing interfaces and classes are incredible. But when describing apartments, author quickly goes into details about marshalling. IMHO most of experienced developers are good enough to easily capture the essence of interfaces and classes, but understanding apartments is a traditionally difficult task. When reading the book, I had to have breaks just to make some drawings to epxlain to myself how apartments work. But if I didn't have to solve synchronization problems in my previous projects, I might have been left wihout understanding why do we need apartments in COM at all. I also think that low level details about custom marshalling are not really necessary.
However, this book is a must for a COM developer. But you should be really willing to learn the foundations of COM. I read a complaint from another reader that the author doesn't even mention MFC, and I must strongly disagree. COM is not about MFC or ATL etc. It is other Windows-based products that should refer to COM if they want to stay in touch with reality.
am 30. September 1998
Obviously, Don Box is a COM and C++ master, which is where the problem lies. Admittedly, he does cover many aspects of COM quite extensively. The first chapter is the best background material on COM that I have read. But thereafter, Box changes his approach. He then seems to lapse into gratuitous, uncontollable programming razzle-dazzle when covering COM topics. His multi-page macros are just plain confusing and distracting. [Who is his intended audience: COM neophytes or his COM cronies?] His explanations concerning his use of the subtleties of C++ are entirely too feeble. While COM is at heart a subtle C++ application, surely programming virtuosity can be de-emphasized when explaining COM basics. His examples have questionable utility. However, again, his book does fill in some of the gaps of COM that other books gloss over. But I'm still waiting for that five-star book on COM.
am 29. März 1999
The first time I read this book, I put it down. I was so lost! However, after reading some more general COM books, I came back to this one, and was able to "get through it," and was pretty satisfied with the results. It is not a book on the basics, but for understanding the "whys" of COM, I haven't found one better. The only complaints I have about the book are:
1) Although the book is pretty clear throughout, I still got lost on the monikor section. More real-world examples would help.
2) Some small spelling errors in the code tripped me up in a couple of sections.
3) I don't mind C++, but COM is supposed to be language-neutral, and it would've been great to see even more examples in VB, Java, etc.
For any COM programmer, this should be one on the bookshelves.
am 30. April 1998
It is a good book on the motivation of COM and its background. But I find the author's choice of words somewhat confusing, therefore definitely not for beginners. <Inside COM> is good for the beginners and practioners, but this book is more like an academic treatise, trying to give COM a philosophical treatment. A better title would be <The Being of COM> or <Existential COM>. I find the discussions on thread models, apartments, custom marshalling, and security to be very good, not easily available elsewhere. But I have to stare at particular words longer than usual to get IT.
By the way, on the CD that came with <Inside COM>, there is a COM spec book, com_spec.rtf in com_spec directory. Even though it is named com_spec and dated 1995, it is very readable and still relevant.