I get this question often times from my clients and other Web developers. They ask, what’s the best technology out there that you recommend to build a Web applications. Well, admittedly, this is a million dollar question. However, the answer isn’t so obvious though.
Whatever the choice of the language the one thing that a developer must not attempt is to build a Web application from scratch. This is not only time consuming endeavour for the developer (having to reinvent the wheel every-time) but also bad news for clients who would end up with a product that can only be altered by the original developer(s).
You need to be living under a rock for the last 10 years to not know about MVC frameworks (Model View Controller). MVC is a classical design pattern in OOP (Object Oriented Programming) used in the early days to build User Interface widgets and later adapted but Web experts as an organizing agent for Web applications’ code. At present, MVC frameworks are used to organize and provide essential/elaborate components required to develop modern Web applications.
Developers are spoiled for choice when it comes to how many MVC frameworks that are around. For example: for PHP the top few MVC frameworks that I use – in no particular order are – Codeignitor, CakePHP, ZEND, Yii and Fat-free. Each one of these have their strengths and weaknesses depends on the job at hand. However, I recently started to use Yii and would recommend anyone to give it a try.
So far we have PHP as the programming language of choice and Yii (an MVC framework) for organizing the code (most importantly so the code would adhere to the well known MVC design pattern, therefore understood by other developers), and added functionalities provided by the framework (templates, routing, data models, etc). Using Yii framework has helped me recently cut considerable amount of time thanks to the code generator (gii) provided to build most of the functionalities required to build the Web application’s administrative tasks (edit tables, data entry etc).
Finally, the one downside of using most (if not all) MVC frameworks available today is that, to justify employing them in your projects, one has to use their three pilliars, the model, the view and the controller. Otherwise, using one or two parts of the framework would most likely be more of a burden than a helping hand.