Witam was serdecznie. Ostatnio zacząłem się bawić w PRISM bo chcę stworzyć aplikację, która obsługuje różne moduły. Mam powiedzmy moduły:

  • Moduł A
  • Moduł B
    ...
  • Moduł Z

Każdy moduł to osobny projekt w solucji. Dodatkowo mam projekt Core, który jest rdzeniem i Launcher, który odpowiada właśnie za aplikację(bootstrapper).
Nie wiadomo ile będzie modułów podłączonych. Moduły są pobierane z katalogu Modules rekurencyjnie z użyciem RecursiveDirectoryCatalog z MefContrib. Każdy moduł ma swój katalog w Modules. Mogą być różne kombinacje modułów. Dla mnie ważne jest stworzenie w Shellu wyboru modułu.W modułach jest stworzona kontrolka ModuleButton, która odpowiadałaby za wyświetlenie okna już w projekcie modułu ze swoją implementacją. Niestety nie spotkałem się z żadnym podobnym przykładem jak można byłoby zrobić listę modułów, które są dynamicznie ładowane i wyświetlane ich kontrolki w jednym region, żeby można byłoby je odpalić. Jest przykład Modularity z repozytorium Prism'a, ale tam już z góry są ustalone moduły, które mają być ładowane co niekoniecznie spełnia moje wymagania.

Generalnie efekt jaki chciałbym uzyskać to w gridzie zamieścić buttony, gdzie rejestruję je w regionie i są one ustawiane podczas uruchomienia programu i użytkownik może wybrać moduł, który potrzebuje. Z przykładu byłbym w stanie to zrobić, ale tam na sztywno są ustawione moduły, które można załadować, a nie chcę żeby np. użytkownik miał możliwość uruchomienia modułu, który nie jest dla niego. Użytkownik dostaje paczkę tylko z wybranymi modułami.

Niestety, żeby znaleźć informacje o tworzeniu w Prism to musiałem się nieźle nakopać. Przejrzałem kurs z Pluralsight o Prism, ale tam niestety nie było przykładu, który by mi to wyjaśnił. Jakby ktoś mógł mnie nakierować to byłbym wdzięczny ;) Nie wykluczam, że projekt aplikacji jest błędnie przeze mnie zaplanowany i jeżeli są jakieś lepsze metody to chętnie wysłucham porad.

Pozdrawiam