Existe-t-il des raisons négatives d'utiliser une solution N-Tier ?

Je suis assez nouveau dans mon entreprise (2 semaines) et nous démarrons une nouvelle plate-forme pour notre système en utilisant .NET 3.5 Team Foundation de DotNetNuke. Notre 'architecte' suggère que nous utilisions un projet de classe. Bien sûr, je reviens avec une architecture '3 tiers' (Business, Data, projets de classe Web).

L'utilisation de cette architecture présente-t-elle des inconvénients ? Les avantages seraient la séparation du code des données, l'éloignement des objets de classe de votre code, etc.

请先 登录 后评论

4 réponses

Karl Seguin

Cela prend généralement plus de temps à une équipe inexpérimentée pour construire à 3 niveaux. C'est plus de code, donc plus de bogues. Je me fais juste l'avocat du diable.

请先 登录 后评论
Chris Roberts

Je suppose qu'un inconvénient assez important est que le volume supplémentaire de code que vous devez écrire, gérer et maintenir pour un petit projet peut être exagéré.

Tout dépend de ce qui convient à la taille du projet, à la durée de vie prévue du projet final et au budget ! Parfois, même si faire les choses « correctement » est attrayant, faire quelque chose d'un peu plus « léger » peut être la bonne décision commerciale !

请先 登录 后评论
Jon Limjap

Comme pour tout, l'abstraction crée de la complexité, et donc la complexité de faire N-tiers doit être correctement justifiée, par exemple, est-ce que N-tiers profite réellement au système ? Il y aura de petits systèmes qui fonctionneront mieux avec N-tiers, bien que beaucoup d'entre eux ne le fassent pas.

De plus, même si votre système est petit pour le moment, vous voudrez peut-être y ajouter plus de fonctionnalités plus tard. Ne pas passer à plusieurs niveaux pourrait constituer une sorte de dette technique de votre part, il faut donc être prudent.

请先 登录 后评论
Larry Foulkrod

Le seul inconvénient est la complexité, mais il est vraiment difficile d'ajouter des objets de domaine et de se lier à une liste d'entre eux plutôt que d'utiliser un ensemble de données. Vous n'avez même pas besoin de créer trois projets séparés, vous pouvez simplement créer 3 dossiers séparés dans l'application Web et donner à chacun un espace de noms comme, YourCompany.YourApp.Domain, YourCompany.YourApp.Data, etc.

Le gros avantage est d'avoir une solution plus flexible. Si vous commencez à écrire votre application en tant qu'application centrée sur les données, en couplant fortement vos pages de formulaires Web à des ensembles de données, vous finirez par faire beaucoup plus de travail plus tard en migrant vers un modèle plus centré sur le domaine à mesure que votre logique métier devient plus complexe.

Peut-être qu'à court terme vous vous concentrez sur une solution simple en créant des objets de domaine très simples et en les remplissant à partir d'ensembles de données, puis vous pouvez leur ajouter une logique métier si nécessaire et créer un ORM plus sophistiqué si nécessaire, ou utiliser nhibernate.

请先 登录 后评论
  • 10 abonnés
  • 0 favoris,434 Feuilleter
  • Brian Childress posée à 2023-03-27 12:30

problème similaire