Question

Je travaille sur un projet qui met en œuvre une architecture à trois niveaux avec la conception suivante:

  1. Présentation Couche - Utilise PHP avec un framework MVC pour la présentation de la poignée frontend et la logique métier. Cette couche fait appel à la couche de service, qui accède aux données.
  2. Data Access Layer - Utilise C # .NET et est séparé en service, Business Logic et couche de données. Appelé par la couche de présentation. Effectue des appels à la base de données et sérialise réponses pour revenir à la couche présentation.
  3. couche de données - La base de données. Fournit toutes les données relatives au-dessus de deux couches.

Je comprends qu'une approche à trois niveaux peut aider à la sécurité, car il n'y a toujours pas accès aux données si la couche présentation est compromise. Bien que cela soit vrai, il semble que cette approche est de compliquer un peu, d'autant plus que je suis obligé d'écrire deux modèles pour le même objet dans les deux premières couches.

Ma question: Est-ce une mauvaise mise en œuvre d'une architecture à trois niveaux? Si oui, comment pourrait-il être amélioré? Quels sont les inconvénients, le cas échéant, d'avoir simplement une implémentation MVC qui a accès à la base de données? Qu'est-ce que approache (s) utilisez-vous pour vos applications Web?

Merci pour l'aide!

Était-ce utile?

La solution

Il me semble que vos 3 niveaux sont les mêmes que View, Model Controller. Si votre php est principalement fait appel à votre # 2 couche, alors je lui-même penser n'a pas besoin d'être MVC sauf si vous avez une couche de présentation très complexe qui lui-même devrait être organisé dans MVC, par exemple si vous avez compliqué la navigation ou l'utilisateur la logique d'authentification.

Autres conseils

Il n'y a rien nécessaire dans la programmation. Mais il y a un tas de pratiques, qui ont été prooven par des années comme quelque chose-vous-pouvez suivre get-mieux-à-résultats. la séparation N-tier est l'une des pratiques que.

http://en.wikipedia.org/wiki/Multitier_architecture

Votre description suit la description du wiki, donc -. Il est bon moyen de mettre en œuvre l'application 3 niveaux

Mais rappelez-vous, vous ne devriez pas faire quoi que ce soit - il suffit de suivre la façon dont il est confortable pour vous. Et à l'avenir, vous aurez votre propre ensemble de pratiques que le travail pour vous en particulier.

Je pense que votre complication vient du fait que vous utilisez PHP et .NET, qui ne sont pas directement compatibles. Si l'on éliminait l'un de ceux (uniquement PHP ou .NET uniquement utilisé utilisé) qui simplifierait les choses. Sinon, je pense que vous utilisez une bonne approche.

La valeur de l'approche est non seulement pour la sécurité, il facilite également la maintenabilité.

Je ne suis pas sûr que je comprends l'inquiétude: « d'autant plus que je suis obligé d'écrire deux modèles pour le même objet dans les deux premières couches. » Cela semble être parce que vous utilisez deux langages de programmation pour l'interface utilisateur et l'arrière-plan. Je devine « couche d'accès aux données » C # contient un modèle d'objet complet que vous avez ensuite répliquée votre extrémité avant.

Le problème semble être que vous avez deux niveaux intermédiaires qui reflètent les uns les autres, parce que vous utilisez deux langues, pas que vous utilisez une architecture n-tier

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