Tôi đã xem qua bài viết thú vị này: Làm thế nào tôi yêu thích khả năng tương tác của COM trên CodeProject, điều đó khiến tôi suy nghĩ ...
Tác giả lập luận rằng họ không muốn bất kỳ COM-ities nào trong thư viện .NET của họ vì nó làm mất đi vẻ đẹp của thư viện .NET của họ. Thay vào đó, họ thà viết một thư viện Interop riêng để lộ thư viện .NET của họ thành COM. Thư viện Interop này sẽ xử lý thực tế là COM không hỗ trợ Trình xây dựng với Tham số, Phương thức quá tải, Generics, Kế thừa, Phương thức tĩnh, v.v.
Và trong khi tôi nghĩ rằng nó rất mới lạ, không phải nó chỉ tuân theo dự án sao?
- Bây giờ bạn cần đơn vị kiểm tra thư viện .NET VÀ thư viện Interop.
- Bây giờ bạn cần dành thời gian để tìm ra cách làm việc xung quanh thư viện .NET đẹp của bạn và đưa nó ra COM.
- Bạn cần, hiệu quả, tăng gấp đôi hoặc gấp ba số lượng lớp học của bạn.
Tôi chắc chắn có thể hiểu nếu bạn cần thư viện của mình để hỗ trợ cả COM và không COM. Tuy nhiên, nếu bạn chỉ có ý định sử dụng COM thì kiểu thiết kế này có mang lại lợi ích gì mà tôi không thấy không? Bạn chỉ đạt được những lợi ích của ngôn ngữ C #?
Hoặc, nó có làm cho phiên bản thư viện của bạn dễ dàng hơn bằng cách cung cấp cho bạn một trình bao bọc không? Nó có làm cho Bài kiểm tra đơn vị của bạn chạy nhanh hơn bằng cách không yêu cầu sử dụng COM không?