2010-08-02 5 views
2

Je suis encore en train d'entrer dans MVC, et pour mon premier vrai projet, je prévois de créer un blog. Ce sera extrêmement basique (au moins au début). Tout ce dont j'ai besoin sera sur la même page. Voici les caractéristiques initiales, je suis prise de vue pour:Organisation MVC pour un blog

  • L'utilisateur doit être en mesure de se connecter, mais pas vous inscrire (je serai le seul capable de poster, et je me suis ajouté directement à la DB
  • . Les articles du blog doivent être listés dans l'ordre décroissant avec un titre, une date de publication et le corps Aucun commentaire requis pour l'instant
  • Le bas de la page aura toujours une zone pour faire un nouveau message, en supposant que vous êtes connecté

Depuis que je suis encore nouveau à la structure MVC, je voudrais un conseil sur la façon dont il devrait être organisé.

Pour mes modèles, j'ai pensé que je devrais avoir un référentiel de post et une classe BlogPost pour les données de poste qui peuvent être utilisées à la fois pour la publication et la récupération. J'aurais aussi besoin d'un cours pour l'utilisateur.

Quand il s'agit de contrôleurs, je suis un peu moins confiant. Devrais-je avoir un contrôleur différent pour chaque type d'action? Par exemple, la publication devrait avoir un contrôleur, la récupération devrait avoir un contrôleur, la connexion devrait avoir un contrôleur, etc?

En ce qui concerne les vues, puisque je n'ai vraiment besoin que d'une seule page, devrais-je avoir une seule vue et que cette vue affiche le contenu approprié de mes contrôleurs? Laissez-moi savoir si je suis sur la bonne voie, je suppose. Si mon processus de pensée est loin, s'il vous plaît dites-moi. Je viens de commencer à travailler dans le livre MVC 2 de Steven Sanderson, mais j'ai l'impression que je dois sortir seul et jouer entre mes séances de lecture.

Merci.

Répondre

2

Les contrôleurs doivent être regroupés par fonctionnalité. Vous pouvez également avoir un contrôleur par ressource (REST). Vous pouvez avoir un AuthenticationController qui gère l'authentification et PostsController qui va gérer la récupération des messages et l'ajout d'un nouveau message. En ce qui concerne les vues, en supposant que vous ayez une seule page qui listera les articles et ajoutera de nouveaux articles, vous pourrez avoir une vue unique, mais peut-être avec plusieurs vues partielles/éditeur/modèles d'affichage.

+0

exactement comment je l'aborderais - +1. J'ajouterais que j'utiliserais une approche de type 'typed', quelque chose le long des lignes de subsonic, plutôt qu'un modèle de repository par 'class' –