2010-11-24 3 views
3

Si nous devrons choisir un modèle d'architecture pour une application web en .Net, lequel sera le meilleur, MVC ou 3 niveaux, Comment décider?Comment décider lequel utiliser dans l'application Web MVC ou l'architecture à 3 niveaux?

+4

Combien de niveaux vous avez n'a rien à voir avec MVC/MVP/MVVM ou MV ??? Il faut faire avec seperation physique de l'application, et l'autre est un modèle de conception. – Josh

+0

@Josh: MVC, MVP, MVVM et n-pneu (3 déchira) tous sont modèle L'architecture ne conception parrern se référer http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29 –

+4

Il est 'niveau', pour Pete Saké! – belugabob

Répondre

10

Jeevan,

Je pense que vous êtes malheureusement en train de penser que de nombreux développeurs débutent dans MVC dans la mesure où vous avez "nourri" la croyance que le 'M' dans mvc (modèle) est une implémentation plate linq2sql et c'est pour le modèle. Pas si ... dans nos applications, nous devons répondre à un mélange de web/ordinateur de bureau et les appareils de poche tout en utilisant divers domaines de fonctionnalités communes en leur sein. nous avons donc créé un DLL 'BLL/DAL' avec toute notre logique d'entreprise qui est référencé comme le 'M' dans nos applications mvc. Ce même 'bll/dal' est utilisé dans nos applications webforms ainsi que dans nos applications de bureau. Dans une application en cours, nous nous connectons à un backend d'oracle avec notre DLL bll/dal et utilisons MVC uniquement comme un service RESTful agissant comme un intermédiaire entre deux systèmes hérités. étant donné la conception de notre dll bll/dal, nous pourrions tout aussi facilement passer à sqlserver, devrait (comme et quand) l'entreprise a besoin. Donc, en un mot, la proposition de choisir MVC ou 3 niveaux (et je pense réellement que vous voulez dire couches, plutôt que hiérarchisé [qui se rapporte plus à la séparation physique des fonctionnalités/services]) est tout à fait un point discutable car ils sont convergentes, plutôt que des technologies disparates.

espérons que cela aide - je vais essayer de trouver des exemples via mr google plus tard aujourd'hui pour illustrer la plénitude de mon approche.

[edit] - à partir d'une question similaire ici sur SO; N-tier fait simplement référence à la structure physique d'une implémentation. Ces deux sont parfois confus car une conception MVC est souvent implémentée en utilisant une architecture N-tier.

MVC Vs n-tier architecture

en un mot, on est la conception objet/API, on est l'architecture du système; les deux peuvent vivre heureux ensemble.

1

Les deux sont des concepts de très haut niveau, et avec tous les concepts de haut niveau, il n'y a pas de réponse définitive. De plus, vous pouvez très bien les mélanger. Par exemple, avoir une application à plusieurs niveaux sur le niveau de présentation, fournir votre application est assez grande que cela est nécessaire (par exemple, vous aviez un grand groupe de données + couche d'analyse + couche de reporting).

Chaque fois que vous choisissez entre les 2, je suggère de penser à ces aspects:

  1. Quelle architecture vous et votre équipe se sentent plus à l'aise afin de faire un délai
  2. Comment complexe votre application Quels sont vraiment les avantages spécifiques de l'utilisation de ces architectures?
  3. Quel est le modèle d'utilisation que votre système utilisera et quelle solution architecturale répondra mieux aux besoins de ces modèles d'utilisation
  4. Comment maintai Chaque solution sera

Cette liste pourrait continuer bien sûr, mais je pense que ces 4 choses vous mettront sur la bonne voie.

De mon architecture expérience de plus ou moins complexe, le système réel de la vie (qui ne sont pas académiques fantasy) est jamais MVC ou 3 niveaux, mais il est toujours tout à fait un mélange de beaucoup de choses :)

+1

Si je pense que tous les 4 points u la phase proposées au cours de l'architecture de l'application puis je vais toujours considérer trois pneus et la plupart des gens sont très à l'aise dans 3 l'architecture des pneus, nous allons donc jamais utiliser MVC? alors quand nous utiliserons MVC? –

Questions connexes