Content Management Systems are used to manage information that goes onto a website. A typical example is a blog. Multiple websites can be stored and managed in one place and new content can be added to the websites without any involvement from engineers. Content includes the layout, navigation and style as well as the information that is presented on a website. This means that a lot of the work is done by the members who create the content. There are two separate User Interfaces on a CMS.
- Publicly available websites that can be viewed by anyone
- Members area where users can log-in and control the websites
A CMS can usually be extended by using components such as ‘Widgets’.
Behind the Scenes
Extend a CMS
A CMS can be made extensible so that new functionality can be added by third party developers without adding to the ‘core’. These extensible components are normally called Modules or Widgets. The functionality of Widget components is usually limited to the presentation layer, Modules of usually include more logic / data processing.
The core of the CMS is used to load pages based on the information that has been created by users and the components that can be added. The core performs fundamental operations such as storing and retrieving data.
With a CMS the main part of the pages, content, is actually stored in a database. This means that if the CMS is to perform well on a large scale then the content data should be cached in memory. This type of caching involves some programming and hardware configuration so it bridges software and system configuration. The core is cached normally by the web server because it is not stored in the database (output caching).
How does this affect Developers?
Creating a new website on a CMS such as WordPress can be unnerving for a Software Developer. The developer is taken out of the equation and the focus is moved onto the contents of the site. Why hire a professional when an online tool does such a good job? There are many reasons, flexibility is one.
A CMS is designed to display pages in a user friendly manner, it is not designer to have complex functionality. If you want a fully functional web application then you will need specific business logic and data processing that cannot be provided by an off the shelf CMS. A standard CMS will not integrate with existing systems. Developers can customise the core functionality of a CMS or create an entirely bespoke system based on the business requirements.
A CMS is not a component that can be added into an existing system like many development tools. It is the system backbone which allows developers to add components onto it.
If you are a developer you may be able to customise a CMS or at least learn something about software by using a CMS and looking at the design.
- Product Owner
If you are not interested in development then you can use a CMS to demonstrate your idea so that developers understand what you want from a fully fledged product.
If you just want to publish something online easily then a CMS like WordPress is ideal!