Web Development Frameworks

Ranked #3,928 in Internet, #216,397 overall

Introduction to Web Development Frameworks

Web development is a pain. Not only do you have to code business logic, but you also have to do database work, database tuning, user interface design, user experience design, CSS, HTML, yada, yada, yada....

In the last few years, a number of web development frameworks have sprung up, with each promising and delivering productivity benefits. This lens introduces you to the idea of using these frameworks.

Last Updated: 2 September, 2010

Photo from wordle.net

Rails 3.0 Is Ready

It was 20 months in the making, but Ruby on Rails 3.0 has been released. Rails 3.0 has many improvements over the old versions. Performance has been improved. The model layer is now more modular so that you can use ActiveRecord to wrap your data, or use something else (e.g. DataMapper). Also, unobtrusive Javascript is the new philosophy for making Rails work with AJAX.

If you need a good tutorial, Michael Hartl has put his new book on Rails 3.0 online for free.

Rails 3.0 also works with Ruby 1.9.2, which has some huge performance improvements over Ruby 1.8.x.

For Newbies: How to Choose A Web Development Framework

So you want to get into web development eh? Perhaps you have some experience doing other sorts of software and now you want to do web development for fun, profit, or a job. How to pick?

First of all you have to figure out why you want to learn. For example, if you want a job in some large company doing web development (mostly maintenance and evolution), then figure out which large companies in your area are hiring, and then pick the framework they use. It is probably Java/Struts/Hibernate, or ASP.Net. Smaller outfits tend to use a lot of PHP.

