2009年8月24日 星期一

AppDomain(應用程式定義域)(M07)

認識應用程式定義域(AppDomain)
  • 是一個邏輯上的容器
  • 可以多個執行組件在一個處理程序
  • 區隔記憶體空間及存取資源
  • 增進應用程式的可靠性及效率

=>Application Domain設定目的類似於Windows作業系統的處理程序,處理程序目的是用來隔離應用程式與應用程式之間的程式碼,避免在執行過程中受到其它用程式不穩定或安全性的影響,以提高每一個單一應用程式的穩定度和安全性。
=>Application Domain像是一個邏輯上的容器,開發者可依據組件的版本控制、安全性、可靠性等考量進行組件執行環境的隔離。
=>每一Application Domain有獨立的記憶體空間及存取資源,避免遭受其它不相干組件的不良影響,進而達到組件的可靠性和執行效能。
=>通常用在多人共享的服務類型應用程式,像是Web應用程式,每個獨立連進來的使用者,需要獨立的執行空間,避免被其它使用者不同的執行階段所影響。
=>以IIS5.0的Aspnet_wp.exe為例,假設有5個人瀏覽到ASP.NET會為每個使用者建立獨立的定義域,並將ASP.Net的Assembly執行在各別的Application Domain。

程式實例

Imports System.Security
Imports System.Security.Policy

Dim newAppDomain As AppDomain
'建立應用程式定義域
newAppDomain = AppDomain.CreateDomain("NewDomain")
'載入另一個組件
newAppDomain.ExecuteAssembly("OtherApp.exe")
Label1.Text = "組件路徑:" & newAppDomain.BaseDirectory
Label2.Text = "新的定義域名稱:" & newAppDomain.FriendlyName

Label3.Text = "取得目前應用定義域名稱:" & AppDomain.CurrentDomain.FriendlyName
'卸載應用程式定義域
AppDomain.Unload(newAppDomain)

沒有留言:

張貼留言