About IDO extension classes

An IDO extension class is a .NET class that allows developers to extend the functionality of an existing IDO by adding methods and event handlers. IDO extension classes are compiled into a .NET class library assembly and stored in the IDO metadata database. The IDO runtime service loads these assemblies on demand and calls methods and event handlers in the extension classes in response to IDO requests.

An extension class is short-lived; it is created at the start of a request and disposed of immediately when the response is completed. Therefore, no state should be stored in an extension class.

Any public class in an IDO extension class assembly can be identified as the extension class for an IDO in the IDO metadata database.

If the entry point IDO method is marked as Transactional, then all IDO calls and direct database calls are wrapped in the same transaction within the context of that method. UpdateCollection and LoadCollection requests are always executed in a transaction, with the exception that a caller can specify on UpdateCollection that each row be executed in its own transaction. There is no way to submit multiple IDO requests from outside the IDO runtime and combine those into a single transaction, but within a single request the developer has full control over the transaction scope.

IDO extension class assemblies are .NET Framework class libraries that are created using any of the .NET languages.