Large-scale enterprise applications have special requirements: They need to be secure, reliable, available, efficient, and scalable. Of course, programmers can write tons of code and implement these features, but the problem is that they need to do the same for every enterprise application they develop. Reinventing the wheel is undesirable. Nevertheless, that's how the programmers traditionally used to develop enterprise applications on the Windows platform.
This paradigm changed when Microsoft introduced technologies such as Microsoft Transaction Server (MTS), and its improvement, COM+. COM+ incorporates functionality for security, reliability, availability, efficiency, and scalability as part of the operating system infrastructure. As a result, programmers need not write these features repeatedly in each application that they develop. Instead, they can just request the operating system to provide these services to the applications.
This chapter focuses on how to use various COM+ services from your .NET Framework applications. The chapter opens by discussing the evolution of the component services so that you can appreciate where they originated from.
COM+ understands the Component Object Model (COM) but does not understand .NET. However, the .NET Framework provides features by which you can expose a .NET component as a COM component. That's what I discuss next—how to expose a .NET component to COM or COM+.
The next part of the chapter discusses the architecture of component services. I discuss the declarative programming model and discuss how COM+ intercepts the cross-context calls to provide the component services.
I also discuss how to create a .NET component and to deploy, register, and configure a .NET component to use COM+ services.
Finally, I discuss a set of COM+ services such as object construction, object pooling, just-in-time activation, automatic transaction management, and queued components. I offer an insight on how each of these services works and provide systematic tutorials to illustrate how to use these services in your own applications.