发展历程 .net中的应用程序域是什么? -技术百科的定义

.net中的应用程序域是什么? -技术百科的定义

目录:

Anonim

定义-应用程序域是什么意思?

应用程序域是围绕.NET应用程序创建的逻辑隔离边界,因此应用程序不会相互访问或相互影响。 它是一个轻量级进程,具有自己的一组代码,数据和配置设置。 应用程序域是由运行时主机创建的,运行时主机由公共语言运行时(CLR)调用以加载需要执行的应用程序。


在.NET之前,应用程序之间的隔离边界是加载它们的进程。 每个进程都有自己的专用虚拟内存,不能直接访问另一个进程的内存。 应用程序域具有与流程相似的功能。


应用程序域具有以下功能:

  1. 通过使用较少的进程来执行多个应用程序,以最佳方式利用系统资源。
  2. 在无法共享数据的情况下以及需要在不影响流程的情况下卸载不稳定任务的情况下,通过使用任务隔离来确保可靠性。
  3. 通过执行长期运行的进程来提高效率,这些进程很少使用具有最佳内存的大型扩展。
  4. 通过限制从另一个应用程序的代码或资源直接访问在一个应用程序中运行的代码的应用程序安全性。
  5. 通过为每个应用程序域指定配置详细信息来进行安全控制。

技术百科解释了应用领域

应用程序域的不同之处在于,CLR在一个进程中加载​​和执行多个.NET应用程序的方式。 它不允许直接访问已加载应用程序的内存。 它由.NET Framework的CLR管理,而进程由OS管理。 由于CLR具有可验证的托管代码类型安全性的固有功能,因此它提供的应用程序域之间的故障隔离比进程的开销少。 同样,多个线程可以驻留在应用程序域中,它们可以自由跨越应用程序域边界。


例如,ASP.NET是运行时主机,它为访问网站的每个用户创建多个应用程序域。 还可以为需要隔离代码或仅在使用扩展时加载扩展的应用程序创建和配置它们。 这一事实使应用程序域在使用插件和其他不受信任的代码的情况下很有用。 它们在最小化使用大型DLL的应用程序的工作集方面也很有用。


为了启用不同应用程序域中的对象之间的通信,使用了以下三种类型的对象之一:

  1. 按值编组:传递给调用应用程序域的对象的完整副本。 当出于性能原因可以移动对象的状态时使用此选项。
  2. 引用元帅(MBR):将对象的代理传递给客户端。 当对象的状态必须保留在应用程序域内时使用。
  3. 上下文绑定:跨域或在其自己的应用程序域的上下文中使用的MBR对象。
此定义是在.NET上下文中编写的
.net中的应用程序域是什么? -技术百科的定义