As of late I've been swamped with web work on the side(not to mention my 8-5 job). I've tried a couple times to get to know some common frameworks, specifically Django and Ruby on Rails. I love their concept and its hard to rank one better than the other because they both have their selling points. However, a few time's I've found myself going back to regular old php because of the limitations. What limitations you say?? They're open source frameworks, change them! Well quite frankly as most developers will tell you they just don't have the time to sit down and figure out the source code just to add one little tweak. From my experience the part that gets me is for really light weight sites ROR seems a bit over kill, and Django is almost perfect for these little sites except that one thing you want the admin to treat differently(by the way if you haven't tried Django's admin it builds for you automatically you have to give it a shot, its breathtaking). So what do I always end up doing? Going back to my old trusty aedCFC and aedPHP. No this isn't a promotional post. These two projects I consider a middle step between a framework and manually coding it all yourself as they create a finished user admin for you with a little configuration. So here are my Pro's and Con's: Framework Pro's
- They handle most of your sql for you
- They provide a templating system to separate your presentation from your logic
- They provide consistency, so if you need to add something down the road you have no trouble
- Some provide an automatic Administration site to manage your models
- Automatically provide clean urls
- Ability to change database engines at any time
- Caching built in
- Hosting configuration for your framework(unless you have hosting preconfigured)
- Overkill on the amount of files needed for smaller sites
- Lack of flexibility without changing the framework itself(I need to create thumbnails on the fly when I upload images in the admin, now what?). I think this is a major drawback.
- Too much configuration for smaller sites
- If the framework doesn't provide an admin solution then you must design one as well, what has the framework accomplished?
So there are quality points coming from both sides of the table, but how do I know if I'm waisting my time with Frameworks. I think it all boils down to a few things. Of course if you already know the framework inside and out and you have no issues setting up a new site with your framework you should stick with that. But for a newbie who has little framework experience its a tough decision. You really need something in the middle. Almost every client these days needs an Administration site, and I think this is more time consuming than the front end many times. What would I be looking for in a framework? Here are a few things that come to mind, most already use these but some don't: * MVC. Most frameworks use this. * Does not mix client side with server side. (.Net) With the exception of an Administration site, everything else should be left up to the developer to make the site look and operate the way I want, not the framework. * Administration , but highly configurable(more so than Django). Maybe I can assign an events class with methods onAdd(), onEdit(), onDelete() to each Model. Also more media options like creating duplicate images and resizing when I upload a photo. * F ewer files and directories for the framework. Some frameworks I get lost in. ROR in my opinion has too much to forge through. Maybe store all this in the server installation? I do realize some of this is for portability. * Plenty of Hosting providers
Ok OK, maybe I'm nit-picking a little, but what is out there? I've been on the search lately. Anyone have a framework that works well? I don't mind if you're promoting your own projects here, we're all in the same boat I'm sure. So lets hear it. Which framework is worth while?