Earlier, I stated that .NET lets multiple applications run within a single process under different application domains and that the runtime provides isolation between application domains. Let's see how this is done.

To provide isolation, the runtime ensures that an object from one application domain cannot directly invoke a method on another object that belongs to a different AppDomain. For the same reason, an object from one AppDomain cannot be directly passed to another AppDomain. This holds true irrespective of whether the domains reside in the same process, two different processes on the same machine, or processes on two different machines. From the runtime's perspective, an object that belongs to a domain that is different than ...

Get .NET Programming: A Practical Guide Using C# now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.