Perché scegliere un CMS consolidato anziché crearne uno da zero?


13

Molte delle mie ricerche nelle prossime settimane riguarderanno diversi CMS. Ho già dato una breve occhiata a episerver e umbraco. Durante la lettura di questi sistemi non posso fare a meno di pensare che fornire funzionalità di gestione dei contenuti sia realizzabile senza apprendere i dettagli e la struttura di molte di queste (piuttosto grandi) piattaforme CMS.

In passato mi sono stati dati progetti in base ai quali il mio ruolo di sviluppatore deve essere separato da quello di un editore (ha senso). cioè era mio compito sviluppare il design e la funzionalità del sito e il lavoro dei miei clienti per aggiornare il contenuto. Ho raggiunto questo obiettivo implementando anche una sorta di "portale" su cui c'erano un paio di pagine che avrebbero accettato input di testo e caricamenti di immagini, ecc. (Fondamentalmente, qualunque contenuto volessero), registrando questi nuovi contenuti nel database e in base alla progettazione, il code-behind avrebbe letto tutto ciò dal database in controlli pertinenti (ad esempio ripetitori).

Per me, questo è stato un modo abbastanza efficace per i miei clienti di gestire il contenuto da distribuire con le mie soluzioni. So di sbagliarmi - e che i CMS sono preferibili a quelli costruiti da zero - ma a parte la questione dei costi, perché?


1
Perché vorresti affrontare tutto il dolore dello sviluppo (progettazione, codifica, debug, test) da solo quando qualcun altro ha già fatto tutto questo per te?
PhilPursglove,

5
C'è documento su documento e sito Web su sito Web di istruzioni ed esercitazioni su come apprendere questo tipo di CMS aziendali. Perché dovrei voler affrontare tutto il dolore dell'apprendimento e abituarmi a metterli in pratica quando in realtà potrei sviluppare il mio da zero con il controllo completo?

1
Il motivo principale per cui affronti il ​​problema dell'apprendimento è perché stai anche saltando il dolore della risoluzione dei problemi (si spera comunque). E se stai trovando la documentazione, si spera che ciò significhi anche quando devi addestrare qualcuno, c'è molta meno documentazione che devi fare.
Sclarson,

C'è una tecnologia più recente dal vecchio approccio di installazione CMS in cui non devi imparare davvero nulla e puoi programmare nella tua lingua. Ne ho costruito uno anch'io perché mi sono stancato di questo problema di installazione o ho usato qualcosa di cmsy che funziona per i progettisti. Il mio profilo ha un po 'di come procedere.
Jason Sebring

@sparks, Risoluzione dei problemi dei bug di altre persone sono 100 volte più fastidiosi rispetto alla risoluzione dei problemi dei propri bug.
Pacerier,

Risposte:


9

Si utilizza un CMS esistente per sbarazzarsi del peso delle funzionalità che sono probabilmente importanti per gli utenti di cui non si desidera tenere traccia.

EPiServer, Umbraco, Orchard, ecc. Hanno tutti opzioni integrate per tenere traccia di cose come le versioni, a quali contenuti sono collegati altri contenuti, come costruire moduli, ecc. Inoltre hanno eventi che puoi agganciare per modificarli come ti sembra giusto.

Di solito hanno già fatto migliaia di ore di risoluzione dei problemi, quindi perché non trarne vantaggio. Soprattutto nelle versioni gratuite o open source in cui non ti costa letteralmente nient'altro che il tempo di apprendimento delle loro API che posso quasi garantire è meno tempo di quanto spenderesti ricreando quella funzionalità.

Quindi, a meno che non sia necessario ricostruire le funzionalità che forniscono, perché non utilizzare qualcosa che è già noto per funzionare bene?

Ecco un breve elenco di funzionalità esistenti che non dovresti implementare da solo:

  • controllo dei contenuti
  • flusso di lavoro
  • rapporti sullo stato dei collegamenti alla pagina
  • personalizzazione dell'editor wysiwyg
  • modellazione del contenuto (tipi di pagina / tipi di documento)
  • API per il recupero dei contenuti
  • documentazione / formazione per redattori e sviluppatori
  • strategie di caching degli oggetti
  • sistemi di query dei contenuti per la ricerca
  • strutture della gerarchia del contenuto (nei CMS in cui il contenuto è comunque in una struttura ad albero)
  • visualizzazioni dell'editor
  • visualizzazioni dell'amministratore
  • controllo di accesso

