An Application Domain is a light weight process and provides
a logical and physical isolation from another .NET application. This ensures
that the Applications can work independent and isolated of each other. An
Application Domain is created by the Common Language Runtime (CLR) and it
ensures that if one Application Domain crashes or goes down, it does not in any
way effect the functioning of another Application Domain. Multiple .NET
applications can be executed in one single process by loading these
applications in separate Application Domains. Several threads can be executing
in a single application domain at any given time and a particular thread is not
confined to a single application domain. In other words, threads are free to
cross application domain boundaries and a new thread is not created for each
application domain. The following are the benefits of Application Domains.
Isolation of code, data and configuration information of one
application from another
A failure in one application will not affect the other