Using Spring 4 and AngularJS for REST-based web applications development Vladimir Sonkin Java & Web expert Luxoft Training.

Slides:



Advertisements
Similar presentations
Validation in Angular 1.3 And other angular tidbits.
Advertisements

Online Educational Game of Snakes and Ladders -Shalini Pradhan -Manali Joshi -Uttara Paingankar -Seema Joshi.
Model-View-Controller ("MVC") This is a architectural design pattern for interactive applications. This design pattern organizes an interactive application.
Software Architecture Design Instructor: Dr. Jerry Gao.
@lestersconyers #spsevents #spsphx SPS EVENTS PHX SharePoint and Angular Sitting in a Tree… LESTER SCONYERS.
Bringing Banking to the Poor with the help of Angular JS
Development of mobile applications using PhoneGap and HTML 5
System Design & Software Architecture
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
Introduction Marko Marić, Danulabs
Requirement Analysis Functional & Non-Functional Requirements Scenarios Use cases: – View Fixtures – Manage Tournament – Register Team – Report Discrepancy.
Bob German Principal Architect A New on SharePoint Development Building Light-Weight Web Parts with AngularJS
Building Angular Applications with TypeScript Sergey Barskiy Architect Level: Intermediate.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Advanced Java
ShapeQuery Experiment Shape Query Experiment.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Microsoft Virtual Academy Stacey Mulcahy | Technical Evangelist Christopher Harrison | Content Developer.
Team S07. Agenda Scope of project Global use case diagram Analysis use cases High Level design (Software Architecture) Prototype challenges faced and.
Hattan Shobokshi mvcdotnet.wordpress.com Web Development in the Past (Microsoft Stack)
Canopy walk through Single-Page Apps (SPAs) Benjamin Howarth Freelancer, Code Gecko Umbraco UK Festival, Fri 30 th Oct 2015 CODE GECKO.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
JavaScript Overview Developer Essentials How to Code Language Constructs The DOM concept- API, (use W3C model) Objects –properties Methods Events Applications;
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
State Machines & User Interfaces Author:Brian O’Byrne Presented By: Dongkai Hu.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
1 Introduction to Web Application Review. 2 Five Layers Architecture HTML, CSS, Java Script ASP.net User ’ s.dll, Nunit, Web Services ADO.net SQL Server,
Chapter 1 Ionic Framework (overview) Front-end framework for developing hybrid mobile apps with HTML5 Yeunyong Kantanet School of Information and Communication.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
Learn AngularJS by Building 10 projects. Introduction to AngularJS An Open source web application framework by Google Written in JavaScript offers complete.
AngularJS and SharePoint
Vineel Vutukuri. What is SPA? Why SPA? Pros & Cons When to use SPA?
© Luxoft Training. All rights reserved AngularJS Introduction.
Composable EmberJs Dashboards Using OSF
Web Technologies Computing Science Thompson Rivers University
The CareWeb Framework Douglas K. Martin, MD
WEB APPLICATION Diagram Template
Chapter 9: The Client/Server Database Environment
ORACLE ADF ONLINE TRAINING COURSE
Kendo UI Builder Bob Brennan
CMPE 280 Web UI Design and Development October 26 Class Meeting
The Client/Server Database Environment
Angular JS Training | Angular JS online Training at GoLogica
Developing an Online Admissions Application Using HTML5, CSS3, AngularJS, Twitter Bootstrap, and Web Services UNM Tech Days 2016 June 10, :30am-10:30am,
Best Angular 2 interview questions and Answer that have been designed for Angular 2 programmers who are preparing online interviews on Angular 2 interviews question. Visit Website:
Jessica Betts, Sophia Pandey, & Ryan Amundson
ASP.NET Web Forms Vs. ASP.NET MVC ASP.NET is Microsoft’s big leap after Active Server Pages (ASP), ASP.NET provides flexible and unified web development.
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
Introduction to Internet Programming
Introduction to AngularJS
Modern web applications
IND8115 – LTTng Web View December, 12th 2016 Yonni Chen.
Model-View-Controller (MVC) Pattern
Web Application Architectures
Rich single page applications with SharePoint
Software framework University of Kurdistan
Software models - Software Architecture Design Patterns
CS122B: Projects in Databases and Web Applications Spring 2018
Secure Web Programming
Web Application Architectures
WPS - your story so far Seems incredible complicated, already
ASP.NET MVC Web Development
CS4961 Software Design Laboratory Understand Aquila Backend
Web Technologies Computing Science Thompson Rivers University
Web Application Architectures
Web Client Side Technologies Raneem Qaddoura
05 | An Introduction to AngularJS
CS122B: Projects in Databases and Web Applications Winter 2019
Presentation transcript:

