¿Por qué elegir un CMS establecido en lugar de construir uno desde cero?

13

Gran parte de mi investigación en las próximas semanas se centrará en diferentes CMS. Ya he echado un vistazo al episerver y al umbraco. Al leer estos sistemas, no puedo evitar pensar que es posible proporcionar funciones de administración de contenido sin conocer los detalles y la estructura de muchas de estas plataformas CMS (bastante grandes).

En el pasado, me han dado proyectos por los cuales mi papel como desarrollador debe mantenerse separado del de un editor (tiene sentido). Es decir, era mi tarea desarrollar el diseño y la funcionalidad del sitio y el trabajo de mis clientes para actualizar el contenido. Logré esto implementando también una especie de 'portal' en el que había un par de páginas que aceptaban la entrada de texto y la carga de imágenes, etc. (básicamente, cualquier contenido que quisieran), grabar este nuevo contenido en la base de datos y luego por diseño, el código subyacente leería todo esto desde la base de datos en los controles relevantes (por ejemplo, repetidores).

Para mí, esta ha sido una manera suficientemente efectiva de que mis clientes administren el contenido para implementarlo con mis soluciones. Sé que estoy equivocado, y que los CMS son preferibles a los que se construyen desde cero, pero aparte del costo, ¿por qué?

SkonJeet
fuente
1
¿Por qué querría pasar por todo el dolor del desarrollo (diseño, codificación, depuración, prueba) usted mismo cuando otra persona ya ha hecho todo eso por usted?
PhilPursglove
55
Hay documento sobre documento y sitio web sobre sitio web de instrucciones y tutoriales sobre cómo aprender sobre este tipo de CMS corporativos. ¿Por qué querría pasar por todo el dolor de aprender y acostumbrarme a implementarlos cuando de hecho podría desarrollar el mío desde cero con un control completo?
1
La razón principal por la que atraviesas el dolor de aprender es porque también te estás saltando el dolor de la solución de problemas (con suerte, de todos modos). Y si está buscando documentación, con suerte eso también significa que cuando tiene que capacitar a alguien, hay mucha menos documentación que debe hacer.
sclarson
Existe una tecnología más nueva del antiguo enfoque de instalación de CMS en el que no tiene que aprender realmente nada y puede programar en su propio idioma. Yo mismo construí uno porque me cansé de este problema de instalación o de usar algo cms cómodo que funciona para los diseñadores. Mi perfil tiene un poco de cómo hacerlo.
Jason Sebring
@sparks, solucionar problemas de errores de otras personas es 100 veces más molesto que solucionar sus propios errores.
Pacerier

Respuestas:

9

Utiliza un CMS existente para deshacerse del peso de las características que probablemente son importantes para los usuarios de las que no desea tener un seguimiento.

EPiServer, Umbraco, Orchard, etc., han incorporado opciones para realizar un seguimiento de cosas como versiones, a qué contenido está vinculado otro contenido, cómo crear formularios, etc. Y más allá de eso, tienen eventos que puede conectar para modificarlos como te parece bien.

Por lo general, ya tienen miles de horas de solución de problemas, así que ¿por qué no aprovecharlas? Especialmente en las versiones gratuitas o de código abierto, donde literalmente no le cuesta nada más que el tiempo de aprender sus API, que casi puedo garantizar es menos tiempo del que dedicaría a recrear esa funcionalidad.

Entonces, a menos que no necesite reconstruir la funcionalidad que proporcionan, ¿por qué no usar algo que ya sabe que funciona bien?

Aquí hay una breve lista de características existentes que no tendría que implementar por su cuenta:

  • versionado de contenido
  • flujo de trabajo
  • informes de estado del enlace de página
  • personalización del editor wysiwyg
  • modelado de contenido (tipos de página / tipos de documentos)
  • API de recuperación de contenido
  • documentación / capacitación para editores y desarrolladores
  • estrategias de almacenamiento en caché de objetos
  • sistemas de consulta de contenido para búsqueda
  • estructuras de jerarquía de contenido (en CMS donde el contenido está en forma de árbol de todos modos)
  • vistas del editor
  • vistas de administrador
  • control de acceso
