Many developers have gotten the idea that .NET is all about Web services and distributed applications that rely on the Internet. In reality, .NET supports this type of development in addition to all other past forms of development. In some cases, using Web services for distributed application development isnt the correct strategy because a company might have a large investment in existing technology or might need the additional security or performance that COM+ can provide. Consequently, COM+ plays an important role in distributed application development.
In many cases, .NET developers will still need the transactional or message-based application support provided by COM+. These two applications are specific examples of the continued need for COM+ use with .NETat least for the present.
Database applications that run only on an internal LAN or WAN and need the highest level of reliability make use of the transactional support provided by COM+. A transaction tracks the data as it moves from client to server. Only completed transactions actually appear in the database. Failed transactions are rolled back so that the database remains in a stable state without data corruption.
By using asynchronous data processing, message-based applications eliminate the requirement for sender and receiver to exist at the same time. A recorder creates the message based on data the sender wants to send to the receiver. (In most cases, the client will send data and the server will receive it, but the server can also send data to the client.) Microsoft Message Queuing Services (MSMQ) manages the message queue used to hold the message until the recipient can process it. The message queue can appear on the local machine the remote machine always has a queue to store incoming messages. When a message arrives in the remote queue, a listener alerts the COM+ component to the change in queue status. A player interprets the message content for the component, which then processes the data sent by the sender.
MSMQ helps developers create disconnected applications for independent clients that is, applications that store data locally until the client has a connection to the server. In short, this technology eliminates the need to use any type of connection while the user is on the road. The server can also use queues to store messages until it has time to process them. The queue collects messages during peak periods, which the server continues processing during slow times. This technique tends to use server resources more efficiently because the application continues to operate during periods of low activity.
The final reason I discuss in this chapter for using COM+ with .NET applications is the level of security it provides. Youll see as the chapter progresses that COM+ provides role-based security , which enables you to set access requirements based on the clients role. For example, you can set security separately for managers and employees . COM+ also allows you to set security at various levels: component, interface, and method. This level of security support is more granular than that which COM provides and overcomes some configuration difficulties developers experienced with COM applications in the past.