2011-04-29 5 views
0

Je veux développer un CMS simple.mvc3 architecture

Je veux ajouter la possibilité d'ajouter des modules au CMS.

  1. ce qui doit être l'architecture pour un CMS?

    une solution, puis un projet mvc pour le site et un autre pour l'administrateur ? ou un projet avec zone pour l'administrateur?

en mvc chacun de mes modules aura un contrôleur, un modèle et des vues. si je vais mettre tous dans un projet, alors je vais mélanger de tous les modules, chaque module sera dans 3 dossiers (contrôleur, modèle et vues).

comment je dois les arranger pour que mon code soit beau et propre?

+0

Essayez 3 projets distincts. 1 web, 1 service et 1 données –

+0

@Mclean, mais le mix sera le même encore plus ... – eyalb

Répondre

1

Puisque vous ne faites que séparer par type d'utilisateur, vous pouvez sûrement (et facilement) inclure dans un projet. tous vos contrôleurs Admin doivent avoir [Authorize (Roles = "Admin")] sur eux pour les limiter uniquement pour l'administrateur. Le mélange est bon, d'autres applications mélangent des rôles d'utilisateur dans une application sur une base régulière, limitent juste la différence par sécurité (et n'utilisent pas les restrictions url dans votre web.config - utilisez l'attribut [Authorize] sur vos contrôleurs à la place !! vous vous attendez à ce que les différences dans les deux applications soient énorme puis vous pouvez séparer en un autre projet, mais j'imagine que vous pouvez obtenir une très bonne réutilisation en les incluant dans le même projet. Pour un projet de base, tout inclure dans un projet, je préfère sortir tous mes modèles et code d'accès aux données dans un projet séparé et essayer de coder autant que possible aux interfaces pour des tests unitaires. est un peu au-delà de la portée de l'affichage ici. t - travailler avec l'attribut mentionné et je pense que vous allez développer. Commencez tôt les tests unitaires et je pense que cela vous aidera à vous orienter dans la bonne direction. Lisez aussi les dépendances injectiom, unit, ninject, etc pour savoir comment lier dynamiquement vos classes d'implémentation, car cela rend votre test un peu plus fluide.

+0

@Tuliper, je pourrais utiliser [Authorize (Roles = "Admin")] même si je n'utilise pas asp. adhésion nette? – eyalb

+0

Thats right .. vous devez juste vous assurer que IPrincipal est là pour un utilisateur authentifié. consultez ces 2 publications SO http://bit.ly/jl13bc http://bit.ly/mErqMZ –