2009-05-22 9 views
5

Chúng tôi hiện đang xem xét sử dụng CAB hoặc MEF cho ứng dụng tiếp theo của chúng tôi. Tôi không thấy bất kỳ ví dụ về codeplex về cách môi giới sự kiện được xử lý cho giao tiếp kiểm soát anh chị em ruột, có lẽ tôi đã bỏ lỡ nó. Làm thế nào để kiểm soát liên lạc hoạt động trong MEF?Khung mở rộng được quản lý (MEF) so với Khối ứng dụng hỗn hợp (CAB)

Ngoài ra, chúng tôi đang có kế hoạch sử dụng Infragistics đã cung cấp các thành phần bổ sung cho khung CAB. Infragistics sẽ kiểm soát tích hợp vào MEF như thế nào?

Nhìn chung, MEF có đáng để theo đuổi một ứng dụng, phát triển nghiêm ngặt, dài 15.000 giờ không?

Trả lời

8

Tôi có thể sai nhưng tôi không nghĩ rằng MEF có bất kỳ sự kiện môi giới nào. Nó là một công cụ chế tạo tổng thể tương tự như các thùng chứa ioc nhưng được thiết kế cho một giải pháp mở rộng tổng quát hơn và khả năng mở rộng ứng dụng. Mặt khác, CAB và Prism là các khung giao diện người dùng cho phép các ứng dụng tổng hợp được tạo thành từ các thành phần giao diện người dùng. Vì các thành phần giao diện người dùng rất có thể cần giao tiếp với nhau và phản hồi các hoạt động trong các thành phần giao diện người dùng khác, nên khung cơ bản cần cung cấp cơ chế cho sự kiện (pub/sub) giữa các thành phần giao diện người dùng.

6

Nếu bạn đang sử dụng MEF với WPF và mẫu MVVM, thì các phần của bạn thường xuất các lớp ViewModel và Xem các lớp (ví dụ: DataTemplates, v.v.). Chế độ xem của bạn liên kết với ViewModel và sử dụng các thuộc tính và lệnh phụ thuộc để liên lạc qua lại. Do đó, nếu Phần A cần giao tiếp với Phần B, thì Phần A có thể nhập một tham chiếu đến ViewModel của Phần B và họ có thể thực hiện các cuộc gọi phương thức qua lại. Phần A cũng có thể đăng ký trình xử lý sự kiện cho các sự kiện của Phần B, v.v.

2

Tôi đồng ý với Scott. Các "chung" quán rượu/tiểu mô hình có vẻ thú vị nhưng hiếm khi có tôi đã có một nhu cầu cho nó. Nếu tôi muốn một thông điệp tách rời, với MEF tôi chỉ cần xác định IMessage hợp đồng và sau đó xuất một triển khai, sau đó nhập bất cứ nơi nào tôi cần. Nếu đó là thông điệp được đánh máy mạnh, tôi sẽ nhập phần chính xác mà tôi cần nói chuyện và trực tiếp gửi tin nhắn.