Backend Web Frameworks
How do we: inspect the requested URL and return the appropriate page? deal with POST requests? handle more advanced concepts like sessions and cookies? scale the application to handle thousands of concurrent connections? -jeffknupp
-------- web frameworks! packages exist that handle the nitty-gritty details of the HTTP protocol and have sensible solutions to problems the problems above. Listen for requests and send HTTP responses with some HTML back.
What do they do? provide libraries for accessing a database managing sessions and cookies creating templates to display your HTML and in general promote the reuse of code. hide the boilerplate and infrastructural code related to handling HTTP requests and responses
Ruby on Rails (Ruby) Django (Python) "Symfony (PHP) CakePHP (PHP) Zend (PHP) Nitro (Ruby) Merb (Ruby) Pylons (Python) TurboGears (Python) Catalyst (Perl) Code Igniter (PHP) Fusebox (ColdFusion) Model Glue(ColdFusion) Mach-II (ColdFusion)
Ruby on Rails (Ruby) Github Twitter
Ruby on Rails offers tight integration with JavaScript, making it a popular choice for Ajax heavy sites. includes the Prototype Javascript Library which you can integrate directly.
Django (Python) the Onion Instagram
Django developed for a very large newspaper website and offers a fantastic auto-generated site administration section for your site s users to create, edit and update content. It also includes built-in tools for caching data and building flexible URLs.
Symfony (PHP) del.icio.us Yahoo! Bookmarks
Symfony Symfony Components, the Silex micro-framework, or the full-stack framework. A feature packed framework, but has a reputation for being server-intensive.
MVC Model (Model-View-Controller)
Push-based vs Pull-based
Considerations When Choosing Pick a framework that has extensive and accurate documentation. It is invaluable as you attempt to implement the technology. The framework should provide just that a framework that can fit your particular design methodology. Be sure to ask other developers about their experiences with frameworks in your chosen programming language. The larger the community the larger the odds that you will be able to find help when you need it, and it will continue to be improved and developed. -smashingmagazine
Is WordPress a Framework? Library: Code written to create shortcuts over another language. Examples: JQuery for JavaScript, Apache commons for Java. Web frameworks: Starting tools helping you with common problems. For instance, in Web development, we often need to map URLs to code somewhere. A framework will make this easier (hopefully). Example of Web frameworks: Laravel and Code Igniter for PHP. Spring MVC and Struts for JAVA. Web development platforms (and similar): A more general category. In this one I include every application with a content management system (CMS), out of the box features for users like a forum, blog, or anything higher level. Example of Web development platforms: WordPress or Joomla for PHP. Liferay or Magnolia for Java. Orchard for C#.
Disadvantages Lost Understanding - by relying on the features of a framework a developer is in danger of loosing understanding on how things work (underneath the hood) Developer tramlines - you (the developer) has to do things the way that the developer want you to do things.
Disadvantages Hard to switch out of a framework once chosen It can be difficult to implement features outside of a frameworks configuration. Eventual possible drop of support / Loss of Popularity
Further Reading http://learnphp.io/dont-reinvent-wheel-use-a-framework/ http://www.jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/ http://www.smashingmagazine.com/2008/01/04/frameworks-round-up-when-to-use-how-to-choose/ http://www.infoq.com/news/2014/05/benchmark-web-framework http://nagbhushan.wordpress.com/2010/10/03/framework-advantages-and-disadvantages/ http://memeburn.com/2011/06/32-web-frameworks-to-choose-from-for-your-next-project/