SoC für den Anfang
Ihre Anwendung in mehrere Baugruppen aufteilen, die IoC (Schnittstellen + Implementierungen) verwenden:
- Anwendungsmodellbaugruppe - alle anderen Baugruppen verweisen auf diese Baugruppe, da diese Klassen für die Kommunikation untereinander verwendet werden - sie werden meist nur POCOs sein
- Präsentationsbaugruppe - verweist auf das Anwendungsmodell und die Geschäftsdienste - dies ist entweder WPF oder Silverlight, in jedem Fall ist MVVM zu verwenden, um das Testen zu erleichtern
- Business Services Assembly - Referenzen App Model und Data Repositories Assembly
- Daten-Repositories - diese definieren die Repositories, die die Daten aus den Speichern beziehen
Dann würde ich drei weitere erstellen:
- Dateidatenanbieter
- Datenbankanbieter
- Würfelanbieter
Datenarchive würden auf alle drei verweisen und sie nutzen, um die erforderlichen Daten bereitzustellen.
Wenn die Konfiguration sehr komplex wird und viele Funktionen enthält, sollten Sie sie in einer separaten Assembly unterbringen und über die Business Services Assembly referenzieren.
Welche MVVM-Bibliothek soll verwendet werden?
Da Sie die Zeit erwähnt haben, nehme ich an, dass es Ihnen schwer fallen wird, Ihre Frist einzuhalten. Wenn Sie MVVM verwenden (was ich vorgeschlagen habe), schlage ich auch vor, dass Sie nicht ein komplettes PRISM (auch bekannt als Composite Application Guidance von P&P) verwenden, sondern eher mit MVVM Light Werkzeugkasten . Sie werden weniger Zeit brauchen, um auf den Zug aufzuspringen.
Code-Erstellung
Wo es angebracht ist, empfehle ich Ihnen, das Potenzial von T4 voll auszuschöpfen. Ich verwende es, um importieren Aufrufen gespeicherter Prozeduren, um die Verwendung magischer Zeichenketten beim Aufrufen gespeicherter Prozeduren (und die Verwendung ihrer Parameter) zu vermeiden. Prüfen Sie mein Blogbeitrag auch darüber.
DAL-Technik/Bibliothek
Schreiben Sie keinen eigenen Datenzugriffscode, der Dinge wie SqlConnection
/ SqlConnection
Funktionalität. Es gibt heute viele Bibliotheken/Technologien für Datenzugriffsschichten, die Sie verwenden können, ohne das Rad neu erfinden zu müssen. Wenn Sie nHibernate kennen, dann verwenden Sie es. Wenn Sie EF kennen, dann verwenden Sie das. Wenn Sie etwas anderes kennen, verwenden Sie das. Alles, was Ihnen so viel Code wie möglich liefert/generiert, der bereits getestet und debugged ist.
Es läuft also alles auf eine Frage hinaus:
DRY + YAGNI
auch bekannt als Wiederholen Sie sich nicht y Du wirst es nicht brauchen \= Übertreiben Sie es nicht mit dem Code.
Agile Entwickler sollen faul sein
Sie sollten nur so viel entwickeln, wie nötig ist, und nicht mehr! TDD bietet diesen Prozess implizit durch die Schritte Rot => Grün => Refactor.