2009-05-22 15 views
5

Obecnie szukamy albo przy użyciu CAB lub MEF dla naszej następnej aplikacji. Nie widziałem żadnych przykładów na codepleksie, w jaki sposób pośrednictwo w wydarzeniach jest obsługiwane w przypadku komunikacji z rodzajem kontroli, może przegapiłem to. Jak działa komunikacja między kontrolna w MEF?Managed Extensibility Framework (MEF) a Composite UI Application Block (CAB)

Planujemy również użycie Infragistics, która dostarczyła dodatkowe komponenty do struktury CAB. Jak dobrze kontrole Infragistics zostaną zintegrowane z MEF?

Ogólnie rzecz biorąc, czy MEF jest warta realizacji przyzwoicie dużych, 15 000 godzin ścisłego rozwoju, aplikacji?

Odpowiedz

8

Mogę się mylić, ale nie sądzę, że MEF ma jakiekolwiek pośrednictwo w wydarzeniach. Jest to ogólny silnik kompozycji podobny do kontenerów ioc, ale przeznaczony do bardziej ogólnego rozwiązania rozszerzalności wtyczki i aplikacji. Z drugiej strony CAB i Prism są strukturami interfejsu użytkownika, które umożliwiają aplikacje złożone, które składają się ze składników interfejsu użytkownika. Ponieważ komponenty interfejsu użytkownika najprawdopodobniej będą musiały się ze sobą komunikować i reagować na działania w innych komponentach interfejsu użytkownika, podstawowa struktura musi zapewniać mechanizm do wystąpienia (pub/sub) między składnikami interfejsu użytkownika.

6

Jeśli używasz MEF z WPF i wzorem MVVM, twoje części zazwyczaj eksportują klasy ViewModel i klasy View (np. DataTemplates itp.). Twój widok wiąże się z ViewModel i używa właściwości zależności i poleceń do komunikacji w tę iz powrotem. Dlatego jeśli część A wymaga komunikacji z częścią B, wówczas część A może zaimportować odwołanie do ViewModel części B i może wykonywać wywołania metod tam iz powrotem. Część A może również rejestrować programy obsługi zdarzeń dla zdarzeń w części B, itp.

2

zgadzam się ze Scottem. "Generyczny" model pub/sub wydaje się interesujący, ale rzadko go potrzebuję. Jeśli chcę mieć komunikat odsprzężony, przy MEF po prostu zdefiniuję wiadomość IMESSage, a następnie wyeksportuję implementację, a następnie zaimportuję ją tam, gdzie jej potrzebuję. Jeśli jest to mocno napisana wiadomość, zaimportuję dokładną część, z którą muszę porozmawiać i bezpośrednio ją przesłać.

Powiązane problemy