Well in Microsoft, we try to provide as much prescriptive guidance as we can in how you take advantage of the frameworks and infrastructures that we have. So most of the times if someone makes the decision that they're going to utilize Enterprise Services, if they need to take advantage of distributed transactions. I guess that's the first question they really need to ask themselves: Do you need to take advantage of distributed transactions? You perhaps utilize one resource manager that's a database, another one that's a queue. And you need to bundle that (insertion, reading, etc.) in one transaction. And if the answer to that question is yes then you definitely want to take advantage of what Enterprise Services offers you. If it's not yes and you're just perhaps talking to one RM, then you probably just want to take advantage of ADO .NET and it supports local transactions directly with any RM store. If you want to take advantage of Enterprise Services you just extend from Service Component. That's part of the Enterprise Services framework. You just create a class that extends from that and then you can take full advantage of the pooling, transactions, things of that nature that Enterprise Services provide you.