Every .net program is executed by a CLR. CLR will be executing multiple programs at the same time.
It is important to ensure that one process should not affect the other. An application domain is a mechanism to provide this isolation between process/programs. We will be able to configure application domain for each process and also different security levels can set.