Question

J'ai quelques questions sur l'architecture à trois niveaux.

  1. comment mettre en œuvre une application dans trois architecture de niveau correctement?
  2. comment communiquer entre ces niveaux?
  3. Est-ce niveau de données complètement SGBD est égal? (Que diriez-vous dans un cas si l'on utilise des procédures stockées et que diriez-vous dans un cas si nous avons utilisé un objet framework de mapping relationnel?)

hâte d'entendre vos réponses. Merci.


PS: S'il vous plaît ne comprends pas que je pose une question générale. D'accord ? Je demande comment concevoir une application à grande échelle correctement. Quel est le meilleur moyen?. Pas attendre des réponses looooong.

Était-ce utile?

La solution

Ce sont des réponses générales, je ferai de mon mieux pour vous donner quelques conseils.

  1. "correctement" est un terme quelque peu subjective. D'une manière générale, à mon avis, la chose la plus importante est de garder la couche dans son propre module (par exemple, sa propre DLL), et ont des interfaces qui entrent et sortent du module. En utilisant des interfaces dans chaque couche, vous pouvez séparer la définition de la mise en œuvre, découpler davantage les couches les unes des autres. S'il y a un seul point d'entrée dans la couche, et elle est basée sur une interface, vous pouvez avoir plusieurs implémentations sous-jacentes, au besoin. Dans l'autre sens, si vous utilisez des interfaces comme callbacks, puis les clients de la couche (à savoir les autres couches) ne devront implémenter les interfaces afin d'obtenir un bon flux entre les couches.

  2. Cela dépend de la façon dont vous implémentez les couches elles-mêmes. Si vous concevez les couches comme je l'ai suggéré plus haut, vous simplement utiliser les interfaces pour entrer dans la couche et hors de celui-ci. Une autre solution pourrait être de le rendre asynchrone, en utilisant les répartiteurs d'événements - une couche serait simplement déclencher un événement, et une autre couche écouterait cet événement et agir. Tout dépend des exigences spécifiques du projet.

  3. n, la couche de données est la couche dans l'application qui interagit avec le SGBD. L'utilisation ORM est simplement une méthode pour la mise en œuvre de la couche de données, tout en utilisant des procédures stockées est une méthode pour déplacer une partie de la logique de l'application dans le SGBD lui-même, pour diverses raisons.

Je suppose que vous allez recevoir plusieurs réponses; vous devez prendre tous en compte, faire un peu de lecture sur le net, et d'expérimenter un peu jusqu'à ce que vous trouver ce que vous aimez.

Autres conseils

  1. Les trois niveaux sont Présentation, Business Logic et données. Assurez-vous que vous ne mélangez pas les préoccupations. L'interface utilisateur ne doit contenir aucune logique métier et ainsi de suite.

  2. Tout niveau doit savoir que sur le niveau en dessous. Ex. L'interface utilisateur doit communiquer uniquement avec Business Logic et ne doit pas savoir quoi que ce soit au sujet de la couche de données. Pour ce faire toujours aux interfaces au lieu de mises en œuvre concrètes . Utilisation injection de dépendances pour maintenir les modules à couplage lâche.

  3. Cela dépend de la façon dont vous choisissez de le mettre en œuvre. Commencez par YAGNI principale. Gardez les choses aussi simples que possible pour commencer et utiliser des choses comme ORM seulement si vous avez vraiment besoin.

Ce sujet est trop large pour bien répondre à cette question dans la profondeur requise. Cela dit:

  1. Un élément clé est de limiter correctement les dépendances entre les couches de sorte que chaque couche ne connaît que de la couche « ci-dessous ». par exemple. la couche d'affaires ne connaît pas la couche de présentation.

  2. l'architecture 3-tier ne fait aucune ordonnance sur la façon de communiquer les couches entre elles. fonctionnalité d'affaires (niveau) est souvent exposé en tant que services Web qui sont consommés par la couche de présentation.

  3. Le niveau de données ne sont pas tout à fait égale à la base de données. Vous aurez toujours besoin du code pour interagir avec le magasin de données (par exemple ORM). Ce code doit être dans son propre module pour minimiser le couplage.

Cela dépend de nombreux facteurs. Je regardais en utilisant un modèle de repositiry pour votre accès aux données couche (DAL). Idéalement, ce serait utilisé conjointement avec un objet relationnel mappeur (ORM) comme cadre de l'entité 4 ou NHibernate. Je alors une couche séparée de domaine qui contient des règles d'affaires et de services. Votre couche de domaine desservirait les demandes entre votre interface utilisateur et et vous DAL. Pour votre interface utilisateur que vous avez la possibilité de formulaires Web ou une approche MVC. Les deux seront encore travailler dans les trois niveaux, mais vous aurez beaucoup mieux des préoccupations de seperation MVC. Ce qui est bon quand vous voulez faire des tests unitaires. Voici quelques bons liens concernant ce qui précède.

http://daveswersky.com/2010 / 05/26 / entité-cadre-4-then-et maintenant /

http: // Channel9. msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman

http://www.asp.net/mvc/ tutoriels / mvc-music-store-partie-1

L'architecture à trois niveaux est un concept pas une étape par étape d'instruction. Keep it simple et isolé. Si vous travaillez avec le stockage et la récupération des données, mettre dans la couche de données. Quand il est logique à eu, placez-le dans la logique / couche intermédiaire. Thèmes / skins, vues, dans des espaces réservés widget vont la couche de présentation.

Code d'autres études. Un bon endroit pour commencer serait monorail .

Lire beaucoup de documentation plus vous savez ce que les autres font mieux.

Et surtout, amusez-vous avec elle. Si vous vous sentez dépassés ou que les choses se compliquent, pas en arrière et découvrir ce qui est au mauvais endroit.

La meilleure façon de mettre en œuvre une application dans l'architecture 3 niveaux est d'utiliser un cadre de votre langue qui utilisent MVC. Pour PHP CodeIgniter Je recommande http://codeigniter.com/

En général, ce qui se passe est le passage d'objets, si vous suivez POO, entre les trois niveaux. Eh bien, la plupart du temps deux. Contrôle reçoit la demande, demande au modèle (DB) et obtient un objet en retour, utilise les propriétés et les méthodes de cela pour afficher la vue.

Suivez quelques tutoriels en Ci. Vous aurez une idée de ce qu'il se passe dans MVC.

Il y a trois couches en architecture à trois niveaux qui sont la couche présentation, couche logique métier et la couche d'accès aux données. En dehors de ces trois, nous pouvons utiliser une couche d'objet métier pour mettre en œuvre des catégories de biens qui peuvent cartographier nos objets avec la base de données ou vous pouvez utiliser Entity Framework.

couche Présentation: Ceci est la couche supérieure le plus de l'application dans laquelle l'utilisateur effectue leur activité. Prenons l'exemple d'une application où l'utilisateur doit remplir un formulaire. Ce formulaire est rien que la couche de présentation. Dans les applications Windows Windows Forms sont la couche Présentation et dans les applications web sous forme de web appartient à la couche Présentation. Fondamentalement, la validation d'entrée et de traitement règle de l'utilisateur se fait dans cette couche.

couche d'entreprise: Ceci est au-dessus de la couche Présentation. Comme son nom l'indique, la plupart des opérations commerciales sont effectuées ici. Par exemple, après la collecte des données de formulaire, nous voulons les valider avec notre règle d'affaires personnalisé. Fondamentalement, nous définissons les classes et les entités commerciales dans cette couche.

couche d'accès aux données: En plus de la couche logique métier est la couche d'accès aux données. Il contient des méthodes qui aident la couche d'affaires pour se connecter avec la base de données et effectuer des opérations CRUD. En général, tout le code lié à la base de données et d'autres choses appartiennent à la couche d'accès aux données. Parfois, les gens utilisent un accès aux données plate-forme indépendante de couche pour extraire des données de différents fournisseurs de bases de données.

De plus amples détails - https://www.c-sharpcorner.com/UploadFile/dacca2/understand-3-tier-architecture-in-C-Sharp-net/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top