Je rencontre toujours un problème où mes projets dans Visual Studio (2008) deviennent énormes monstruosités et tout est généralement jeté dans un projet d'application Web. Je sais de vérifier certaines choses open source qu'ils ont tendance à avoir plusieurs projets dans une solution, chacun avec leurs propres responsabilités. P>
Quelqu'un a-t-il des conseils pour se refroidir cela? Que devrait être dans un projet séparé contre une partie du projet Web? Pouvez-vous me signaler à des documents de référence sur le sujet ou est-ce que vous vous habituez à quelque chose avec le temps? P>
3 Réponses :
Organisez votre projet proprement dans les espaces de noms. Les espaces de noms ne doivent pas être trop gros, pas trop petits. Faire chaque espace de noms a une "interface" publique (c'est-à-dire un ensemble de classes publiques) et n'accumule pas les détails de la mise en œuvre internes de l'espace de noms d'autres espaces de noms. Différents espaces de noms abordent généralement différentes parties d'une application, par exemple. Vous aurez des espaces de noms liés à l'interface utilisateur, la logique commerciale, la fonctionnalité d'assistance, etc. Le Directives de conception-cadre ont de bonnes suggestions comment concevoir des espaces de noms. P>
Lorsque vous estimez que votre projet pousse trop volumineux, identifiez simplement des ensembles d'espaces de noms qui sont clairement liés aux autres et les déplacent à des projets séparés. Étant donné que d'autres espaces de noms utilisent déjà l'interface publique des espaces de noms déplacés, refactoring les espaces de noms dans de nouveaux projets est simplement une opération de déplacement de fichiers. P>
Ça a du sens. Essayez-vous de garder des fichiers de classe dans un projet séparé des fichiers de projet Web spécifiques? Ou les laissez-vous se mêler (pendant que des noms de noms). Y a-t-il des meilleures pratiques pour les messages de noms? Désolé, je sais que c'est vraiment basique, mais je le fais depuis quelques années et j'ai finalement atteint le point de rupture de la frustration.
Le livre FDG est le guide. Une fois que vous avez fait des espaces de noms significatifs, essayez de les développer et de scinder le projet énorme en plusieurs plus petits. Je suis d'accord, Resharper est sympa, mais Ndepend est encore plus utile. codebetter.com/blogs/patricksmacchia/archive/2008/09/23/...
Commencez par le bas vers le haut (vos classes les plus simples qui ne dépendent de rien d'autre en dehors du cadre) et de voir si vous pouvez isoler les dépendances dans des unités fonctionnelles. Par exemple, si vous avez un tas de classes de données ou de logiques commerciales qui se réfèrent mutuellement, mais ne font jamais référence à l'une de vos classes d'interface utilisateur, vous avez un candidat à la scission d'un autre projet. Si vous ne trouvez pas de points de séparation clairs, vous avez un problème de conception et devriez probablement faire du refactoring. P>
Je suis également d'accord que l'utilisation d'espaces de noms est un bon endroit pour commencer. Même dans un projet, vous pouvez souvent isoler ou minimiser les dépendances d'une manière qui englobe naturellement les classes. Les mettre dans le même dossier renforcent ce groupe comme unité fonctionnelle et peut vraiment aider le pauvre gars qui doit maintenir votre code à l'avenir. Fais-moi confiance, j'essaie de penser à ce pauvre gars parce que, à plus d'une occasion, ce pauvre gars a été moi. TWAS Un petit confort que la personne qui a écrit le code avait le même nom que moi à l'époque qu'il l'a écrit. P>
Consultez le Directives données par le projet Architecture Sharp . Son ASP.NET MVC, mais les mêmes principes s'appliquent à ASP.NET et à d'autres projets. Les gars qui mettent ce genre de choses ensemble sont Le niveau de niveau de base qu'ils proposent est p>
Dans le cas d'une application ASP.NET, j'aime utiliser le motif MVP qui signifie essentiellement le p>
Vous pouvez également essayer de consulter le ASP.NET MVP Project . P>
Eh bien d'abord, vous aurez besoin de Resharper ...