Web Frameworks
Much of the content in this page was adapted from Nathan Bean’s CIS 400 course at K-State, with the author’s permission. That content is licensed under a Creative Commons BY-NC-SA license.
As web sites became web applications, developers began looking to use ideas and techniques drawn from traditional software development. These included architectural patterns like Model-View-Controller (MVC) and Pipeline that simply were not possible with the server page model. The result was the development of a host of web frameworks across multiple programming languages, including:
- Ruby on Rails, which uses the Ruby programming language and adopts a MVC architecture
- Laravel, which uses the PHP programming language and adopts a MVC architecture
- Django, which uses the Python programming language and adopts a MVC architecture
- Express, which uses the Node implementation of the JavaScript programming language and adopts the Pipeline architecture
- Revel, which uses the Go programming language and adopts a Pipeline architecture
- Cowboy, which uses the erlang programming language and adopts a Pipeline architecture
- Phoenix, which uses the elixir programming language, and adopts a Pipeline architecture
Spring and Flask
In this course, we’re going to explore a lightweight web framework that was built for our chosen language:
Both of these frameworks are very powerful, but most importantly, they are extremely flexible and allow us to structure our web application in a way that makes sense for our needs.
On the next pages, we’ll dive a bit deeper into how these web frameworks handle web requests and generate appropriate responses for them.