| 

.NET C# Java Javascript Exception

3
Hi

Ich wollte unser MVVM WPF/Prism Projekt schon mal für einen Blend UI Designer aufteilen. Bin mir aber nicht ganz sicher wie ich unsere Projekte Aufteilen soll. Hie mal ein Vorschlag:

Contracts Projekt für Interfacees
- VM Interfaces
- Model Command Interfaces

View Projekt
- Views (XAML und Code Behind)
- VM Implementierung
- UICommands Implementierung (mit Aufrufe von ModelCommands)
- IOC/DI Registrierung der eigenen Implementierungen

"Code" Projekt
- Prism Modules
- Presenter
- ModelCommands Implementierung
- IOC/DI Registrierung der eigenen Implementierungen

Theme Projekt
- für UI Controls und Theme

Ist das der richtige Weg? oder gibt es eine einfachere Methode?

thx

Gerhard
07.02.2011
GerhardK 398 1 7
4 Antworten
3
Grundsätzlich finde ich die Aufteilung gut.

Bei den VMs/Commands ist die Frage, ob du sie unabhängig von der View ausgetauscht haben möchtest (tritt der Fall ein?) bzw. wie diese in deinem Fall genau konfiguriert werden. Wenn du die Möglichkeit hast, VMs aus einem anderen Projekt zu injecten (um die Default-Implementierung auszutauschen), dann können sie durchaus drinnen bleiben. Es stellt sich auch die Frage, wie viel Logik deine VMs mitbringen, oder ob eine Anpassung in deinem Fall auch eine Anpassung der View mit sich bringt.
07.02.2011
Norbert Eder 383 4
1
Ich finde deine Aufteilung ziemlich gut. Ich nehme mal an, mit VM Implementierung meinst du die ViewModels? Die würde ich auf jeden Fall in das Code-Projekt nehmen, damit sie unabhängig von der View bleiben.
07.02.2011
Andy Stumpp 509 1 6
1
Sehe ich genauso. Es hängt davon ab, was später einmal ausgetauscht werden sollte/könnte. Wie ich die Erfahrung gemacht habe, komme ich mit einem einzigen ViewModel aus (es liegt im Code/Core-Package), injecte aber unterschiedliche DataAccess-Implementierungen, damit die Anwendung sowohl unter WPF als auch Silverlight mit derselben Codebasis lauffähig ist.

Die Aufteilung erscheint anfangs recht aufwändig, vor allem wenn die Software auf Teilsystemen basiert, die allesamt diese Struktur aufweisen. Die Projektstruktur insgesamt profitiert aber enorm davon, da unterschiedliche Abstraktionsebenen auch physisch getrennt sind (unterschiedliche Projekte).

Wenn du Zeit findest und eine alternative View-Implementierung anfertigst und zum Laufen bringst, wird es dir wie Schuppen von den Augen fallen, wie man so schön sagt.
07.02.2011
Andy Stumpp 509 1 6
0
Hi, ja mit VM hatte ich ViewModels gemeint.
Sollte die Implementierung der UICommands auch in der View sein?
Die VM Implementierung habe ich deshalb in die View genommen, um für Blend Beispieldaten anzulegen. (Besteht fast ausschließlich aus getter und setter)
07.02.2011
GerhardK 398 1 7

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH