Frage

Ich werde ein Projekt meiner eigenen beginnen, die ASP.NET MVC + Fluent NHibernate sein wird. Ich möchte Test-First-Ansatz so viel verwenden, wie ich kann. Also, wo genau ich ab? Datenbank-Schema? Domain-Modell? Mapping Domain-Modell-Klassen in die Datenbank?

War es hilfreich?

Lösung

Wenn Sie in Schreiben von Tests wenig Erfahrung haben, ist es am einfachsten aus dem Domänenmodell zu starten (oder ein höheres Niveau knapp unterhalb der UI). Wenn Sie das Design des Domain-Modell mit TDD getrieben haben, dann werden Sie wissen, dass das, was das Datenbankschema wie sein muss. Es kann gut sein, eine Datenbank mit dem System zu verschieben, die Einführung, denn mit Datenbank-Schema Migration beschäftigen wird einigen Aufwand zur Entwicklung hinzuzufügen. Und das wird auch zu einem besseren Design führen, denn dann wird das Domain-Modell besser aus der Datenbank Schicht entkoppelt werden.

Wenn Sie in Schreiben von Tests und in TDD qualifiziert sind, kann es vorteilhaft sein, von einem End-to-End-Test starten (in diesem Fall würden sie gegen die Web-Oberfläche geschrieben werden) und eine dünne Scheibe von Funktionalität herzustellen, die Berührungen alle architektonischen Teile des Systems (wie in GOOS empfohlen). Mit anderen Worten, erstellen Sie ein wandelndes Skelett . Die Vorteile dieses Ansatzes sind, dass (1) Sie werden in der Lage sein, um die Integrationsprobleme gleich zu Beginn, (2), wenn die End-to-End-Tests verwendet werden, anzugehen und zu lösen, das Design zu fahren, kann es Ihnen die Umsetzung zu vermeiden helfen flüssige Teile, und (3) die Schwierigkeiten, die End-to-End-Tests zu schreiben Druck Sie die Architektur zu verbessern und die Überwachung Haken hinzuzufügen, die auch bei der Überwachung des Systems in der Produktion nützlich sein können. (Focused Unit-Test wird noch benötigt werden, da sie Auslegungsdruck auf Klassenebene bieten, und sie schneller laufen und bieten somit schnelles Feedback.)

Ich habe mehr über diese letztere Ansatz geschrieben unter Entwurf für Integrierbarkeit .

Andere Tipps

Anforderungen zu sammeln.

Starten Sie mit einem Mock / Prototyp (z Balsamiq Mocks) der Anwendung, writre dann die Ansichten, spöttisch-Controller, wie Sie gehen entlang, dann die Controller-Logik schreiben, verspotten die DAO / Repositorys auf dem Weg. Zu der Zeit, Sie mit dem Schreiben beginnen Ihre DAO / Repositorys, erhalten Sie eine gute Vorstellung von Ihrer Ihren gewünschten Domain-Objekte haben. Klopfen die heraus und verwenden Fluent NHibernate Ihre Datenbank zu erstellen.

zumindest das ist sie, wie ich versuche, Dinge zu tun.

Ich empfehle Ihnen, S # arp Architektur Projekt, dass Anwendungen Best Practices kombinieren:

  • NHibernate
  • FluentNHibernate
  • TDD / DDD mit Modell firts Ansatz mit SQLite-Datenbank für Unit-Tests
  • Mocking
  • Repository Muster

Sie können auch S # arp Bogen installieren. Vorlage für Visual Studio IDE.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top