我在采访中不断被问及AppDomains,我知道基础知识:
- 它们是应用程序中的隔离级别(使它们与应用程序不同)
- 他们可以有线程(使它们与线程不同)
- 一个appdomain中的异常不会影响另一个
- appdomains无法访问彼此的内存
- 每个appdomain都可以有不同的安全性
我仍然没有得到使他们成为必要的东西.当你使用一个时,我正在寻找一个合理的具体情况.
回答:
- 不受信任的代码
- 核心应用程序受保护
不受信任的/第三方插件被禁止通过隔离在具有安全限制的单独appdomain中来破坏共享内存和对注册表或硬盘驱动器的非授权访问,从而保护应用程序或服务器.例如ASP.NET和SQL Server托管组件代码
- 可信代码
- 稳定性
应用程序分为安全,独立的特性/功能
- 架构灵活性
自由在单个CLR实例或每个程序中运行多个应用程序.
还要别的吗?