Ich werde gebeten, eine Schicht zu entwickeln, die als generischer Bus ohne beliebige direkte Verweise auf NServiceBus fungiert. Was bisher dank der Unterstützung für unauffällige Nachrichten nicht zu schwer ist. Außer jetzt wurde ich gebeten, eine eigene Definition für IHandleMessages bereitzustellen und einen Weg zu finden, um es während der Verkabelung abzubilden. Also denke ich etwa so:
%Vor%Wo IHandle wäre unsere eigene Definition (die übrigens genau das gleiche wie IHandleMessages ist). Ich würde erwarten, über die AppDomain zu reflektieren und alle Klassen zu finden, die IHandle implementiert und sie mit dem Container registrieren, dann einen MessageHandlerAdapter mit dem gleichen Typ T registrieren.
Mein Problem ist, dass ich NServiceBus seit fast 2 Jahren nicht mehr benutzt habe und ich mich nicht mehr erinnere, wo ich diese Art von Funktionalität in der NSB-Pipeline einbinden sollte.
Sie werden diese Antwort wahrscheinlich nicht mögen, aber ... Schreiben Sie keine Abstraktionsschichten für die von Ihnen verwendeten Werkzeuge.
Ich habe viele Fälle gesehen, in denen Leute versuchen, eine Abstraktionsebene um bestimmte Werkzeuge herum zu schreiben. Meistens handelt es sich um Logging- und ORM-Frameworks. Jetzt haben die Leute gute Absichten, wenn sie das tun. Sie wollen "die Bibliothek X leicht wechseln können". Leider ist dies aus verschiedenen Gründen eine schlechte Idee.
Es kommt alles auf die Zeit herunter. Sie versuchen nun, Zeit damit zu verbringen, das Tool zu abstrahieren. Mit der Hoffnung, in Zukunft mehr Zeit zu sparen. Das Problem ist, dass Sie viel mehr Zeit damit verbringen werden, diese Abstraktion zu erstellen und zu erhalten, als Sie jemals speichern würden, wenn Sie sich für einen Wechsel entscheiden. Dies sollte Ihre Antwort auf Ihre Mitarbeiter sein.
Hier ist ein interessanter Beitrag von Ayende, der über die Übel der Abstraktion spricht. Vieles davon ist auf dieses Szenario anwendbar: Ссылка Um zu zitieren
... versuch unnötige Komplexität zu vermeiden ... Zusätzliche hinzufügen Schichten von Abstraktionen machen es normalerweise nur schwer.
Tags und Links nservicebus3