The terms assembly and Application Domain are often confused. While assemblies are used as the basis for type resolution and versioning, Application Domains are the basis for application isolation in the NGWS runtime. Application Domains are a construct internal to the NGWS runtime that is used to isolate applications running in the same process from each other.
There are at least two aspects to this isolation. First, we must prevent running applications from seeing or manipulating each other's memory space or other resources. Faults in one application cannot affect other applications by bringing down the entire process. An equally important aspect of isolation is the ability to allow an application to control where the NGWS runtime finds code to load on its behalf. This is important to prevent code placed on the machine by one application from inadvertently affecting other applications.