【.NET】应用程序域自理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/It_sharp/article/details/82955003

1、以前使用进程边界来隔离在同一台计算机上运行的应用程序。
2、在.NET中应用程序有了一个新的边界:应用程序域。
他是一个用于隔离应用程序的虚拟边界。为了禁止不应交互的代码进行交互,这种隔离是必要的。.NET的应用程序在域层次上进行隔离,一个域中的应用程序不能直接访问另一个域中的代码和数据。
3、好处:一个进程里可以运行多个域,而不会造成进程间调用或切换等方面的额外开销。
多个域中可以轻松共享数据或直接访问彼此的数据。这种代码同运行同一个进程但域不同的类型安全代码一起运行时是安全的。在一个进程内运行多个应用程序的能力显著增强了服务器的可伸缩性。
4、应用程序域是进程中承载程序集的逻辑分区,在应用程序域当中,存在更细粒度的用于承载.NET对象的实体,那就是.NET上下文Context
5、所有的.NET对象都存在于上下文中,每个AppDomain当中至少存在一个默认上下文(context 0)
6、一般情况下,应用程序域中的对象不能被外界的对象访问,MarshalByRefObject的功能允许跨应用程序域边界访问对象
7、消息接收器机制 在.NET上下文的接口当中存在着一个消息接收器负责检测拦截和处理信息,当对象是MarshalByRefObject的子类时候,CLR将会建立透明代理,实现对象与消息之间的转换

猜你喜欢

转载自blog.csdn.net/It_sharp/article/details/82955003