Choosing a Content Management System
(CMS)
Revision History
Date
Document
Version
Description
Created By:
Table of Contents
1. Introduction 4
1.1 Purpose 4
1.2 Content Management System 4 1.3 Choosing a Content Management System 4 1.4 Which CMS? How to Decide? 4 1.5 What matters most while deciding? 4 1.6 Custom Code VS Pre-Built CMS 4
1.7 What are your needs? 5
1.8 Comparison 5
1.9 Pre-Built Code (CMS): WordPress VS Joomla VS Drupal 6 1.10 Custom Code (PHP Frameworks): Yii vs CodeIgniter vs Zend vs Symfony 8
1.10.1 CodeIgniter 8 1.10.2 Zend 8 1.10.3 Yii 8 1.10.4 CakePHP 9 1.10.5 Symfony 9 1.11 Reference 10
Choosing a Content Management System (CMS)
Introduction
1.1 Purpose:
This Document describes the details of Content Management Systems. The purpose of this Document is to help in choosing the right kind of CMS(s) each defined in a way making one easy to identify the needs covered by the Many Content Management Systems.
1.2 Content Management System (CMS):
A Content Management System is a computer software system for organizing and facilitating collaborative creation of documents and other content.
A content management system is frequently a web application used for managing websites and web content.
The core function and use of content management systems is to present information on websites and CMS features vary widely.
A CMS may serve as a central repository containing documents, movies, pictures, phone numbers and scientific data.
CMSs can be used for storing, controlling, revising, semantically enriching and publishing documentation.
1.3 Choosing a Content Management System:
Choosing a CMS, or Content Management System is an important task for your web site development project. In this post we weight out the pros and cons to doing a custom CMS, or using a popular third-party pre-built CMS.
1.4 Which CMS? How to Decide?
There are a lot of things to consider when choosing a content management system (CMS). The first and most important is if you are going to use a pre-built CMS (WordPress, Drupal, Expression Engine, etc) or have a custom CMS built for your project. There are many benefits to both, and only by knowing your needs can you really establish which one will work best for you. In this article we will explore three considerations, and how they factor in your CMS decision.
1.5 What matters most while deciding?
Both Custom and Pre-Built Content Management Systems (CMS) offer similar programmatic benefits with no real limitations, so for most businesses, budget is the key factor in deciding between the two. As we explore the two approaches, what we are really establishing is which one will most likely get the job done with a smaller budget based on your needs.
1.6 Custom Code VS Pre-Build:
Custom Code refers to hand coding which means writing /editing a source code like HTML, CSS, Java
Script, .Net, PHP etc. for whole program or a portion of it which is native coding.
On the other hand people use frameworks to support their programming code, framework is a universal, reusable software platform to develop applications, products and solutions. It includes support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs).
Where as Pre-Build code / CMS refers to systems that provide procedures to manage workflow in a collaborative environment having ready made libraries.
1.7 What are your needs?
What is the time frame in which you are required to get the site up and running?
What is your budget?
Is a pre built CMS available out there which meets 80% of your requirements?
What is most important aspect(s) for the site success - Time to market, user interface, usability, ease of use, performance?
Can the existing pre built content management system be customized?
Who are the users who are going to be using the content management system and maintain your site?
Do you have a technology preference?1.8 Comparison:
Functionality
Custom Code
Pre – Build Code (CMS)
Customization Can be customize as much as you want Customization is limited For Non-Developer not good for non-developers good for non-developers
Time time consuming time efficient
Precision it gives you exactly what you want it gives you what you want but might have other un-necessary
stuff Performance faster and reliable if its static OR not too
much dynamic
performance is good but somewhat less if compared to a
static hand coded site
Changes not so good for frequent changes can handle frequent changes easily
Support over time harder to support unless the original developer is on hand throughout the lifetime
of the site’s operation
Everyone has a different style of coding, and it can be hard for some developers to determine
the structure of others
Security high security - as hackers are writing scripts for popular CMSs, not custom CMSs
Security is at risk if you're dealing with highly confidential
data Code cleaner code - sometimes a site may be so
simple and focused that you don’t need all the bells and whistles of WordPress or Drupal, and the code can be cleaner and less
bloated
Un-necessary code - it may contain un-necessary stuff that you never wanted in first place Documentation there may not be any well written
documentation on how to use it, make changes, etc
a proper documentation can be provided as the pre-build cms works in one way for everyone
IF THE CHOICE IS PRE-BUILD CODE (CMS) THEN HERE’S A COMPARISON OF KNOWN CMS AVAILABLE TO
CHOOSE FROM:
1.9 Pre-Build Code (CMS): Drupal vs Joomla vs WordPress
Drupal
Joomla
Wordpress
Homepage www.drupal.org www.joomla.org www.wordpress.org
About Drupal is a powerful, developer-friendly tool
for building complex sites. Like most powerful tools, it requires some expertise
and experience to operate.
Joomla offers middle ground between the developer-oriented, extensive capabilities of Drupal and user-friendly but more complex site
development options than Wordpress offers
Wordpress began as an innovative, easy-to-use blogging platform. With an ever-increasing repertoire of themes, plugins and widgets, this CMS is widely used for other website formats also. Example Sites Community Portal: Fast
Company, Team Sugar
Social Networking: MTV Networks Quizilla Education: Harvard University Restaurant: IHOP Social Networking: PlayStation Blog News Publishing: CNN Political Ticker Education/Research:
NASA Ames Research Center
News Publishing: The New York Observer
Installation Drupal Installation Forum
Drupal Installation Forum
Wordpress Installation Forum
Ease of Use Drupal requires the most technical expertise of the three CMSs. However, it also is capable of producing
the most advanced sites. With each release, it is becoming easier to use. If you’re unable to commit to learning the software or can’t hire someone who knows it, it may not be
the best choice.
Less complex than Drupal, more complex
than Wordpress. Relatively uncomplicated installation and setup. With a relatively small investment of effort
into understanding Joomla’s structure and
terminology, you have the ability to create fairly complex sites.
Technical experience is not necessary; it’s intuitive and easy to get a simple site set up
quickly. It’s easy to paste text from a
Microsoft Word document into a Wordpress site, but not into Joomla and Drupal
sites.
Features Known for its powerful taxonomy and ability to tag, categorize and
Designed to perform as a community platform,
with strong social
Ease of use is a key benefit for experts and
organize complex content.
networking features. powerful enough for web developers or designers to efficiently
build sites for clients; then, with minimal instruction, clients can
take over the site management. Known
for an extensive selection of themes. Very user-friendly with
great support and tutorials, making it great for non-technical users to quickly deploy
fairly simple sites. Caching Plug-ins Pressflow: This is a
downloadable version of Drupal that comes bundled with popular enhancements in key
areas, including performance and
scalability
JotCache offers page caching in the Joomla 1.5 search framework, resulting in fast page
downloads. Also provides control over what content is cached
and what is not. In addition, page caching
is supported by the System Cache Plugin
that comes with Joomla.
WP-SuperCache: The
Super Cache plugin optimizes performance
by generating static html files from database-driven content for faster load
times.
Best Use Cases For complex, advanced and versatile sites; for
sites that require complex data organization; for community platform
sites with multiple users; for online stores
Joomla allows you to build a site with more content and structure
flexibility than Wordpress offers, but
still with fairly easy, intuitive usage. Supports E-commerce,
social networking and more.
Ideal for fairly simple web sites, such as everyday blogging and news sites; and anyone looking for an
easy-to-manage site. Add-ons make it easy to expand the functionality of the
site
IF THE CHOICE IS CUSTOM CODE (HAND WRITTEN CODE) THEN HERE’S A COMPARISON OF FRAMWORKS
AVAILABLE TO CHOOSE FROM:
1.10 Custom Code (PHP Frameworks): Yii vs CodeIgniter vs Zend vs CakePHP vs Symfony
PHP frameworks help you to write clean and reusable code. It follows the MVC pattern, ensuring a clear separation of logic and presentation. But there is a much discussion all around because some prefer performance, some prefer better documentation, some prefer amount of built-in functions etc. Here are some pros and cons of using frameworks:
Pros
PHP frameworks can be used as a rapid application development method.
As each project is based on a similar structure, it allows for a faster development cycle.
Developers can easily jump from project to project without worrying too much about the structure of the code.
The underlying code will change less often, resulting in a more stable site.
Cons
Some frameworks have a steep learning curve.
It can be difficult to find developers with experience of a particular framework. Not all frameworks are bug free
Hackers can exploit weaknesses in frameworks.
Here is a Google Trend comparison chart showing popularity of different frameworks from 2013:
1.10.1 CodeIgniter:
Statistically, currently Codeigniter is one of the best php framework in the market. It’s a choice of most of php developer. It’s relatively easy to learn. Feature wise, Codeigniter is powerful frameworks such as Zend and Cake. Its major goal is to enable you to develop projects much faster than you could, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. It is only suitable for small to medium level projects.
1.10.2 Zend Framework:
Statistically, Zend Framework comes equal to CodeIgniter. It’s a powerful PHP Framework which is more secure, reliable and allows Web 2.0 applications & web services. It is used in building big applications.
1.10.3 Yii Framework:
Statistically, currently yii framework is the best php framework in the market. The main features that makes Yii on 3rd spot is its features and a bit faster framework.
1.10.4 CakePHP:
Statistically, CakePHP comes on 4th spot. It’s a popular framework for web application development. It comes with a lot of features: code generation, translations, database access, caching, validation, authentication etc.
1.10.5 Symfony:
Statistically, Symfony comes on 5th spot. It has a good reputation;it is recommended if you have a bigger project to do (more than a month to develop).
1.10.6 Features Supported by PHP Frameworks:
Table: Supported features in PHP Frameworks: Yii, CodeIgniter, Zend, CakePHP and Symfony
PHP
Frameworks PHP4 PHP5 MVC Multiple DB's ORM Objects DB Templates Caching Validation Ajax Module Auth. Modules EDP
Yii - CodeIgniter - - - - - Zend - - - CakePHP - - Symfony