2010-02-17 18 views
5

J'utilise actuellement le dossier App_Code pour toutes mes classes, et pour moi (pour le moment) il semble fonctionner correctement.Bibliothèque de classes Project VS App_Code - Avantages/inconvénients?

J'ai toutefois envisagé de basculer vers un projet de bibliothèque de classes dans ma solution au lieu du dossier App_Code. Quelqu'un peut-il me dire les avantages et les inconvénients de faire cela?

Une pensée que j'avais était en ce qui concerne le test de mon application Web. Si j'utilise une bibliothèque de classes, dois-je compiler chaque fois que je veux modifier/tester? Évidemment dans le dossier App_Code je n'ai pas à le faire puisque toutes les classes sont compilées lors de l'exécution.

+0

http://stackoverflow.com/questions/398037/asp-net-web-site-or-web-application – womp

Répondre

6

Vous devez utiliser une bibliothèque de classes. Les raisons sont simples.

Vous souhaitez supprimer votre entreprise ou votre logique d'application de l'interface utilisateur. Le dossier App_Code est réservé aux classes qui traitent uniquement de l'interface utilisateur.

La raison de la séparation est de créer des niveaux. Signifiant aujourd'hui que vous avez un site Web, demain vous pouvez être invité à faire un programme de fenêtres, ou un nouveau site Web. Si vous devez changer votre interface utilisateur, vous allez copier et coller le code. Cela signifie que vous avez maintenant 2 ou plusieurs endroits pour maintenir le code. Cela conduira à une qualité de code moins bonne, en corrigeant le même bug dans 2 endroits ou plus.

Si vous placez votre code dans une bibliothèque. Vous créez une nouvelle interface utilisateur, puis référencez simplement la bibliothèque. Vous utilisez seulement maintenant 1 ensemble de code.

+0

Ceci est une excellente réponse, et qui est parfaitement logique. Dans ma question ci-dessus j'ai mentionné devoir compiler la bibliothèque de classes encore et encore pendant le test ... y a-t-il un moyen de contourner cela? –

+0

Donc la réponse est que je dois le compiler chaque fois que je fais un tweak ou un mod? –

+0

Vous n'avez pas à compiler la logique métier si vous ne l'avez pas modifiée. La compilation ne prend pas beaucoup de temps et n'est pas une bonne raison pour garder tout votre code dans votre couche d'interface utilisateur. –

0

Jimmy Bogard (auteur de Automapper) a écrit un excellent article sur la façon dont il structure son code, ce qui peut aider à confirmer la réponse de @ David.