5 Stimmen

Tipps zum Entwurf einer .Net-Framework-Anwendung

Können Sie mir bitte einige Tipps/Richtlinien für die Architektur, das Design und die Implementierung einer .net Framework-Anwendung mit den unten angegebenen Anforderungen geben?

  1. Es handelt sich um ein Analysewerkzeug, das Daten aus Dateien, Sql-Datenbanken und eventuell Würfeln abruft. Die Datenschicht sollte also in der Lage sein, dies zu verarbeiten. Die Middleware sollte völlig unabhängig von den anderen Schichten sein und benötigt daher wahrscheinlich einen IoC-Container (welchen würden Sie empfehlen)
  2. Sie wird im lokalen Intranet bereitgestellt.
  3. Die Frontschicht könnte in Zukunft eine WPF-Anwendung oder Silverlight sein (im Moment konzentriere ich mich auf Silverlight, aber der Punkt ist, dass es sich ändern wird)
  4. Es sollte einfach sein, es in Zukunft anzupassen und zu verbessern, ohne dass ein Großteil des Codes geändert werden muss, da der Rahmen für viele Kunden eingesetzt werden wird.
  5. Ich brauche eine Möglichkeit, die Konfigurationsinformationen zu speichern, die von der Anwendung beim Laden von Ereignissen abgeholt werden, um das Aussehen der Anwendung festzulegen.

Ich habe zwei Monate Zeit für die Umsetzung und bin auf der Suche nach so vielen Tipps wie möglich.

5voto

Robert Koritnik Punkte 100480

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.

2voto

Chris O Punkte 4983

Ich würde die Verwendung von MVVM und Test Driven Development empfehlen. Die MVVM wird Ihnen eine gute Trennung zwischen der Front- und Middleware geben, und die TDD wird helfen, das Chaos zu kontrollieren, das mit jeder nicht-trivialen App-Entwicklung kommt.

2voto

Tom B Punkte 2122

Werfen Sie einen Blick auf die Leitfaden für die Anwendung von Verbundwerkstoffen von Microsofts Patterns and Practices Group. Es entspricht vielleicht nicht genau dem, was Sie tun, aber es wird Ihnen einige gute Ideen liefern.

1voto

Oppositional Punkte 10961

Vom architektonischen Standpunkt aus gesehen, empfehle ich einen Blick auf die Microsoft Leitfaden zur Anwendungsarchitektur . Da Sie bereits den Microsoft-Technologie-Stack verwenden, würde ich die Verwendung von Microsoft Einheit für IoC. Sie haben angedeutet, dass Ihre Präsentationsschicht WPF oder Silverlight verwenden könnte, also schauen Sie sich die Verwendung von Windows Communication Foundation da Sie in Silverlight bei der Kommunikation mit Ihrer Datenschicht etwas eingeschränkt sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X