Ho contrassegnato questo come la risposta in quanto è l'elenco più completo di vantaggi che otterrei dalla scelta di uno dei CMS menzionati. Penso che probabilmente mi farà sporcare le mani con loro per apprezzarne appieno i benefici.

Configurare il proprio sistema è solo "status quo" sui sistemi cloud se non si valuta il controllo sui propri dati, si possiedono i propri server o non si capisce la distinzione tra software in proprio e software in affitto. Queste pubblicità invisibili per la tua azienda mi sembrano molto FUDdy. Se ritieni sinceramente che un CMS SOS basato su cloud sia una buona scelta per la situazione del PO, allora fagli una risposta e lascia che la comunità voti su di esso.
CodexArcanum

@CodexArcanum - Non prendere sul serio nulla di emeraldcode. Sono l'amministratore delegato di un'azienda che fornisce tali servizi. Quindi in pratica il loro account è un annuncio gigante.
Ramhound,

4

C'è NO risposta definitiva su quale quelli meglio. Dipende dalle tue esigenze, struttura, costo, potere umano e qualsiasi numero di altri fattori.

CMS prefabbricato / stabilito

Professionisti

  1. Risparmia MOLTO tempo. Alcuni dei CMS che sono in circolazione da anni hanno un sacco di ore uomo in loro. Potrebbe non essere necessario il 10% delle funzionalità in un CMS pre-realizzato, ma indipendentemente dal fatto che risparmi tempo e tempo non è gratuito!
  2. Risparmia MOLTO denaro.
  3. Generalmente hanno una ENORME quantità di funzioni che probabilmente funzioneranno per le tue esigenze.

Contro

  1. Licenza . È necessario rispettare la licenza del CMS preimpostato che si utilizza. Questo potrebbe non essere un grosso problema, ma forse vuoi cambiare qualcosa proibito dalla licenza, o forse ti sarà proibito usarlo in un ambiente di produzione.
  2. Pesante . Dal momento che il CMS sarà molto probabilmente su misura per raggiungere il maggior numero di destinatari possibile. Forse hai una limitazione del server o non vuoi caricare script in eccesso per la gestione dei contenuti di base.
  3. Forse scritto in modo non modulare . Supponiamo che tu abbia implementato un CMS prefabbricato e che il sito Web sia pronto per la firma del client e diciamo che distribuiamo! Quindi lo spari sul tuo client e loro dicono "Oh, voglio aggiungere questa funzione al CMS!" Quindi, se si sceglie un CMS che è molto complesso o non molto modulare, è possibile che si verifichino problemi nell'implementazione della richiesta di funzionalità o che potrebbe richiedere un tempo eccessivo.
  4. Eredita i loro bug . Erediterai tutti i bug esistenti sul CMS. Non è un problema dal momento che di solito sono facili da aggiornare, ma cosa succede se hai modificato pesantemente parti di esso per aggiungere una funzionalità?

CMS artigianale / personalizzato

Professionisti

  1. Su misura per le tue esigenze . Sarai in grado di integrare SOLO ciò di cui hai bisogno e mantenere un'alta portabilità.
  2. Scritto nella tua lingua . Forse hai un sito Web ASP.net MVC e tutti i CMS disponibili sono scritti in PHP, ma ne vuoi uno scritto in C # usando MVC e il motore di visualizzazione del rasoio (esempio casuale di idk). È molto più semplice mantenere una pagina web uniforme e che non abbia un enorme PHP / JS / ecc. CMS nel mezzo di tutto il codice C #.
  3. Distinti voi / vostra azienda possiede al 100%, è possibile utilizzarlo nel maggior numero di applicazioni che si desidera w / o l'acquisto di licenze aggiuntive, ecc

Contro

  1. Richiede tempo , quindi è costoso . Potresti dedicare qualsiasi periodo di tempo da 1 a dozzine di giorni a lavorare su un CMS a seconda delle ore inserite, dell'esperienza, ecc. Ecc.

