We have enjoyed our work as a Drupal Service Provider and have specialized in training our employees for the drupal projects and providing what the customer needs.
We all know that Drupal is a CMS, with very good flexibilities with its professionally maintained API and a module database maintained by a strong drupal developer community.
We have to build a project which is more of a Business Listing Directory such as Ali Baba. We are a bit confused to make a decision that whether we should should a Framework, or whether we should go ahead with Drupal.
We would appreciate your suggestions, specially for the following questions:
1) How would you compare or differentiate Drupal CMS with a Framework such as CakePHP?
2) Why you think we should OR should not go for Drupal?
3) Why you think we should OR should not go for a Framework?
Thanking the community in advance,
Waqar
Chief Technical Officer
4 Ace Technologies
www.4acetech.com
Comments
Drupal is a framework like
Drupal is a framework like CakePHP, but a bit more rigidly defined (and with a CMS pre-built onto it)... Drupal is definitely more similar to a framework than most any other CMS. So if Drupal does what you need out of the box, or if it can be done within its framework and way of doing things (and/or modules exist for what you want to accomplish) then yes it is the better option and may save you a substantial amount of time. If you need absolute control over every detail and are ok with reinventing a lot of functionality in order to have that flexibility, then a regular framework might be the choice for you. If you are already a Drupal shop and have significant experience working with Drupal, I'd think that would be the ideal choice for you in any case, since learning a new framework in the process of building a client project with it is probably not the best plan.
Hope this helps.
Drupal - the right choice
Thanks for replying David.
Regarding learning new framework, we also have experience with CakePHP, but we're more into Drupal. I was doing some searching regarding what I would need (in terms of modules for Drupal, and plugins or components for CakePHP), but it seems that lots and lots of modules are already available on Drupal which can be customized. The project's time line is critical and in order to cut down cost, I am thinking of Drupal. I understand I may have to compromise at some stages in drupal, where as I may have been able to accomplish those more easily in CakePHP.
Conclusion: I think I'll go for Drupal, because in CakePHP we may have to develop lot of things that are already available for Drupal.
Thanks once again in advance.
Waqar
4 Ace Technologies
Drupal Experts
http://modxcms.com/
You can try MODx.
http://modxcms.com/
It's a CMS but more like framework.
You will need sometime to get comfortable with it.
But it will be good investment if you have plenty of time to get familar with.
There is good info here (in comments)
http://drupal.org/node/373099
Drupal - larger community, larger pool of developers and modules.
MODx - run fast, steep learning curve, but very flexible.
Choosing ModX CMS or Drupal CMS
Thanks harkonnen. I did some search on ModX CMS as well, but again found that they do not have so much functionalities or modules available and we may need to build those from scratch.
To be honest, I love the MVC architecture, because it is a very organized and clean way of developing applications, but when I see drupal, it already has so much in terms of functionality. I may try an MVC framework in future though.
Thanks
Waqar
CakePHP - Rapid development framework?
One thing, however, I would like to ask the community.
It is said that CakePHP is a rapid application development framework. I'm not criticizing it, but still, when we compare to drupal, which one is more rapid in application development, and why?
Things go much quicker with
Things go much quicker with Drupal, for me at least.
I've rolled out several CMS apps with CakePHP, Code Igniter, and the like. Spent countless hours adding in functionality, testing, tweaking... all to find that I could've achieved better functionality with Drupal, a custom module or two, and a bit of finagling.
Then, client asks for feature_x. With the framework, it'll take me a few weeks. With Drupal, it'll take me a day, or maybe just an hour.
Though, if you need a ground-up application (not a CMS), it may be quicker to build it in an MVC framework. If you'll have editors managing content and complex access control, loads of media and content types, etc, you'd have it built in Drupal before you've even finished your ERDs for the MVC framework.
Nothing goes as quickly as developing with Drupal, for me at least. EDIT: Except maybe wordpress :)
Drupal it is :)
Thanks for your reply Steve.
Drupal it is I guess for this project. I would like to thank you everyone who has given their suggestions and appreciate it. Thanks once again.
Main Reason for choosing Drupal:
-Lots of functionality is already there, modules are there, and Theming is also not much difficult
Main Reason for not choosing CakePHP:
-Will have to develop lot of things from scratch
The topic is still open, let's see what we have regarding Drupal vs CakePHP in future for this post.
This is not simple question
I think this greatly depends on size and technical details of your projects. For complex projects aimed to grow to hundreds of thousands users, there is not much point of using Drupal. Also for any project where you need to tweak every bit to meet design goals using framework is better. When you try to tweak Drupal you end with lots of your custom modified code, and you start to fight with Drupal instead of using it:
So you will start replacing third-party modules with your own ones, i.e. you will start using Drupal as framework, so we return to the starting point where you could instead choose better framework to work with.
Drupal is good when you want to lower your expenses (pay less to developers) and are ready to make some sacrifices. Example of sacrifice I have found myself: many times I decide not to implement some feature or implement it the way I didn't want, because some Drupal module (or lack of) forces some limitation on me. But I work on my personal sites, and when you are web development shop, you need to satisfy your customer, so excuse like "hey, we can't implement feature X cause there's no ready module for it" may not work.
I am personally thinking about trying Django for my next project. You may find lots of good points from both sides here: http://birdhouse.org/blog/2009/11/11/drupal-or-django/
I love python, but Drupal is my choice
I've been tempted to use django because I'm much more used to the pythonic way of doing things than to PHP. Python is nice language and it helps you to write readable and organized code. The problem with Python+Django for me is that, up until now, I've always reached the conclusion that the site will be done faster and easier with Drupal. This includes training my team to use the tools and to solve the problems raised and training the admin users on how to maintain it.
Drupal has a fantastic community and many modules very well built around the hook concept. This makes development of complex functionality much easier. Drupal's security patterns are easy to follow. CCK + Views modules makes it possible to implement all the most common demands.
As far as I can see, Drupal's strength is on it's modular architecture. It is a eally good one. We can implement a functionality completely unforeseen with a couple of hooks. Building custom modules is easy and you won't (probably) destroy anything in the process.
I've heard that Drupal is for blogs and social network sites. Perhaps it is true, but one can do a lot more with it. Here is an example: I was asked to build a tool to manage the decisions taken in meetings. All departments should use it, each one accessing it's own content. Reports should be generated with LaTeX and sent periodically to the directors. The decisions should be than treated as tasks. One should be able to easily organize them in a hierarchical tree. How is this even close to a blog? And yet thanks to Drupal and some modules I could get the job done. Building calendars for each user, creating groups of users, creating database tables, managing permissions and even generating PDF from LaTeX are in the long list of tasks eased by Drupal and its modules (mainly CCK, Views, Calendar, OG, Drutex and, of course, the core).
I surely can't say that Drupal is the perfect solution for any problem, but it surely is a good solution to build fairly complex web applications.