A Common Language Runtime application domain is a mechanism (similar to an operating system process), used to isolate executed software applications from one another so that they do not affect each other. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination In computing a process is an instance of a Computer program that is being sequentially executed by a computer system that has the ability to run several computer Application software is a subclass of Computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform This is achieved by making any unique virtual address space run exactly one application and scopes the resources for the process or application domain using that address space. Virtual address space (abbreviated VAS) is a memory mapping mechanism available in modern Operating systems such as OpenVMS, UNIX, Linux
A Common Language Runtime (CLR) application domain is contained within an operating system process. The Common Language Runtime (CLR is the Virtual machine component of Microsoft's. A process may contain many application domains. This carries major advantages:
In this sense, the CLR is like a mini-operating system. It runs a single process that contains a number of sub-process, or application domains.
Direct communication cannot be achieved across application domains. However, application domains can still talk to each other by passing objects via marshaling by value (unbound objects), marshaling by reference through a proxy (AppDomain-bound objects). In its simplest embodiment an object is an allocated region of storage There is a third type of object called a context-bound object which can be marshalled by reference across domains and also within the context of its own application domain. Because of the verifiable type-safety of managed code, the CLR can provide fault isolation between domains at a much lower cost than an operating system process can. In Computer science, type safety is a property of some Programming languages that is defined differently by different communities but most definitions involve The static type verification used for isolation does not require the same process switches or hardware ring transitions that an operating system process requires.
http://codebetter.com/blogs/raymond.lewallen/archive/2005/04/03/61190.aspx domain is a logicalpart