Writing a transactional COM+ component with VB.NET is as simple as applying the Transaction attribute to a class that inherits from System.EnterpriseServices.ServicedComponent:
Imports System.EnterpriseServices< Transaction()> Public Class BankTransfer Inherits ServicedComponent ' ...End Class
If you don’t pass any argument to the attribute’s constructor, the class is marked as requiring a transaction. You can explicitly set the transaction behavior by passing a TransactionOption enumerated value, which can be Disabled, NotSupported, Supported, Required, and RequiresNew:
< Transaction( TransactionOption.RequiresNew )>
Even more interesting, you can set the isolation level for the transaction being used, by setting the Isolation property, which in turn can take a TransactionIsolationLevel enumerated value (Any, ReadUncommitted, ReadCommitted, RepeatableRead, or Serializable), and even set the transaction timeout by setting the Timeout property, if you want to override the global timeout value:
< Transaction( TransactionOption.RequiresNew, _ Isolation:=TransactionIsolationLevel.Repeatable, Timeout:=10 )>