Application Domain

Application Domain (viết tắt AppDomain, đây cũng là tên lớp tương ứng trong .Net) có mục đích tạo một môi trường cách ly nằm bên trong một process, tương tự như các process hoạt động trong cùng một hệ điều hành. Bạn có thể sử dụng AppDomain để nạp các assembly và thực thi các tác vụ một cách riêng biệt trong cùng process. Bài viết này sẽ cho bạn thấy cách thức sử dụng và các lợi ích mà AppDomain đem lại.

Lớp System.AppDomain

Mỗi process khi được thực thi đều tồn tại ít nhất một AppDomain mà bạn có thể truy xuất được thông qua property AppDomain.CurrentDomain. Tất nhiên AppDomain chính này sẽ được nạp assembly mscorlib của .Net để hoạt động.

Một process có thể chứa nhiều application domain và mỗi application domain này có thể chứa không hoặc nhiều Thread. Như hình minh họa sau:

dotnet-appdomain

Lớp System.AppDomain chứa khá nhiều thuộc tính và phương thức mà bạn có thể tìm hiểu chi tiết tại MSDN. Trong phần bên dưới, tôi sẽ giới thiệu một số ví dụ sử dụng AppDomain mà bạn có thể cần tới khi tạo ra các ứng dụng .Net.

Application domain có lợi ích gì?

Như trong phần giới thiệu, việc sử dụng AppDomain cũng giống như việc hệ điều hành sử dụng process để thực hiện các ứng dụng, tác vụ. Việc cách ly này giúp cho các ứng dụng hay tác vụ hoạt động độc lập và không bị ảnh hưởng lẫn nhau. Ví dụ khi một tác vụ bị lỗi, các tác vụ khác sẽ không bị ảnh hưởng và vẫn có thể hoạt động bình thường.

– Bạn có thể ngừng một ứng dụng mà không phải tắt toàn bộ process.

– Các ứng dụng hoạt động độc lập và không thể truy xuất trực tiếp đến nhau.

– Các thông tin cấu hình, mức độ bảo mật của các ứng dụng được tách riêng biệt và không ảnh hưởng lẫn nhau.

– Hạn chế tài nguyên hệ thống cần sử dụng nhờ việc thực thi nhiều ứng dụng chỉ trong một process.

Leave a Reply