Using Spring 4 and AngularJS for REST-based web applications development Vladimir Sonkin Java & Web expert Luxoft Training

Technologies used REST Spring Boot Spring Data AngularJS

Spring Boot mvn spring-boot:run

REST API

REST architecture

What Angular provides Architecture/organization patterns out of the box (MVC/SPA/DI) View templating using plain-old HTML (no new templating language to learn) for creating dynamic views Allows to extend HTML vocabulary to create new UI widgets/components Avoids scattered DOM manipulation spaghetti code Inherent support for testing of the application Provides modularity, loose coupling and reusability Parallel development and comprehensible code due to virtue of MVC http://www.codeproject.com/Articles/869712/AngularJS

AngularJS' two-way data-binding handles the synchronization between the DOM and the model, and vice versa

Why use a JS MVC framework Poor distribution of processing – With a large number of clients, doing all the processing on the server is inefficient. High user response latency Difficult programming model Increased vector of attack Heavy state management on the servers Offline Difficulties Reduced opportunity for interoperability Poor distribution of processing – With a large number of clients, doing all the processing on the server is inefficient. High user response latency – Traditional web applications are not responsive enough. High quality user interaction is very sensitive to latency, and very fast response is essential. Difficult programming model – Programming a user interface across client/server is simply difficult. When every interaction with a user must involves a request/response, user interface design with this model is complicated and error prone. The vast number of web frameworks for simplifying web development testifies to this inherent difficulty. Some have mitigated this difficulty to some degree. Increased vector of attack – Unorganized mingling of user interface code with business code can increase security risks. If access rules are distributed across user interface code, as user interface code grows and evolves, new vectors of attack emerge. With mixed code, new user interface features can easily create new security holes. Heavy state management on the servers – When client user interface state information is maintained by the server, this requires a significant increase in resource utilization as server side sessions must be maintained with potentially large object structures within them. Usually these resources can’t be released until a session times out, which is often 30 minutes after a user actually leaves the web site. This can reduce performance and scalability. Offline Difficulties – Adding offline capabilities to a web application can be a tremendous project when user interface code is predominantly on the server. The user interface code must be ported to run on the client in offline situations. Reduced opportunity for interoperability – When client/server communication is composed of transferring internal parts of the user interface to the browser, it can be very difficult to understand this communication and utilize it for other applications.  

Why use a JS MVC framework JSMVC Web Applications Scalability - The more clients that use an application, the more client machines that are available, whereas the server processing capabilities remain constant Immediate user response Organized programming model Client side state management Offline applications Scalability – It is quite easy to observe the significant scalability advantage of client side processing. The more clients that use an application, the more client machines that are available, whereas the server processing capabilities remain constant (until you buy more servers). Immediate user response – Client side code can immediately react to user input, rather than waiting for network transfers. Organized programming model – The user interface is properly segmented from application business logic. Such a model provides a cleaner approach to security. When all requests go through user interface code, data can flow through various interfaces before security checks take place. This can make security analysis more complicated, with complex flows to analyze. On the other hand, with a clean web service interface, there is well-defined gateway for security to work on and security analysis is more straightforward, holes can be quickly found and corrected. Client side state management – Maintaining transient session state information on the client reduces the memory load on the server. This also allows clients to leverage more RESTful interaction which can further improve scalability and caching opportunities. Offline applications – If much of the code for an application is already built to run on the client, creating an offline version of the application will almost certainly be easier. Interoperability – By using structured data with minimal APIs for interaction, it is much easier to connect additional consumers and producers to interact with existing systems.  

Client/server architecture for modern web applications

Data Flow for modern web development

AngularJS interest

AngularJS interest

Spring Data

Spring Data

Spring JPA Repositories http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html

LINKS http://vladson.ucoz.com/REST/ vsonkin@luxoft.com Vladimir Sonkin