COM+ is not a radical departure from COM—it is the next stage of evolution of the COM programming model. COM was originally designed as a minimalist's component architecture. With the advent of the three-tier programming model, applications have become more complex. To help developers who work in this new world, COM+ offers a richer set of services than was available in COM. These services evolved from the technology previously known as Microsoft Transaction Server (MTS) and include features such as automatic transactions, role-based security, load balancing, object pooling, queued components, the in-memory database, and an external publish-and-subscribe event model.
COM+ offers many powerful and useful run-time services that save you the effort of building similar services yourself. While working on this book, we came to realize that it is impossible to explain these services without first explaining the fundamental component model at the heart of COM+. Whether or not you use these services in your components—for some developers, COM+ services offer little advantage1—you must understand the fundamental COM+ programming architecture before you can use COM+ effectively.
Inside COM+ Base Services describes the fundamental component model at the core of COM+. Once you understand the issues involved in building software components, you'll be able to decide where and how to use the COM+ component services effectively. Inside COM+ Component Services (forthcoming from Microsoft Press) covers these services in detail, along with issues involved in building multitier enterprise applications.
In this book, we make two assumptions—that you're interested in learning about COM+ and that you're familiar with a modern programming language such as C++, Microsoft Visual Basic, or Java. One of the central tenets of COM+ is the concept of language neutrality, so we've structured Inside COM+ Base Services around that idea. Although you can build COM+ components in a wide variety of development environments, we focus on the most popular trio: C++, Visual Basic, and Java. Visual Basic and Java developers will learn a lot from this book even though these languages hide a large part of the COM+ infrastructure. In many cases, we present examples in C++ and then show how components written in higher-level languages can tie into the same functionality. However, you must understand the fundamentals of C++ in order to use many of the sample programs.
Remember the Sojourner rover that roamed the surface of Mars during the summer of 1997? It ran on an 8-bit Intel 80C85 processor containing only 6500 transistors (compared with 5.5 million transistors in a Pentium). It had a radio modem capable of 9600 bps and was powered by solar energy and nonrechargeable lithium D-cell batteries. It was a feat of modern engineering achieved with the most basic components. In a less dramatic way, COM+ is like that—it consists of a fundamental set of ideas that can give rise to some amazingly powerful systems.
To run the code on the companion CD, you will need Microsoft Visual Studio 6.0 and Microsoft Windows 98 or Microsoft Windows NT 4.0. (Microsoft Windows 2000 is required for some chapters.)
Thanks to Eric Stroo, our acquisitions editor, for guiding yet another book to a successful conclusion. Mary Kirtland and Saji Abraham of Microsoft Corporation supported us throughout this project by answering many questions. Thanks to Eric Maffei and the rest of the MSJ gang. Thanks to Alice Turner, the project editor, Marc Young, the technical editor, and Ina Chang, the manuscript editor, for their hard work and dedication to this book.