Se hai tempo, e nessuno dei sistemi prefabbricati si adatta al conto o sei troppo complesso, non vedo alcun motivo per non costruirne uno tuo, a parte il fattore che richiede tempo.


2
Quando rimuovi tempo e denaro come vincoli, raramente c'è motivo di non fare qualcosa.
Sclarson,

1
I progetti del mondo reale di @sparks hanno SEMPRE quei vincoli;)

1
Sorta di quello che stavo dicendo con il mio commento. Dire svantaggi di un tipo di zucchero "dispendioso in termini di tempo" copre la quantità di lavoro necessaria per scrivere da zero. Scrivi il codice, quindi devi documentare / addestrare e avere tutto il tempo di debug / risoluzione dei problemi per ogni singola funzione che scrivi.
Sclarson,

2

Potresti voler aggiungere sicurezza web anche alla discussione. Se crei un CMS da zero, è probabile che tu abbia vulnerabilità a una serie di attacchi (vedi ad esempio https://www.owasp.org/index.php/Top_10_2010-Main ). Se invece usi un CMS esistente, sarà generalmente più sicuro, ma d'altra parte le sue vulnerabilità saranno più diffuse.

Quindi è un po 'un compromesso dal punto di vista della sicurezza, ma direi che un CMS "standard" ben aggiornato è più sicuro di uno fatto in casa, ma dipende in parte da quale di quelli standard che scegli.

Tuttavia, se si utilizza un CMS "standard" e si apportano molte modifiche, è possibile interrompere il percorso di aggiornamento e finire per non essere in grado di aggiornare il CMS e quindi si è vulnerabili.


1

Una cosa da considerare è che il tuo CMS potrebbe diventare obsoleto, non necessariamente nel linguaggio, ma piuttosto nella funzionalità e nel design. Il prossimo gruppo di programmatori potrebbe non voler lavorare con quei vincoli di funzionalità e per quanto riguarda il design potrebbe rovinare la loro immagine!

Se è un sito semplice o non hai molto tempo da dedicare, CMS suona alla grande!


1

Il motivo numero uno per creare il tuo CMS è quello di poter aggiungere la tua funzionalità nel tempo. Con un CMS standardizzato sei legato all'architettura e alla tecnologia della terza parte che l'ha creato.

Esempi:

  • Umbraco - affidamento su XSLT per il layout - #fail

  • Orchard - curva di apprendimento troppo ingegnerizzata per gli sviluppatori di moduli Web

...eccetera.


1
Umbraco non richiede XSLT, ma è un'opzione.
Sclarson,

Vuoi dire che puoi usare esclusivamente CSS? Umbraco aveva anche un linguaggio di markup proprietario? Come SkonJeet, ho anche dovuto cercare questo in una fase.
IrishChieftain,

2
Umbraco ha un modulo web e un'opzione mvc. Non ti è mai richiesto di usare il suo linguaggio proprietario. Sei sempre stato su asp.net e hai sempre avuto la possibilità di interrogare il loro archivio di dati e scrivere controlli per esso, se lo desideri.
Sclarson,

1
Un altro CMS che ho usato era N2, che aveva un codice davvero elegante, tanto che non si capiva. Il loro punto di vista era che il codice dovrebbe documentare se stesso che è un totale Bee Ess.
IrishChieftain

1
Ho realizzato più siti Web in Umbraco e non ho mai usato XSLT. Nella nuova versione non è più nemmeno un'opzione integrata per quanto ne so. Tuttavia, XSLT è apparentemente estremamente potente (per le 6 persone che possono capirlo!).
EJ Brennan,

1

Attenersi al core business è anche un argomento piuttosto valido. Solo perché stai costruendo un'auto non significa che dovresti anche creare il tuo carburante. È un prodotto completamente diverso e ci sono buone possibilità che qualcun altro lo farà molto meglio poiché la tua attenzione sarà altrove. Neanche i bug nei sistemi di nuova concezione devono essere sottovalutati. Un cms che è in circolazione da qualche tempo avrà alcuni bug sì, ma no dove vicino al numero che avrà il tuo nuovo. Un cms esistente è stato testato da milioni di utenti nel corso degli anni.


"la tua attenzione sarà altrove" - ​​lol
Tim Abell,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.