Quantcast
Channel: WEB and development » Web Development | WEB and development
Viewing all articles
Browse latest Browse all 2

A Framework or a CMS? What is better to choose?

$
0
0

There are lot of articles who are talking about Frameworks and CMS systems. What to choose? Which is the best?

However I wanted to write an article from a totally different perspective. First of all I want to make sure that developers and customers understand the difference between the terminology “CMS” and “Framework” nowadays.

Some theory first

When we use the terminology “Framework” we are more often talking about Web application framework . A web application framework is simply based on coding. If you are a programmer or a web developer that loves coding you often choose a Web application framework for your projects.

A CMS is a Content management framework and it is based on the modules rather than code. Anyone can handle a CMS as it doesn’t require any coding knowledge. Of course programmers can also choose a CMS as they can do their job faster.

There are lot of fights…

There are lot of misunderstandings about what a framework and what a CMS can do. Lot of fans that use CMS they are saying that “We can do everything with a CMS” and the fans of the frameworks are “No we can do everything with a framework” and so on… As a fan of frameworks of course I will have the same opinion but actually this is not true! The truth is that as we use the same base (PHP,RoR,python,. NET… e.t.c.), we all can do everything (well almost everything, but still). Even the myth that CMS doesn’t use a good structure isn’t truth. For example the Drupal 8 is based on Symfony framework, a very good object oriented web application framework.

So what do I choose?

Nowadays the CMS is more popular that the Web application Framework as it is really easy to use it. Even if you don’t have programming knowledge you can install and create a whole website with just a CMS. So what to choose?

It is always about four basic things that you have to think before you choose a framework or a CMS in my personal experience:
1. How much time you want to spend?
2. What do you want to do and how flexible has to be this project in the future?
3. How much money (if it matters) you will take after the end of the project.
4. What the hosting environment will be

For the customer it doesn’t really matter what tools you will use. The thing that matters is to have their job done. So let’s have an example:

I will explain to you my choices about two personal projects and one normal project. This blog and www.grocerycrud.com. First of all I am a PHP web developer so I can choose either a PHP framework, either a PHP CMS.

So for this blog that you are reading right now, I used WordPress as:
1. I wanted to spend as less time as I could as it is a simple blog
2. I didn’t want to do anything extreme. Just the usual. SEO, caching, comments, nice design and less spams!
3. I will not take any money for creating mine project. So I don’t have as a criteria the money
4. Free to choose

For grocerycrud.com I choose Codeigniter framework as:
1. I wanted to spend a normal time to do it. Not too much as this is a personal project
2. I wanted to be 100% extendable as I am changing the structure all the time with new ideas. For example now I am preparing a new mini website inside the grocerycrud.com (www.grocerycrud.com/image-crud).
3. Still the money doesn’t count here as it is a personal project
4. Free to choose

For www.dailyfx.gr I chose Codeigniter framework as

1. I had only 1 month deadline for me to do it from scratch
2. It was a system that the clients wanted some extremely custom webpages (such as with an internal connection with java applet charts). I didn’t choose wordpress or drupal as it would require much more time to customize all of these unique needs.
3. For money nothing more than my normal monthly salary. So the money was not something to motivate me
4. Just another shared hosting

I want to investigate more

As I said only in my personal experience are 4 simple things that I have in mind but this is only because the outsource projects that I have are often small projects so that’s why I have only these four things in mind. Of course if I want to investigate more time I think a Web Application framework is the solution and I can give you much more criteria to have in mind. As the Symfony webpage says:

You’re making progress and that’s a good thing! You already know that you are going to use a framework to develop your site or your application. But which one? Here is a checklist that you can use to avoid making a mistake:

 

So there are 10 criteria for choosing the correct framework. You can take a look at this article as it is really straight forward about what are the real criteria to actually choose a framework. So if you really want to investigate to a framework for your big projects, have in mind that it is a long-term commitment, so make sure that you make the right selection… for you!

What about a CMS?

On the other side it is not so bad to know programming and also be a “CMS guy”. The bad think about it, is that they are many “CMS guys” that don’t have any programming knowledge and think that they can do everything with a CMS. This is also a myth. When I told before that with a CMS you can do everything as you have the same base it also depends if you have some basic programming skills of course. If not then you can do everything as far as the programmers/web developers let you have it.

So let’s face it when you are developing a CMS without writing any line of code, then you are not a programmer . So I am tired to have similar conversation like this
- “Oh I am a designer and I know programming too”
- “Really what tools do you use?”
- “WordPress!”
- “So do you write any plugin?!”
- “No”
- “Ok!! so what makes you a … programmer”
- “I can take a ready template and change the html to fit to my content”
- “Agrrrrr, this doesn’t make you a programmer!! Just face it.”

The right terminology to use is “I am a web designer”, that’s it. Even if you change a bit the PHP code to a plugin you are still a Web designer.

If you can only handle CMS without writing a line of code then you are an “Advanced Web User”, not “Developer” and especially not a “Programmer”

If you only know how to develop a WordPress Website this makes you a “WordPress Developer”

If you only know how to develop a Drupal Website this makes you a “Drupal Developer” and so on…

Even if you know only to develop PHP and PHP websites that makes you “A PHP Developer”.

To call yourself a “Smashing Web Developer” this means that you know to handle many tools, frameworks and many web languages (you know PHP,RoR,.NET,Python java or any other web language you like)

Nowadays they are all starting with PHP because it is easy and they named themselves “programmers”. No! A programmer is someone who has demonstrable knowledge in coding in at least one major language (Java, J2EE, C, C++) or even a PHP programmer if you can handle Classes, Object Oriented relations and Web Services like a peace of cake then yes. Knowing only HTML or CSS and some PHP functions is not something that will make you a programmer… it is a good start thought :)

And finally a conclusion…

So as a conclusion I have to say that it always depends of what you want to do and how much time you have to deal with it. I believe that every tool is build for a reason so as many tools you know (frameworks or CMS), so flexible you are as a professional developer. So it doesn’t worth it to be a CMS or a Framework fan. Just choose the best tool for you situation and that’s it.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images