Sclarson
fuente
He marcado esto como la respuesta, ya que es la lista más completa de beneficios que obtendría al optar por uno de los CMS mencionados. Sin embargo, creo que probablemente me lleve a ensuciarme las manos para apreciar completamente los beneficios.
Configurar su propio sistema es solo un "status quo" sobre los sistemas en la nube si no valora el control sobre sus propios datos, es dueño de sus servidores o no comprende la distinción entre el software que posee y el software que alquila. Estos anuncios sigilosos para su negocio me parecen muy FUDdy. Si realmente crees que un SOS CMS basado en la nube es una buena opción para la situación del OP, entonces dale una respuesta y deja que la comunidad vote sobre él.
CodexArcanum
@CodexArcanum: no te tomes en serio lo que dice emeraldcode. Son el CEO de una empresa que brinda esos servicios. Básicamente, su cuenta es un anuncio gigante.
Ramhound
4

Hay NO respuesta definitiva en cuanto a cuáles mejor. Depende de sus necesidades, estructura, costo, mano de obra y cualquier otro número de factores.

CMS prefabricados / establecidos

Pros

  1. Ahorra MUCHO tiempo. Algunos de los CMS que han existido durante años tienen muchas horas de trabajo. Es posible que no necesite el 10% de las funciones en un CMS prefabricado, pero independientemente de eso, ahorra tiempo y el tiempo no es gratis.
  2. Ahorra MUCHO dinero.
  3. En general, tiene una ENORME cantidad de características que probablemente funcionarán para sus necesidades.

Contras

  1. Licencia . Debe cumplir con la licencia del CMS prefabricado que utiliza. Puede que esto no sea un gran problema, pero tal vez desee cambiar algo prohibido por la licencia, o tal vez se le prohíba usarlo en un entorno de producción.
  2. Pesada . Dado que el CMS probablemente se adaptará para llegar a la mayor cantidad de público posible. Tal vez tenga una limitación de servidor o no quiera cargar scripts en exceso para la administración básica de contenido.
  3. Posiblemente escrito de manera no modular . Digamos que implementó un CMS prefabricado y que el sitio web está listo para que el cliente cierre la sesión y diga ¡desplieguemos! Luego lo disparas a tu cliente y le dicen "¡Oh, quiero agregar esta función al CMS!" Luego, si elige un CMS que es muy complejo o no muy modular, puede tener problemas para implementar su solicitud de características o puede llevar una cantidad excesiva de tiempo.
  4. Heredar sus errores . Heredará todos los errores existentes en el CMS. No es un problema ya que generalmente son fáciles de actualizar, pero ¿qué pasa si modificas en gran medida partes para agregar una función?

CMS casero / personalizado

Pros

  1. Adaptado a sus necesidades . Podrá integrar SOLO lo que necesita y conservar una alta portabilidad.
  2. Escrito en tu idioma . Tal vez tiene un sitio web ASP.net MVC y todos los CMS están escritos en PHP, pero desea uno que esté escrito en C # usando MVC y el motor de vista de afeitar (ejemplo aleatorio idk). Es mucho más fácil mantener una página web que sea uniforme y no tenga un gran PHP / JS / etc. CMS en medio de todo el código C #.
  3. El suyo / su empresa es el 100%, puede usarlo en todas las aplicaciones que desee sin comprar licencias adicionales, etc.

Contras

  1. Lleva mucho tiempo , por lo tanto es costoso . Puede pasar cualquier cantidad de tiempo 1-Docenas de días trabajando en un CMS dependiendo de las horas dedicadas, la experiencia, etc., etc.

Si tiene el tiempo y ninguno de los sistemas prefabricados cumple con los requisitos o es demasiado complejo, no veo ninguna razón para no construir el suyo, aparte del factor que consume mucho tiempo, por supuesto.


