Menschen behaupten oft, dass sie einer 3-Tier- (oder N-Tier-) Architektur folgen, und manchmal behaupten sie dann, zu einem Domänenmodell zu wechseln. Aber ich habe wirklich nie verstanden, was diese mythische "3-Tier-Architektur" ist. Es scheint keine formale Definition zu haben. Während es zahlreiche Referenzen und Beispiele gibt, die das Domänenmodellmuster erklären und demonstrieren, schlägt jeder Verweis auf 3-Tier lediglich vor, dass Sie Ihren Code in UI-, Business Logic- und Datenzugriffsschichten unterteilen sollten. Und das ist alles, was sie zu sagen scheinen.
Was ich besonders seltsam finde, ist, dass Domain Model für mich die perfekte Verkörperung dieses dreistufigen Paradigmas ist. Die ORM- und Zuordnungsdateien sind die Datenzugriffsschicht, die Domäne ist die Geschäftslogik und die Benutzeroberfläche ist die Benutzeroberfläche. Warum reden die Leute so, als wäre es etwas Neues und Anderes und etwas, zu dem sie wechseln sollten?
Bevor ich Leute sah, die das Domänenmodell implementierten, waren die meisten Anwendungen Benutzeroberflächen, die auf gespeicherte Prozeduren zugreifen, wobei die Logik auf die Benutzeroberfläche und die SPs aufgeteilt war. Manchmal gab es einige Assemblys mit den Namen "UI", "BLL" und "DLL", aber normalerweise waren dies nur Vermittler zwischen den Benutzeroberflächen und den SPs, sodass mehr Platz für die zufällige Verteilung der Logik blieb.
Was ist diese mythische "3-Tier" -Architektur? Existiert es überhaupt? und wenn ja, wo werden einige Beispiele dafür gut umgesetzt?