Question

Je travaille sur une application web asp.net relativement petit et je me demande s'il est vraiment nécessaire d'employer une architecture complète n-tier. Pour avoir une idée de la taille; il y a environ 20 tables de base de données.

Dans le passé, j'ai utilisé une approche à 2 niveaux où la logique métier et l'accès aux données sont regroupées en une seule bibliothèque de classe est une application web asp.net formant le niveau de l'interface utilisateur et cela semblait fonctionner OK.

Y at-il une taille de seuil ou d'une règle de base où vous devez utiliser le n-tier?

Était-ce utile?

La solution

Il peut être relativement faible maintenant, mais pensez-vous qu'il pourrait se développer à l'avenir? De votre cours, vous devez être pragmatique, mais si vous avez déjà des séparations naturelles d'intérêt au sein de votre assemblée unique alors il est assez facile de diviser que en deux ou plusieurs ensembles. Si les classes se combinent la logique métier et l'accès aux données, vous avez plus de travail sur vos mains. Cependant, je dirais qu'il est presque plus de travail pour écrire votre logique d'accès aux données dans un ensemble et votre logique métier dans l'autre, en parallèle si nécessaire, que d'écrire tout en un seul endroit, en premier lieu.

Autres conseils

Si vous anticipez une croissance ou un changement de toute nature, il contribuerait à renforcer les niveaux explicites maintenant. Mais si cela est votre propre projet et ne vous dérange pas ponying le coût du changement ou un code bien intégré, puis juste à pirater loin comme une couche.

Il est tout au sujet de coûts futurs. Dans le présent, la programmation comme vous allez est de loin le moins cher, mais ne répond pas à changer très bien. Avec la planification de niveau, il y a un coût initial, mais il peut gérer le changement et l'extraction des implémentations entières couche meilleure que la première approche peut.

Ainsi, votre règle est régie par qui va payer pour le changement et quand.

Oui, il vaut la peine. Ce que vous proposez est une solution de piratage ensemble. Je ne peux pas vous dire combien de fois cela m'a apporté la douleur et la souffrance. L'autre côté de cette pièce est développeurs qui astronaught leurs solutions accumuler des bâtiments. Vous voulez éviter cela aussi.

simple, construire vos trois couches, je vous suggère d'essayer LINQ to SQL, il fait construire le DAL un clin d'oeil, et vous pouvez vous concentrer sur la construction d'une interface utilisateur mince, et un BLL qui se chargera de la soulever des charges lourdes. Il ne vous prendra pas beaucoup plus de temps pour le faire et il permettra de tests unitaires plus tard.

  

Y at-il une taille de seuil ou une règle   du pouce où vous devriez employer   n-tier?

Pas un que je suis au courant, mais je jetterai ceci: s'il y a une chance cette application Web peut se développer (ou modifier backends) et / ou quelqu'un d'autre peut finir par maintenir, je voudrais envisager d'aller avec une approche n-tier.

Il suffit de garder possible. Il est probablement surpuissant maintenant mais ne vous écris pas dans une situation où il est impossible. Refactorisation à grande échelle vous prendre plus de temps que le reconstruire à partir de zéro (et sera probablement juste que, la reconstruction à partir de zéro).

Le dernier projet que je travaillais sur (est venu à la fin) a été écrit d'une manière qui briser les gradins était pratiquement impossible. logique de données intimement liée à la logique métier entrelacée avec la logique de présentation. À court terme, il était aussi bon qu'il allait jamais être parce que la fixité il aurait fallu plusieurs mois.

Il est pas trop difficile de garder tout comme si séparé je l'ai dit plus tôt, il suffit de garder possible.

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