2009-09-05 25 views
5

Estoy tratando de construir mi propio CMS para mí y mis clientes. El sistema se utilizará principalmente para pequeños sitios web < 10 páginas. Para proyectos más grandes, lo más probable es que use un sistema existente (MojoPortals, Umbraco, Kooboo). La razón por la que quiero mi propio sistema es para tener el control total y también porque los sistemas existentes están repletos de funciones que de todos modos no usaré para proyectos más pequeños. También estoy aprendiendo Asp.net Mvc, esa es la otra razón para construir mi propio sistema.Asp.net Mvc: Crear un cms simple

Estos son algunos de los sistemas que probé (algunos más que otros):

El que me gustó enseguida fue MojoPortals. Principalmente por el sistema de módulos izquierda-centro-derecha + módulos.

Así que mis objetivos son tener un sistema donde pueda crear páginas y cada página tendrá un marcador de posición izquierdo, medio y derecho para los módulos. Los módulos serán muy básicos (Texto, Html, Imagen). El sistema también debe ser fácil de implementar y reutilizar.

Ya comencé a trabajar en mi sistema.

El objeto de página tiene el siguiente aspecto:

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; } 
} 

El objetivo del módulo es el siguiente:

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; } 
} 

Así es como mi vista se ve: www.codepaste.com

Más tarde, probablemente añadir un objeto de sitio web que contiene información para qué vista (plantilla) se mostrará.

Las preguntas que tengo en este momento son principalmente sobre la vista. La vista que he vinculado tiene un código básico que primero verifica la ubicación del módulo y luego muestra toda la información del módulo en la ubicación correcta. Me gustaría que esa parte sea fácil de reutilizar. Así que pensé en hacer una vista parcial fuertemente tipada que haga las cosas izquierda, derecha y media. También para los módulos estaba pensando en usar vistas parciales y representar el parcial correcto de cierto tipo de módulo. Entonces el texto tendrá un parcial, html tendrá uno y así sucesivamente. No estoy seguro si esta es la técnica correcta.

¿Debo usar una vista parcial para manejar las partes izquierda, central y derecha y usar vistas parciales para cargar los módulos?

Si alguien tiene otra información sobre la construcción de un módulo basado en cms o técnicas/estructuras que pueda usar, sería realmente genial también.

Gracias de antemano, Pickels.

+0

Mi consejo sería no molesta - utilizar Umbraco (que puede ser adaptado para ser muy sencillo). El esfuerzo de crear y mantener incluso un CMS aparentemente simple es grande, y eso es antes del inevitable deslizamiento futuro. ¿Qué sucede cuando alguien quiere retroceder a una versión anterior del contenido? ¿Puede tu esquema lidiar con eso? –

+0

Gran pregunta. ¡Gracias hombre! – Shimmy

Respuesta

0

Sí, esa es la mejor opción. Establezca una "base estructural" para cada plantilla con css, y haga que cada módulo cargue sus propias vistas en las secciones de plantilla correctas. Digamos que su plantilla tiene un menú superior debajo del encabezado común donde muestra el logotipo de la compañía y esas cosas.inserte en la base de datos la información sobre el módulo y sobre esa sección superior de la plantilla (debe crear totalmente una tabla en la base de datos sobre la estructura de la plantilla, para que el sistema sepa dónde colocar cada módulo relacionado con cada página), y simplemente usar el sistema para obtener el módulo necesario en cada solicitud de página en la posición correcta, haciendo que cargue su propia vista (s) en ese lugar.

esperamos que entienda mi escritura :)

+0

Realmente no entendí lo que escribiste. – Pickels

+0

básicamente, haga que su controlador/modelo cargue una matriz con la base estructural de cada página solicitada, y para cada sección encontrada en la estructura, tendría un módulo asociado. – yoda

Cuestiones relacionadas