Web Frameworks What they are.

A web application framework (WAF) is a framework that is designed to support the development of dynamic websites, web applications, web services and web resources.

The framework aims to alleviate the overhead associated with common activities performed in web development. Common Features

Database access libraries URL mapping HTML templating Web services Session management Form validation Caching Security Testing frameworks What ones are out there? https://en.wikipedia. org/wiki/Comparison_of_web_application_fram eworks http://www.bestwebframeworks.com/compare- web-frameworks/php/ Which one is the best? http://hotframeworks.com/ https://www.techempower.com/benchmarks/ How do I choose?

● What language will I be using? ● What platform (e.g. Windows, Linux) will my server be hosted on? ● How big is my project? ● What functionality do I need? ● Licensing? Documentation? Current activity? Some popular ones

● Ruby on Rails ● Python - Django ● C#, Windows - ASP.NET ● JavaScript - AngularJS (client-side), Node.js (server- side), jQuery (learning JavaScript anyways) ● Java - Spring (painful), been around a long time. ● Java - Groovy Grails ● Java - Play (similar to Ruby on Rails, MVC) Model View Controller also known as MVC Model View Controller (MVC)

A pattern of software architecture for implementing user interfaces. Provides: ● Reusable and extendable code. (Don’t Repeat Yourself) ● Easier code maintenance. ● Separation of view logic from business logic. ● Simultaneous work between developers who are responsible for different components. Model View Controller (MVC)

Originally developed for desktop computing, but has been become most popular in web programming.

Its important to write maintainable and reusable code, which can be applied to commonly occurring problems in web application design. Model View Controller (MVC)

MVC divides a given software application into three distinct, interconnected components. Wait for it… Model View Controller Model View Controller (MVC) Model

Stores data that is retrieved by the controller and displayed in the view.

If there is a change to the data, then the model is updated by the controller. Controller

The glue between the Model and View. The decision maker.

Adds event listeners to the view.

Updates the model when the user manipulates the view. View

A visual representation of the model. The view is made with HTML, CSS, JavaScript and often templates. Doesn’t know how to update the model. Model View Controller (MVC) Model View Controller (MVC)

There are many different flavors of MVC frameworks for dynamic web development. Always new ones...

Currently, some popular MVC frameworks are ● ASP.NET MVC (http://www.asp.net/mvc) ● AngularJS (https://angularjs.org/) ● Sencha (http://www.sencha.com/) ● Kendo UI (http://www.telerik.com/kendo-ui) ● Ember.js (http://emberjs.com/) ● JavaScriptMVC (http://www.javascriptmvc.com/) ASP.NET MVC http://aspnet.codeplex. com/SourceControl/latest#Samples/MVC/Basic Authentication/ReadMe.txt