DLL - Thư viện liên kết động (Dynamic Link Library)
Khi một assembly được biên dịch dưới dạng thư viện lớp (class library) và cung cấp các kiểu dữ liệu cho các assembly khác sử dụng, nó sẽ có phần mở rộng file .dll (dynamic link library).
- Không thể thực thi độc lập: DLL không thể chạy trực tiếp vì chúng được thiết kế để được tải và thực thi bởi các chương trình khác.
- Chia sẻ tiến trình và bộ nhớ: DLL sẽ chia sẻ cùng tiến trình và không gian bộ nhớ của ứng dụng gọi nó.
- Tái sử dụng cao: Chúng có thể được tái sử dụng cho các ứng dụng khác. Chỉ cần người lập trình biết tên và tham số của các hàm, thủ tục trong file DLL.
EXE - Định dạng file thực thi (Executable File)
Khi một assembly được biên dịch dưới dạng ứng dụng, nó sẽ có phần mở rộng file .exe.
- Thực thi độc lập: EXE có thể chạy độc lập mà không cần ứng dụng chủ.
- Tiến trình và bộ nhớ riêng: EXE tạo ra tiến trình và không gian bộ nhớ riêng biệt cho mình.
Tóm tắt sự khác biệt chính
| Đặc điểm | DLL | EXE |
|---|---|---|
| Phần mở rộng | .dll | .exe |
| Chạy độc lập | Không | Có |
| Tiến trình | Chia sẻ với caller | Tự tạo mới |
| Bộ nhớ | Chia sẻ | Riêng biệt |
| Mục đích | Thư viện dùng chung | Ứng dụng hoàn chỉnh |