Note: Quand je parle de niveau, je veux dire un niveau physique. Beaucoup de questions sur ce site concernant les «niveaux» font référence à des couches logiques, ce qui n'est pas ce que je demande.Une architecture de niveau 3 (physique) est-elle inefficace?
Je suis en train de concevoir une application utilisant une architecture standard "3 couches", avec des couches de présentation, de logique métier (BLL) et d'accès aux données (DAL). La technologie est WPF, C#, LINQ et SQL Server 2008. Ma question se rapporte à l'architecture physique de cette application.
Je peux placer le BLL/DAL dans une DLL standard qui est chargée et exécutée sur l'ordinateur de l'utilisateur, créant une architecture à deux niveaux - machine client et serveur de base de données. Mais il n'est pas trop difficile de transformer le BLL/DAL en un service WCF qui se trouve sur un serveur d'application et est appelé depuis la machine de l'utilisateur. Cela me donnerait une architecture à trois niveaux - machine client, serveur d'application et serveur de base de données.
Ma question est la suivante: quel est l'avantage d'utiliser une architecture à 3 niveaux? On m'a souvent dit que 3 niveaux ajoutent de l'évolutivité, mais ce n'est pas immédiatement évident pour moi. Et vous allez sûrement prendre un coup de performance avec les mêmes données qui doivent faire deux sauts sur le réseau - du serveur de base de données au serveur d'applications, puis du serveur d'applications à la machine client.
J'apprécierais les conseils d'architectes et de développeurs expérimentés.