My Development Notes

By Haemoglobin
3/10/2010 (revision 1)

Application Domains

 OS
 |__Process
    |___.NET Runtime
        |__App Domain 1
            |__Assembly 1
            |__Assembly 2
        |__App Domain 2
            |__Assembly 2
            |__Assembly 3
                |__App Domain 1 
                |__App Domain 2
 

Benefits

ReliabilityDoes not crash the whole process or affect other app domains.
EfficiencyCan load large assembly into app domain and is removed from memory when app domain removed.
AppDomain d = AppDomain.CreateDomain("NewDomain"); 
AppDomain.CurrentDomain.FriendlyName; 
d.FriendlyName; 
d.ExecuteAssembly("Assembly.exe"); 
d.ExecuteAssemblyByName("Assembly"); 
d.Load("Assembly.dll");
AppDomain.Unload(d); 

object[] hostEvidence = { new Zone(SecurityZone.Internet) } 
Evidence appEvidence = new Evidence(hostEvidence, null); 
appEvidence.AddHost(new Zone(..)); 

AppDomainSetup ads = new AppDomainSetup(); 
ads.ApplicationBase
ads.DisallowBindingRedirects
ads.DisallowCodeDownload
d = AppDomain.CreateDomain("NewDomain", appEvidence, ads); 

Comments

Powered by BlogEngine.NET 1.6.1.0 | Design by styleshout | Enhanced by GravityCube.net | 1.4.5 Changes by zembian.com | Adapted by HamishGraham.NET
(c) 2010 Hamish Graham. Banner Image (c) Chris Gin