2009-09-05 5 views
5

J'essaie de créer mon propre CMS pour moi-même et mes clients. Le système sera principalement utilisé pour les petits sites Web < 10 pages. Pour un plus grand projet, j'utiliserai probablement un système existant (MojoPortals, Umbraco, Kooboo). La raison pour laquelle je veux mon propre système est que j'ai un contrôle total et aussi parce que les systèmes existants sont surtout gonflés avec des fonctionnalités que je ne vais pas utiliser pour des projets plus petits. J'apprends aussi Asp.net Mvc donc c'est l'autre raison de construire mon propre système.Asp.net Mvc: Création d'un simple cms

Voici quelques-uns des systèmes que j'ai essayé (un peu plus que d'autres):

Celui que j'ai aimé tout de suite était MojoPortals. Principalement à cause du système de modules gauche-milieu-droit +. Donc, mes objectifs sont d'avoir un système où vous pouvez créer des pages et chaque page aura un espace réservé gauche, moyen et droit pour les modules. Les modules seront très basiques (Texte, Html, Image). Le système doit également être facile à déployer et à réutiliser.

J'ai déjà commencé à travailler sur mon système.

L'objet page ressemble à ceci:

public class Page 
{ 
    public int PageID { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public string Title { get; set; } 
    public IEnumerable<Module> Modules { get; set; } 
} 

L'objet du module ressemble à ceci:

public class Module 
{ 
    public int ModuleID { get; set; } 
    public string ModuleTitle { get; set; } 
    public string ModuleType { get; set; } 
    public string ModuleLocation { get; set; } 
    public Dictionary<string, string> ModuleValues { get; set; } 
} 

Voici comment mon point de vue ressemble: www.codepaste.com

plus tard je vais probablement ajouter un objet de site Web qui contient des informations pour quelle vue (modèle) il montrera.

Les questions que j'ai en ce moment concernent principalement la vue. La vue que j'ai liée a un code de base qui vérifie d'abord l'emplacement du module, puis affiche toutes les informations du module au bon endroit. Je voudrais que cette partie soit facile à réutiliser. J'ai donc pensé à faire une vue partielle fortement typée qui fait les choses à gauche, à droite et au milieu. Aussi pour les modules je pensais utiliser des vues partielles et rendre le partiel correct d'un certain moduleType. Donc le texte aura un partiel, le HTML en aura un et ainsi de suite. Je ne suis pas sûr que ce soit la bonne technique.

Alors, est-ce que je devrais utiliser une vue partielle pour gérer les choses gauche, milieu et droite et utiliser des vues partielles pour charger les modules?

Si quelqu'un a d'autres informations sur la construction d'un module basé sur des cms ou des techniques/structures que je peux utiliser, ce serait vraiment génial aussi.

Merci d'avance, Pickels.

+0

Mon conseil serait de ne pas la peine - utiliser Umbraco (qui peut être adapté pour être très simple). L'effort de créer et de maintenir même un CMS apparemment simple est grand, et c'est avant l'inévitable glissement futur. Que se passe-t-il lorsque quelqu'un veut revenir à une version précédente du contenu? Votre schéma peut-il faire face à cela? –

+0

Bonne question. Merci mec! – Shimmy

Répondre

0

Oui, c'est la meilleure option. Définissez une "base structurelle" pour chaque modèle avec css, et faites en sorte que chaque module charge ses propres vues dans les bonnes sections du modèle. Disons que votre modèle a un menu supérieur sous l'en-tête commun où vous affichez le logo de l'entreprise et d'autres choses ..insérer dans la base de données les informations sur le module et sur cette section supérieure du modèle (vous devez créer complètement une table dans la base de données sur la structure du template, afin que le système sache où placer chaque module associé à chaque page) le système pour obtenir le module nécessaire dans chaque demande de page à la bonne position, ce qui le fait charger sa propre vue (s) dans cet endroit.

espère que vous comprenez mon écriture :)

+0

Je n'ai pas vraiment compris ce que vous avez écrit. – Pickels

+0

, faites en sorte que votre contrôleur/modèle charge un tableau avec la base structurelle de chaque page demandée, et pour chaque section trouvée dans la structure, vous auriez un module associé. – yoda

Questions connexes