What is exactly is an Application Domain (AppDomain) and how is it different than a process or thread?
See MSDN.
Application domains provide a more secure and versatile unit of processing that the common language runtime can use to provide isolation between applications. You can run several application domains in a single process with the same level of isolation that would exist in separate processes, but without incurring the additional overhead of making cross-process calls or switching between processes. The ability to run multiple applications within a single process dramatically increases server scalability.
An AppDomain is basically an isolated execution environment for managed code.