大家好,精選小編來為大家解答以上的問題。什么叫應用程序和軟件,什么叫應用程序域很多人還不知道,現在讓我們一起來看看吧!

應用程序是用在同一應用程序范圍內創建的對象建立的(即,從應用程序的入口點開始,沿著對象激活序列的任何地方)。應用程序域有助于將一個應用程序中創建的對象與其他應用程序中創建的對象隔離開來,以便可以預測運行時行為。多個應用程序域可以存在于單個進程中。以前,進程邊界用于隔離在同一臺計算機上運行的應用程序。每個應用程序都被加載到一個單獨的進程中,該進程將該應用程序與同一臺計算機上運行的其他應用程序隔離開來。隔離這些應用程序的原因是內存地址是與進程相關的;在目標進程中,從一個進程傳遞到另一個進程的內存指針不能以任何有意義的方式使用。此外,您不能在兩個進程之間進行直接調用。相反,您必須使用代理,它提供了一定程度的間接性。托管代碼必須通過驗證過程才能運行(除非管理員授權跳過驗證)。該驗證過程將驗證以下內容:這些代碼是否會嘗試訪問無效的內存地址?你會嘗試執行一些導致進程(這段代碼運行的進程)無法正常工作的其他操作嗎?通過此驗證測試的代碼將被認為是類型安全的。因為公共語言運行庫可以驗證代碼是否是類型安全的,所以它可以提供與進程邊界相同的隔離級別,并且它的性能開銷要低得多。應用程序域提供了一個安全且通用的處理單元,公共語言運行庫可以使用它來提供應用程序之間的隔離。您可以在具有相同隔離級別的單個進程中運行多個應用程序域(存在于不同的進程中),而不會導致額外的開銷,如進程間調用或進程間切換。在一個進程中運行多個應用程序的能力顯著增強了服務器的可伸縮性。隔離應用程序對于應用程序安全性也非常重要。例如,您可以在一個瀏覽器進程中運行多個Web應用程序中的控件,同時防止這些控件訪問彼此的數據和資源。應用程序域提供的隔離有以下優點:一個應用程序中的錯誤不會影響其他應用程序。因為類型安全代碼不會導致內存錯誤,所以使用應用程序域可以確保在一個域中運行的代碼不會影響進程中的其他應用程序。可以停止單個應用程序而不停止整個進程。使用應用程序域允許您卸載在單個應用程序中運行的代碼。請注意,不能卸載單個程序集或類型。只能卸載整個域。在一個應用程序中運行的代碼不能直接訪問其他應用程序中的代碼或資源。為了實施這種隔離,公共語言運行庫禁止不同應用程序域中的對象之間的直接調用。要在域之間傳輸對象,您可以復制它們或通過代理訪問它們。如果復制一個對象,對該對象的調用是一個本地調用。也就是說,調用方和被引用的對象在同一個應用程序域中。如果通過代理訪問一個對象,那么對該對象的調用就是遠程調用。在這種情況下,調用方和被引用的對象位于不同的應用程序域中。域間調用使用與兩個進程之間或兩臺計算機之間的調用相同的遠程調用結構。代碼的范圍由它運行的應用程序決定。換句話說,應用程序域將提供配置設置,如應用程序版本策略、它訪問的任何遠程程序集的位置以及加載到域中的程序集的位置信息。授予代碼的權限可以由代碼運行的應用程序域控制。
本文到此結束,希望對大家有所幫助。