symfony joomla drupal Zend cake php Typo 3 cantao

Every profession has its own vocabulary. As long as you talk to people in the same field this is perfectly fine but as soon as your conversational partner is somebody from outside your business you have to watch your tongue if you do not wish for your communication to fail.

Obviously there are many occasions were you cannot get around this problem easily. In particular people working in sales are facing a dilemma every day. They certainly do their best to impress prospective customers with all the shiny facets of Web 2.0 and HTML 5, of CMS and CRM, of SEO an SEM, of compatibility, accessibility, usability and augmented reality. Your customers however will easily loose themselves in a jungle of words they might never have heard of.

Two of the super secret words are CMS and framework. What are they actually and what is the difference between them?

A typical website usually consists of different types of pages. You have text centered pages that talk about the company, its philosophy or any other subject you can think of. Then there are listings, list of things with a common structure. Examples are news, products and such. Usually they link to a third type, the detail page for any given item.

These basic types cover already the most important parts of a typical website.

You as the owner of a website normally want a convenient access to these pages that allows you to modify them, add new articles or products and so on. This is where the CMS comes into the game. CMS stands for Content Management System, strictly spoken it should be rather Web Content Management System as there are other types of CMS, too but let’s keep this sophistry aside.

The CMS has a special set of pages that is commonly known as the application back end. Say, you have a number of products on your site. On the back end you would see them at least in two different fashions, either as a list or as a form. Try to see the list view as summary of all entries. Usually you can perform some basic tasks in there, for instance activating/deactivating or deleting an entry. The form view is the place to edit text, manage pictures, link a product to another one and so on.

List view (left) and form view (right)

And you cannot only do this with products, it also works with news, picture galleries, any other type of content.

So this is what a CMS does, it gives you the ability to modify the contents of your web site. Whether these modifications are easy to achieve or a painful task, whether you are very restricted or completely free in the things you can do, whether the back end is exactly what you need or just an approximate compromise depends a lot on the CMS. And all depends on the fact that the agency you work with has understood your needs.

Well known CMS include Drupal, Joomla, Contao, Typo3 or WordPress. An agency would usually specialize in one or maybe two of them. An agency would also usually use a framework to build highly customized CMS but you will read about this at a later point.

The better known CMS are usually of good quality and often times have a busy open source community behind them. Some of them are meant to cover just a certain segment of the market, for instance WordPress is the common choice for blogs (or online diaries). Typo3 is known to be the Swiss army knife of CMS but on the other hand it is hard to master and its interface not always obvious.

One could say good and bad things about all of them but one disadvantage they all have in common: It’s hard to do something outside the box. Vanilla web sites are built quickly but as soon as you try to build something really advanced things can get awkward, very awkward indeed. Obviously this is the major issue with every off-the-shelf product as opposed to a tailor made one.

This is where frameworks come into the game. To understand the nature of a framework we need to dig a little bit deeper in the functionality of web sites.

In the first years of the internet web pages were mostly written manually. In order to update them, the source had to be modified directly, so this was certainly not for everybody. Nowadays it would be hard to find any web site made like this. Modern web sites are driven by databases and use huge architectures of programming code. Code that connects to those databases, code that makes back ends work, code that makes front ends work, code that ensures security measures. You could go on forever so manifold are the tasks done by pieces of code.

Six or seven years ago a web developer would write this code, line by line, project by project. He would collect code units for re-usage in other projects and eventually assemble them in a code library that would suit his needs. When developers started sharing the fruits of their labor and more and more people started to contribute their own knowledge, frameworks were born. Cake and Zend, Prado and Pear, Seagull and Symfony, there are plenty of them but the overall tendency seems to be towards consolidation.

So a framework is a collection of code pieces that perform certain tasks for example resizing a picture. In the case of older Pear this is a rather loose collection, most of the modern frameworks adhere to a complex structure known as MVC.

So what does that mean for the customer, will he have to become a programming wizard only to add a new product to his website? Not at all! When you buy a website that is framework based it will still come with a decent back end. Only this time all the fancy lists and forms are adapted to your needs. Buttons and switches are where you expect them. And a framework is flexible. We have customers that wish to add news, full stop. We have customers that wish to move blocks around somewhere on their page. You can do that with any CMS but it’s complicated. We have customers that wish to import data from all sorts of other applications. Can do, no bother. In a CMS – doable but cumbersome. We have customers that wish to run a blog. We take a CMS of course and adapt it to their needs.

So there is nothing wrong with CMS, most of them are good software but they are simply not the weapon of choice for every case. And frameworks are nothing to be afraid of. As a site owner you will obviously not have to touch the code at all. What you get is a tailor made CMS that does exactly what you expect.

As a long term criterion you may wonder what happens if the agency that built your website suddenly ceases business. Wouldn’t it been have better to use a very widespread CMS ind the first place where you could easily find another agency to take over maintenance? I don’t think so. Agencies employ developers, developers can write code, no matter whether it’s framework code or CMS code. Trust’em they will fix it.