fuente
2
Cuando elimina el tiempo y el dinero como restricciones, rara vez hay alguna razón para no hacer algo.
sclarson
1
@sparks los proyectos del mundo real SIEMPRE tienen esas limitaciones;)
1
Algo de lo que estaba diciendo con mi comentario. Decir contras del tipo de azúcar "que consume mucho tiempo" cubre la cantidad de trabajo que implica escribir desde cero. Usted escribe el código, luego tiene que documentar / entrenar y tener todo el tiempo de depuración / solución de problemas para cada característica que escriba.
sclarson
2

Es posible que también desee agregar seguridad web a la discusión. Si crea un CMS desde cero, es probable que tenga vulnerabilidades a varios ataques (consulte, por ejemplo, https://www.owasp.org/index.php/Top_10_2010-Main ). Si, por otro lado, usa un CMS existente, generalmente será más seguro, pero por otro lado, sus vulnerabilidades estarán más extendidas.

Por lo tanto, es un poco un compromiso de seguridad, pero diría que un CMS "estándar" bien actualizado es más seguro que uno hecho en casa, pero en cierta medida depende de cuál sea el estándar que elija.

Sin embargo, si usa un CMS "estándar" y realiza muchas modificaciones, puede romper la ruta de actualización y terminar sin poder actualizar su CMS y, por lo tanto, es vulnerable.


fuente
1

Una cosa que debe tenerse en cuenta es que su CMS puede quedar obsoleto, no necesariamente en el lenguaje, sino más bien en la funcionalidad y el diseño. ¡Es posible que el siguiente grupo de programadores no quiera trabajar con esas limitaciones en la funcionalidad y, en cuanto al diseño, puede arruinar su imagen!

Si es un sitio web simple, o no tienes mucho tiempo para dedicar, ¡CMS suena genial!


fuente
1

La razón número uno para crear su propio CMS es poder agregarle su propia funcionalidad con el tiempo. Con un CMS estándar, está vinculado a la arquitectura y la tecnología del tercero que lo creó.

Ejemplos:

  • Umbraco - dependencia de XSLT para el diseño - #fail

  • Orchard: curva de ingeniería y aprendizaje excesivo para desarrolladores de formularios web

... etc.

Jefe irlandés
fuente
1
Umbraco no requiere XSLT, pero es una opción.
sclarson
¿Quieres decir que puedes usar CSS exclusivamente? ¿Fue Umbraco quien también tenía su propio lenguaje de marcado patentado? Al igual que SkonJeet, también tuve que investigar esto en una etapa.
IrishChieftain
2
Umbraco tiene formularios web y una opción de mvc. Nunca le ha requerido que use su propio lenguaje propietario. Siempre ha estado en asp.net y siempre tuvo la opción de consultar su almacén de datos y escribir controles si lo desea.
sclarson
1
Otro CMS que utilicé fue N2, que tenía un código realmente elegante, tanto que no podías entenderlo. Su opinión era que el código debería documentarse, lo que es un total de Bee Ess.
IrishChieftain
1
He hecho varios sitios web en Umbraco y nunca he usado XSLT. En la nueva versión, ni siquiera es una opción integrada, que yo sepa. Sin embargo, XSLT es aparentemente extremadamente poderoso (¡para las 6 personas que pueden entenderlo!).
EJ Brennan
1

Seguir con el negocio principal es un argumento bastante bueno, también diría. El hecho de que esté construyendo un automóvil no significa que también deba crear su propio combustible. Es un producto completamente diferente y es muy probable que alguien más lo haga mucho mejor ya que su enfoque estará en otro lado. Los errores en los sistemas desarrollados recientemente tampoco deberían subestimarse. Un cms que ha existido por un tiempo tendrá algunos errores, sí, pero no cerca del número que tendrá el nuevo. Millones de usuarios han probado un cms existente a través de los años.

Daniel Ovaska
fuente
"tu enfoque estará en otra parte" - lol
Tim Abell