A few years ago (2003), I got into my first web application. I had been a C/C++ programmer and I knew nothing about SQL, or web development. My budget was 0, except for a couple of books. I picked MySQL as a database because it was easy to install and play with. My web development language choices were limited. I tried Java, but it was bloated and useless on my home machine, and the libraries were too confusing for me. I tried PHP, but there was little documentation to help me get things going. I ended up picking Perl because Perl had a great language book, a great book on writing CGI applications, and easily available and well documented drivers for MySQL. My friend had a company web site, and they had access to MySQL databases. He let me use a corner of his site for my application.That web site was a proof of concept. (When we built the "real" version, it was done using .Net, but I didn't code any of it).

If you are looking to develop web applications for yourself from scratch or to learn, then you have to take a different tack. You have to ask yourself a few questions.

1. Do you want to learn everything about deploying web applications? Or do you want to avoid the hassle of web deployment and only worry about programming? Python is easy to deploy if you are doing it on the Google App Engine. Rails is easy if you are doing it on Heroku. It is hard to deploy if you are using other methods.
2. Which languages have you used before? Are they similar enough to the popular web development languages? Java folks seem to like Python. Microsoft folks do well with ASP.Net. C/C++ programmers enjoy Ruby.
3. Are you strong with HTML? If so, then you may find PHP more friendly.
4. Are there good web sites, manuals, and books on the language of your choice? .Net is good. Ruby/Rails is good. PHP is good. Perl is not so good, and neither is Python, but it is improving.
5. How much does hosting cost? PHP hosting is often cheap or free. .Net hosting is expensive. Python is free if you use the Google App Engine. Rails is most expensive unless you use Heroku.

For my second web development gig (2008), I picked Ruby on Rails. Ruby was similar enough to Perl and fun to program. I am relatively uncomfortable with Python, partially because it looks too much like Java, and I hate Java. C# was a nice language, but Microsoft's terms for everything seem to be different than the rest of the world, so unless you are a Microsoft developer, learning the terminology is a challenge. I didn't choose PHP because I am not comfortable with programming that looks HTML-centric to me. Ruby on Rails was easy to install on my home machine, mainly because it comes with the SQLite database baked in. i.e. No separate database installation. Web sites, blogs, and books were everywhere. Learning the ins and outs was not super hard. I found a hosting company for my Rails application that was....free! It is now called www.herokugarden.com. It gave me a nice place to play. Also, deployment to Heroku is as easy as uploading a tarball to Heroku.

Rails was the right decision for me. Take the time to make the right decision for yourself, and that will help you get the most out of the web development framework that you choose to learn first.

Angular: A New Web Development Framework

After studying web development frameworks for a few years a few problems have become clear:
  1. Views are painful to code, especially if you have AJAX driven elements.

  2. As you develop, keeping your view in sync with your data model is tedious and error-prone.

  3. Back buttons work in unexpected ways with AJAX apps.

  4. Entirely too much view processing takes place in the server. If you provide HTML scaffolds, CSS, Javascript and a data source (e.g. JSON or XML).

  5. Most of the complexity of a web application framework is in the views.

My thinking for my next web application was to have a server that provides authentication, JSON data, static HTML for scaffolding, static CSS for styling, images, and a set of Javascript files that grab the data and format it according to rules deduced from the Javascript code and some of the data. That way, the client does most of the work.

Angularjs is exactly what I have been looking for.
  1. Two-way binding of views to data eliminates a lot of tedious error-prone code.

  2. They have a straightforward way of assigning a URL to every view modified by data. So back buttons work.

  3. AngularJS is a HTML compiler that makes it easier to control the rendering of data according to your CSS styling rules and your layout policy encoded in your application Javascript and your data. Having this very organized way of rendering data into intermediate view forms (e.g. HTML) running on the client means that the server does not have to do it.

  4. I think that if the popular web frameworks (e.g. .Net, J2EE, Ruby/Rails, Python/Django, PHP, Smalltalk/Seaside) use AngularJS instead of their own view-rendering technology (e.g. ASP, JSP, ERB, HAML, PHP, etc), it will greatly simplify the frameworks. Also, if a server is only spewing data on most requests instead of Data + HTML + Javascript, it will mean less server-side processing and less bandwidth and probably fewer HTTP requests per page.
powered by Youtube

Great Introduction to Ruby On Rails

Ruby on Rails is one of the leading web development frameworks. This tutorial will help you understand Rails.

Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course by peter_marklund

An updated version is available at http://marklunds.com/articles/one/374 Chapters: * Rails Introduction * Ruby * Migrations * ActiveRecord Basics * ActionController Basics * ActionView Basics * Testing * ActiveRecord Associations * ActiveRecord Validations * ActiveRecord Callbacks * ActionView Forms * Filters * Caching * AJAX * Routing * REST * ActionMailer * Plugins * ActiveSupport * Rails 2.0 * Deployment * Resources * Parting Words of Advice
 

Ruby on Rails Videos

Ruby on Rails is one of the first very popular web development frameworks. David H Hansson and others expound on this framework.
Ruby on Rails screencast for beginners - 1
by knowhowexpert | video info

6 ratings | 3,089 views
automatically generated by YouTube

Ruby On Rails Books

Loading

Intro to Smalltalk/Seaside

5 Steps to Mastering the Art of Seaside by renggli

Seaside does things differently from what is considered best practice for Web development. Seaside breaks with common best practices, such as sharing as little state as possible, using clean and carefully chosen URLs, and using templates to separate model and presentation. This tutorial will give a quick introduction to a Web framework that is different by design. It will demonstrate new patterns of Web development, that let you build highly interactive Web applications quickly, reusably and maintainably. Moreover it will show how Seaside integrates with latest technologies such as AJAX and Comet. Lukas Renggli is a core developer of the Seaside web application framework. He has been using Seaside in industrial settings for more than 5 years. Lukas Renggli is the author of several frameworks built on top of Seaside, such as the Pier Content Management System.
 

Seaside (based on Smalltalk)

Smalltalk did it too.

Another web development framework based on Smalltalk.
Seaside on Cincom Smalltalk: Early Preview
by jarober | video info

0 ratings | 443 views
automatically generated by YouTube

Mastering Seaside

5 Steps to Mastering the Art of Seaside by renggli

Seaside does things differently from what is considered best practice for Web development. Seaside breaks with common best practices, such as sharing as little state as possible, using clean and carefully chosen URLs, and using templates to separate model and presentation. This tutorial will give a quick introduction to a Web framework that is different by design. It will demonstrate new patterns of Web development, that let you build highly interactive Web applications quickly, reusably and maintainably. Moreover it will show how Seaside integrates with latest technologies such as AJAX and Comet. Lukas Renggli is a core developer of the Seaside web application framework. He has been using Seaside in industrial settings for more than 5 years. Lukas Renggli is the author of several frameworks built on top of Seaside, such as the Pier Content Management System.
 

Great introduction to Python/Django

The Django Web Application Framework by simon

Slides from a talk given to the ACCU Python Track in Oxford, on the 20th April 2006.
 

Django Overview

This slide has a good overview of Django.

Django Overview by wiremine

A brief overview on Django. Original presented at the Grand Rapids Python User Group.
 

Python Django Videos

... web frameworks in Python

These videos give a bit of direction on how to develop web applications using the Python-based Django framework.
Google I/O 2008 - Python, Django, and App Engine
by GoogleDevelopers | video info

253 ratings | 120,104 views
automatically generated by YouTube

Python, Django, and Google App Engine Development

... a presentation from Guido himself (the author of Python)

Google I/O 2008 - Python, Django, and App Engine
by GoogleDevelopers | video info

253 ratings | 120,104 views
curated content from YouTube

Django Books

Loading

PHP Fuse

...build fast with PHP

This is another MVC web framework based on PHP. It seems to have a fairly complete set of features except database migrations. Check out PHP FUSE for more details.

It promises to deliver more productivity for PHP/MySQL developers.

PHP FUSE video

Jim shows how to get a working CRUD application up in a few minutes.
PHP MVC Introduction - FUSE Model View Controller Framework
by jimcontext | video info

17 ratings | 27,822 views
curated content from YouTube

Great Intro to PHP/Cake

Cake Php 1.2 (Ocphp) by guest193fe1

gwoo's (rd11.net) slide when presenting at the recent OCPHP event about the latest development in CakePHP 1.2
 

PHP Books

Loading

Orbit - A Web Development Framework For Lua

For those who don't know, Lua is an interpreted scripting language. Its strength is that the Lua interpreter and runtime is very small and written entirely in C. It is used as the embedded scripting language for lots of projects such as World of Warcraft and other games. There is a web development framework around Lua called Kepler. It runs on Windows and most flavours of Unix and Linux. It has a web server called Xavante, but can work with Apache 2, Lighttpd, or even thttpd. The big advantage of Kepler is that it is small, and can serve as a web server or management agent for devices limited in processing and memory.

With Kepler there is an open source module that provides a MVC web development called Orbit. Same basic idea as Rails, Django, et al, but a lot leaner. Check out the tutorial on the Orbit page.

Microsoft ASP.Net MVC

Microsoft's answer to Ruby on Rails

It had to happen. Microsoft has developed and released their own MVC web development framework. I guess they had to in order to make sure that Ruby on Rails and Python/Django don't take their market share. Nothing like some good old fashioned competition.

This video shows a bit how to develop Net MVC.
powered by Youtube

Net MVC Tutorials

A great introduction to programming with Net MVC.

Microsoft did a good thing by delivering Net MVC. They also delivered some tutorials on how to program with it. Their code is in VB or C#. Topics include:

  1. Understanding models, views and controllers, actions & results.

  2. URL routing.

  3. Injection attacks

  4. Unit tests.

  5. Deployment with IIS

  6. Models with LINQ and SQL

  7. Views, tables, layouts.

  8. Passing data to pages.

  9. Output caching.

  10. Authentication.


The tutorials can be found at www.asp.net.

Ruby on Rails on Google App Engine

Google App Engine moves forward. You can now use Ruby on Google App Engine using JRuby. Google's description is here.

SQLite

...the database under most web development frameworks...

Most web development frameworks provide the ability to use SQLite as a database. Why? Because it is free, and because it is not complicated to "install". (The database application is one .exe file called "sqlite3.exe", and the database is stored in one file). Also, using SQLite is a fantastic way to play with data models before wiring them into your web application.

The SQL used in SQLite is a "vanilla" SQL and most of it works with the SQL of most popular databases (e.g. MySQL, PostgreSQL, SQL Server).

For more information, check out the videos on YouTube which show how to use SQLite and how to program against it in various languages.

by

JayGodse

I am a software developer.

Feeling creative? Create a Lens!