インタビューで AppDomains についてよく聞かれますが、基本的なことは知っています。
- それらはアプリケーション内の分離レベルです(アプリケーションとは異なります)
- それらはスレッドを持つことができます(スレッドとは異なります)
- あるアプリドメインの例外は別のアプリドメインには影響しません
- アプリドメインは互いのメモリにアクセスできません
- 各アプリドメインは異なるセキュリティを持つことができます
私はまだそれらを必要とするものを理解していません。合理的な具体的な状況を探しています。
答え:
- 信頼できないコード
- コア アプリケーションの保護
信頼されていない/サード パーティのプラグインは、セキュリティ制限のある別のアプリケーション ドメインに分離することで、共有メモリの破損やレジストリまたはハード ドライブへの無許可のアクセスを禁止し、アプリケーションまたはサーバーを保護します。例: ASP.NET および SQL Server ホスティング コンポーネント コード - 信頼できるコード
安全で独立した機能に分割された安定性アプリケーション- アーキテクチャの柔軟性
1 つの CLR インスタンス内で複数のアプリケーションを実行したり、各プログラムを個別に実行したりできる自由。
他に何か?