With so many new web-applications and social websites on the web, I decided to take a step away from the websites themselves and instead deconstruct and analyse the technologies which power them.
Most developers currently seem to use MVC architecture based frameworks (MVC stands for Model View Controller), the most talked about MVC based framework at the moment has to be Ruby on Rails as it “powers” Twitter.
Frameworks essentially make the process of building web applications simpler and applications designed around MVC are easier to manage because they are split into segments, which facilitate independent development. In addition to MVC architecture Rails also works on the principle of DRY (Don’t Repeat Yourself). DRY insures that code in applications is expressed only in one place, without duplication and this approach minimises bugs and inconsistencies.
It is important at this stage to understand that Rails is a framework in its own right and it is based on an MVC architecture, in order to use Rails developers have to code in Ruby.
In reality not all developers or development teams have the resource or the skills in-house to use ROR and most webmasters and web developers are commonly skilled in PHP, Java or [dot]NET. This has spawned an evolution of PHP, Java and [dot]NET based MVC frameworks, which provide the benefits of using MVC frameworks whist levering existing coding skills.
So what are some of the alternatives:
- PHP: Cake & Symfony
- ASP.NET MVC
- Java: Struts
- Python: Django
There are various arguments for and against different frameworks, some say Rails is the fastest others will say it is Django. Some important things to consider when selecting a framework are:
- Skills of your developers?
- Application requirements?
- Client requirements and constraints?
- Demands of the applications?
- Scalability – Will the framework accommodate and support a growth in users, or be extended in some way to do so?
To be honest I got quite engrossed in Frameworks and I started reading deeper into ActiveRecord, ORM, CRUD, KISS and Webrick servers. All this framework terminology was far too much detail for a blog post, however, feel free to read further into it all by punching the abbreviations into Wikipedia or Google.


One Trackback
[...] and really damn cool data visualisation concepts. Recently I digged a bit deeper into the anatomy of web applications and now I’m digging a bit deeper into anatomy of DV [...]