Ich habe eine WPF-Anwendung, die eine Schichtarchitektur mit drei konventionellen Layern verwendet: Benutzeroberfläche, Geschäftslogik und Datenschicht. Jetzt muss ich die Anwendung in vertikale Schichten nach Funktionsbereichen aufteilen (z. B. Kunde, Produkt, Bestellung). In der Zwischenzeit möchte ich die horizontale Schichttrennung innerhalb jeder vertikalen Schicht beibehalten.PRISM-Module mit mehreren Assemblies pro Modul
Ich erwäge, das PRISM Modularitätsrahmenwerk zu verwenden, um dies zu erreichen. So wird jeder Funktionsbereich (vertikale Schicht) als ein PRISM-Modul dargestellt. Da meine Module jedoch eine mehrschichtige Architektur haben, kann jedes Modul aus mehreren Baugruppen bestehen.
Basierend auf der PRISM-Dokumentation geht der ModuleCatalog davon aus, dass sich jedes Modul in einer Baugruppe befindet. Ich bin mir nicht sicher, wie ich mehrere Baugruppen zu einem Modul zusammenfassen kann. Irgendwelche Ideen, wenn das gemacht werden kann?
Bearbeiten - Ich habe vergessen zu erwähnen, dass ich die Schichten entkoppeln möchte, indem ich nicht direkt auf die implementierenden Baugruppen für die Schichten verweise. Stattdessen definiere ich die Interfaces in einem Interface-Projekt für die jeweilige Schicht, so dass nur das Interface-Projekt von der Schicht referenziert wird. Angesichts dessen benötige ich immer noch eine Möglichkeit, ein Modul über die implementierenden Assemblies für seine Layer zu informieren.
Hallo Brian, ich habe vergessen zu erwähnen, dass ich die Schichten trennen möchte, indem ich nicht direkt auf die implementierenden Baugruppen für die Schichten verweise. Stattdessen definiere ich die Interfaces in einem Interface-Projekt für die jeweilige Schicht, so dass nur das Interface-Projekt von der Schicht referenziert wird. Angesichts dessen benötige ich immer noch eine Möglichkeit, ein Modul über die implementierenden Assemblies für seine Layer zu informieren. –
Ihre Hauptantwort löste eine andere Frage aus: Würden Sie ein separates Projekt empfehlen, um die Modulklasse zu definieren? Ich habe darüber nachgedacht, die Modulklasse im UI-Layer-Projekt zu haben. Gibt es eine empfohlene Vorgehensweise zum Strukturieren eines geschichteten Moduls? –
Es spielt keine Rolle, ob Sie nur die Schnittstellenbaugruppe referenzieren. Solange Sie Ihre Implementierungen mit dem Container registriert haben, wird es nur zur Laufzeit funktionieren. –