程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Remoting基本原理及擴展機制(下)(1)

Remoting基本原理及擴展機制(下)(1)

編輯:關於C語言

讓我們在開始本節內容之前先了解以下幾個基本概念。

應用程序域

應用程序域(通常簡稱為AppDomain)可以視為一種輕量級進程。一個Windows進程內可以包含多個AppDomain。AppDomain這個概念的提出是為了實現在一個物理服務器中承載多個應用程序,並且這些應用能夠相互獨立。ASP.Net中利用AppDomain在同一個進程內承載了多組Web應用程序就是一個例子。實際上微軟曾進行過在單一進程內承載多達1000個簡單Web應用程序的壓力測試。

使用AppDomain所獲得的性能優勢主要體現在兩方面:

·創建AppDomain所需要的系統資源比創建一個Windows進程更少。

·同一個Windows進程內所承載的AppDomain之間可以互相共享資源,如CLR、基本.Net類型、地址空間以及線程。

而各個AppDomain之間的獨立性體現為以下這些特征:

·一個AppDomain可以獨立於其他的AppDomain而被卸載。

·一個AppDomain無法訪問其他AppDomain的程序集和對象。

·若沒有發生跨邊界的異常拋出,一個AppDomain擁有自己獨立的異常管理策略。這意味著一個AppDomain內出現問題不會影響到同一個進程內中的其他AppDomain。

·每個AppDomain可以分別定義獨自的程序集代碼訪問安全策略。

·每個AppDomain可以分別定義獨自的規則以便CLR在加載前定位程序集所在位置。

可以看出應用程序域是進程中的一個子單元,不過在.NET中還存在一個比應用程序域還要細粒度的單元——.Net上下文(Context)。

.Net Context

一個.NET 應用程序域能夠包含多個被稱為.NET上下文的實體。所有.Net對象都存在於上下文中,每個應用程序域中至少存在一個上下文。這個上下文稱為應用程序域的默認上下文,它在應用程序域創建的時候就創建了。下圖總結了它們之間的關系:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved