In 99% of cases, I would avoid additional AppDomains. These are, in fact, separate processes. You must march data from one domain to another, which adds complexity and performance problems.
People tried to use AppDomains to get around the problem that you cannot unload assemblies after they are loaded into AppDomain. This way you create a second AppDomain where you can load your dynamic assemblies and then unload the full AppDomain to free up memory associated with the assemblies.
If you don’t need to dynamically load and unload assemblies, you don’t really have to worry about them.
Steven
source share