single page application and framework
TRANSCRIPT
SPA and Framework
By Chandra Sekar
What is SPA ?
–Microsoft
“Single-Page Applications are Web apps that load a single HTML page and dynamically update that page as the user
interacts with the app”
Let the users have experience of desktop application on using web pages.
Why SPA ?
• Maintains application state.
• Help to bookmark and share.
• Keep the data and view in synchronization.
• Partial refresh
• Reduces static resource loading.
• Fast navigation between the application pages.
Advantages of SPA
Server Side
Client Side
Types of SPA ?
Server Side
Client Side
In early days Single Page application has developed fully in server side with the help of Template engine. Business logic also written in same programming language.
Ex: JSP, ASP, ERB, HBS
Now days Template engine got developed for client side rendering and Half of the business logic has written in client side .
• Write Less bugs
• Write Less vulnerable
• Organize application code
• Fast development
• Reusability
• Let focus more on business logic
• Fast development
• Reduces code review
Why framework ?
Development Utilities Libraries Micro Library + +
Good Framework
What is framework ?
( )
Libraries
• RoutingRouting is an url state container that helps to keep UI and url sync.
• Templates HTML that is going to be inserted to view on runtime.
• ControllerClass object which use to consists business logic that manipulate application data
• ModelApplication data.
• View Elements which are going to be visible and interactive to user.
• State ContainerData which is going to represent state of the views
• Dispatcher / Observer PatternHelps to write loosely coupled code
Development Utilities
• Linting Tools Helps to avoid mistakes when writing programs. Example : ESLint , JSLint , JSHint and JSCS
• Code Transpiler for scriptLet us write next generation code now that looks pretty-printed and readable. Example : CoffeScript, Type Script, Bable JS, Live script
• Package manager Tool for package management Example : NPM, Bower, Yarn
• Live reload / Hot reload
• Module BundlerHelps to bundle all dependency files for production.Example : browserify, webpack, requires JS
• CSS PreprocessorsA Scripting language for css that use to generate compiled regular CSS Syntax.Example : Sass, LESS
Framework
Choose
Make Own
Framework after ArchitectureDecide your Application architecture First
Popular Architectures• Model View Controller
Example : Angular, Ember
• Model View Viewmodel Example : Knockout
• Model View Presenter Example : Backbone , Riot
Note : Listed above architectures are frequently used not recommended for all types app*
What is MVC ?• Model
Business model
• View Representing model and Handling DOM events
• ControllerWriting business logic
Model
View Controller
What is MVVM ?• Model
Business model
• View Data binding and commands
• Viewmodel Maintain state , update model
Model
View
Viewmodel
What is MVP ?
• Model Business model
• View Handling DOM events
• Presenter Representing UI with model.
Model ViewPresenter
“All frameworks are not created for single solution and that might not suite for our application.”
My thought 😉
• Less to learn.
• Should be Straightforward to JavaScript.
• Framework size should not exceed application size.
On choosing Framework
Vennila Vue Riot React Aurelia Ember Angular 2
File Size (min) App Size 23K 9.75KB 40K 880KB 111K 111K
Architecture MVVM MVP View MV* MVC MVC
Testable ✔ ✔ ✔ ✔ ✔ ✔