Application domains are subdivided further into contexts. Think of a context as a group of objects that share the same rules of use. These rules include such things as just-in-time activation, security, synchronization, thread affinity, transactions, and security. Under ordinary circumstances, application domains contain only one context: the default context. However, in some situations, the application domain contains additional contexts. Objects that support transactions (provided by COM+), for instance, would be contained in a separate context. These objects are known as context-bound objects.
Now that you better understand the execution environment of a .NET executable, let's look at the executable itself.