Operating systems and runtime environments typically provide some form of isolation between applications. For example, Windows uses processes to isolate applications. This isolation is necessary to ensure that code running in one application cannot adversely affect other, unrelated applications. Application domains provide an isolation boundary for security, reliability, and versioning, and for unloading assemblies. Application domains are typically created by runtime hosts, which are responsible for bootstrapping the common language runtime before an application is run.
Appdomain is a zone in a process in witch some objects are processing together. It is a sort of isolation if an error occurs in Appdomain is will not affect the entire process
Application domain or AppDomain is isolation of an application from another application.Win32 processes provide isolation by having distinct memory address spaces. Objects in different application domains communicate either by transporting copies of objects across application domain boundaries. But it is also important to communicate to each other for various needs. And the communication between the objects is done by MarshalByRefObj.