Choosing a Content Management System (CMS) Document Version <1.0>
Revision History Date Document Version Description Created By: 10/Oct/2013 <1.0> First draft Laraib Saad
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 thirdparty 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 Security Code Documentation harder to support unless the original developer is on hand throughout the lifetime of the site s operation high security - as hackers are writing scripts for popular CMSs, not custom CMSs 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 there may not be any well written documentation on how to use it, make changes, etc Everyone has a different style of coding, and it can be hard for some developers to determine the structure of others Security is at risk if you're dealing with highly confidential data Un-necessary code - it may contain un-necessary stuff that you never wanted in first place 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 userfriendly but more complex site development options 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 Example Sites Community Portal: Fast Company, Team Sugar than Wordpress offers Social Networking: MTV Networks Quizilla formats also. Social Networking: PlayStation Blog Education: Harvard University Restaurant: IHOP News Publishing: CNN Political Ticker Education/Research: NASA Ames Research Center News Publishing: The New York Observer Installation Ease of Use Features Drupal Installation Forum 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. Known for its powerful taxonomy and ability to tag, categorize and Drupal Installation Forum 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. Designed to perform as a community platform, with strong social Wordpress Installation Forum 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. Ease of use is a key benefit for experts and novices alike. It s
Caching Plug-ins Best Use Cases organize complex content. Pressflow: This is a downloadable version of Drupal that comes bundled with popular enhancements in key areas, including performance and scalability For complex, advanced and versatile sites; for sites that require complex data organization; for community platform sites with multiple users; for online stores networking features. 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. 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. 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. WP-SuperCache: The Super Cache plugin optimizes performance by generating static html files from database-driven content for faster load times. Ideal for fairly simple web sites, such as everyday blogging and news sites; and anyone looking for an easy-tomanage site. Add-ons make it easy to expand the functionality of the site Production Cost Very High High Low
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: Figure: Yii vs CodeIgniter vs Zend vs Cakephp vs Symfony commparison Chart
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: PHP Frameworks PHP4 PHP5 MVC Multiple DB's ORM DB Objects Templates Caching Validation Ajax Auth. Module Modules EDP Yii - CodeIgniter - - - - - Zend - - - CakePHP - - Symfony - - - Table: Supported features in PHP Frameworks: Yii, CodeIgniter, Zend, CakePHP and Symfony
1.11 References: http://www.newnorth.com/custom-cms-vs-packaged-cms/ http://www.sitepoint.com/forums/showthread.php?643367-cms-vs-php-framework-vs-hand-coding http://cmswebsites.org/blog/hand-coding-vs-pre-built-cms/ http://www.collegemediainnovation.org/blog/2009/09/guest-post-hand-coding-vs-cms-hand-coding-gives-essential-experience/ http://futurictech.blogspot.com/2013/07/which-is-better-hand-coding-or-pre.html http://castroller.com/podcasts/thechrispirillo/3763044 http://www.lunametrics.com/blog/2010/10/21/custom-cms/#sr=g&m=o&ct=-tmc&rf=1633178330.1381226729 http://www.lockergnome.com/net/2011/10/24/which-is-better-hand-coding-or-pre-built-cms/ http://www.sitepoint.com/forums/showthread.php?752224-cms-or-code-it-your-self http://www.fdsc.net/index.php/content-management-system/custom-build-versus-pre-built-cms.html http://webrevisions.com/tutorials/php-framework-the-best-php-framework-for-2013/#.uluwhfnelz5 www.google.com/trends http://www.creativebloq.com/design/choose-right-php-framework-12122774