Hinweis: Wenn ich mich auf eine Ebene beziehe, meine ich eine physische Ebene. Viele der Fragen auf dieser Seite, die sich auf "Tiers" beziehen, beziehen sich auf logische Ebenen, was ich nicht möchte.Ist eine 3 (physische) Tier-Architektur ineffizient?
Ich entwerfe eine App mit einer Standard-3-Layer-Architektur, mit Präsentations-, Business-Logik (BLL) und Datenzugriff (DAL) Schichten. Die Technologie ist WPF, C#, LINQ und SQL Server 2008. Meine Frage bezieht sich auf die physische Architektur dieser App.
Ich kann die BLL/DAL in einer Standard-DLL platzieren, die auf dem Benutzercomputer geladen und ausgeführt wird, wodurch eine 2-Tier-Architektur - Client-Maschine und Datenbankserver - entsteht. Aber es ist nicht allzu schwierig, den BLL/DAL in einen WCF-Dienst umzuwandeln, der auf einem App-Server sitzt und von der Benutzermaschine aus aufgerufen wird. Dies würde mir eine 3-Tier-Architektur geben - Client-Maschine, App-Server und Datenbank-Server.
Meine Frage ist das - was ist der Vorteil der Verwendung einer 3-Tier-Architektur? Mir wurde oft gesagt, dass 3 Ebenen Skalierbarkeit hinzufügen, aber es ist mir nicht sofort klar, warum das so sein würde. Und sicherlich werden Sie einen Performance-Hit mit den gleichen Daten machen, die zwei Hops über den Draht machen müssen - vom Datenbankserver zum App-Server, dann vom App-Server zum Client-Rechner.
Ich würde den Rat von erfahrenen Architekten und Entwicklern da draußen schätzen.