domain is the boundary within which an application runs. A process can
contain multiple application domains. Application domains provide an
isolated environment to applications that is similar to the isolation
provided by processes. An application running inside one application
domain cannot directly access the code running inside another
application domain. To access the code running in another application
domain, an application needs to use a proxy.