Was hat der Ambient Context in idee5.Common verloren? (19.10.2021)

Der Ambient Context wird allgemein als schlechte Idee bewertet. Wir haben uns dennoch entschieden eine Implementierung davon als AmbientService in unsere Hauptbibliothek aufzunehmen.

Ja. Damit kann man Seiteneffekte in einer Anwendung verursachen. Darum ist ein sehr bewusster Umgang damit und Disziplin erforderlich.

In Geschäftsanwendungen kommt es immer wieder zu sehr komplizierten Konstellationen, die unerwünschte Ergebnis zur Folge haben. Diese Konstellationen für einen Test nachzubauen ist eine Herausforderung.

Manchmal kann man die Daten nicht einfach aus dem Produktivsystem duplizieren und für einen Test verwenden. Manchmal ist es erforderlich den Ablauf der Ereignisse nachzubilden. Wann hat wer was gemacht ist dabei wichtig.

Für solche komplizierten Szenarien nutzen wir einen AmbientTimeProvider und einen AmbientUserProvider. Damit ist es einfacher Zeitabstände und Benutzerwechsel in einem Integrationstest abzubilden. Beispielweise bei Schaltjahr-Problemen.

Im eigentlichen Produkt/Projekt hat der Ambient Context tatsächlich nichts verloren.