Sachant que cela peut être subjectif en fonction du projet en cours, je cherche la méthode de "meilleure pratique" pour structurer une solution VS.
N'hésitez pas à modifier ce document, à commenter ce que vous pensez être incorrect, à suggérer des alternatives, etc. J'aimerais que ce CW devienne une ressource importante pour les personnes qui débutent avec VS Solutions.
Voici ce qui fonctionne pour moi actuellement (sur mon projet actuel), mais je sais pertinemment qu'il y a des choses au mauvais endroit. Dans mon scénario, je construis un Application web en utilisant MVC 2
Veuillez poster votre idée de la structure de la solution finale afin que nous puissions nous faire une idée de la "meilleure façon" / "meilleure pratique" ( quoi que cela veuille dire exactement )
IE :
Comment répartissez-vous vos DAL / BLL ?
Placez-vous votre couche de référentiel et votre couche de service dans votre BLL ?
Si vous utilisez MVC, gardez-vous vos contrôleurs dans l'interface utilisateur plutôt que dans le noyau ?
Est-ce que vous mettez beaucoup de choses dans vos dossiers Utilitaires/Divers, ou est-ce que vous les séparez encore plus ?
etc...
- MySolution
- MySolution.Core
- Authentification
- C'est ici que j'ai un POCO et une méthode pour searialize le poco dans la secion userData du cookie d'authentification.
- Base
- c'est ici que je garde mon BaseController et par BaseGlobal
- Contrôleurs
- toutes mes manettes (évidemment)
- Domaine
- Modèles de base de données
- contient mon fichier L2S .dbml
- JsonModels
- modèles utilisés pour passer des objets JSON au veiw
- Dépôts
- Services
- ViewModels
- Extensions
- toutes les méthodes d'extension
- Filtres
- Filtres d'action
- Utilitaires
- Apis
- tout le code de l'API d'un tiers va ici
- Badges
- Le calcul du badge se fait ici
- MailClient
- envoyez des e-mails en texte brut ou en html en utilisant les classes présentes ici
- RoutingHelpers
- contient une classe pour activer les routes en minuscules
- contient aussi des choses que je ne sais pas où mettre ailleurs... IE : HTMLSanitizer, HtmlHelpers personnalisé, UserInfo helper (adresse IP, navigateur, etc), DataConverter, etc...
- MySolution.UI
- App_Browsers
- Actifs
- Css
- Images
- Scripts
- Vues
- Global.asax - hérite de BaseGlobal
- Web.config
Captures d'écran
N'hésitez pas à commenter en conséquence, ou mieux encore, à poster votre propre version (réponse) ci-dessous. Je sais que ce que j'ai n'est pas la meilleure solution.