Front End Programming

Similar documents
MongoDB Web Architecture

welcome to BOILERCAMP HOW TO WEB DEV

Future Web App Technologies

Financial. AngularJS. AngularJS. Download Full Version :

Financial. AngularJS. AngularJS.

Storage Tier. Mendel Rosenblum. CS142 Lecture Notes - Database.js

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Human-Computer Interaction Design

Controller/server communication

a Very Short Introduction to AngularJS

CS142 - Web Applications

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

Controller/server communication

Programming the World Wide Web by Robert W. Sebesta

Networking & The Web. HCID 520 User Interface Software & Technology

Sample CS 142 Midterm Examination

Networking & The Web. HCID 520 User Interface Software & Technology

Sessions. Mendel Rosenblum. CS142 Lecture Notes - Sessions

AngularJS AN INTRODUCTION. Introduction to the AngularJS framework

Developer Internship Opportunity at I-CC

Overview of Web Application Development

widgets, events, layout loosely similar to Swing test browser, or plugin for testing with real browser on local system

(p t y) lt d. 1995/04149/07. Course List 2018

Enterprise Software Architecture & Design

Tuesday, January 13, Backend III: Node.js with Databases

MVC: Model View Controller

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Qiufeng Zhu Advanced User Interface Spring 2017

Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University

Masters in Web Development

AngularJS Introduction

Input and Validation. Mendel Rosenblum. CS142 Lecture Notes - Input

Full Stack Web Developer

Web Architecture AN OVERVIEW

JAVASCRIPT JQUERY AJAX FILE UPLOAD STACK OVERFLOW

Modern and Responsive Mobile-enabled Web Applications

Architectural patterns

MEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts

Fiz: A Component Framework for Web Applications. John Ousterhout Stanford University

20486-Developing ASP.NET MVC 4 Web Applications

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript.

Cleveland State University Department of Electrical and Computer Engineering. CIS 408: Internet Computing

Single Page Applications

Getting Started with

Advanced Web Applicatio Design Patter. Rupak Raj Ghi

Chapter 10 Web-based Information Systems

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course

Getting MEAN. with Mongo, Express, Angular, and Node SIMON HOLMES MANNING SHELTER ISLAND

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

WebStore9 Services. Web Development Services

Strategies for Rapid Web Prototyping. Ruby on Rails. Clemens H. Cap

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

VTU Question Bank. UNIT 1 Introduction to WWW, XHTML

Single Page Applications using AngularJS

Jquery Ajax Json Php Mysql Data Entry Example

Open Source Library Developer & IT Pro

generates scaffolding/framework for models, views

FULL STACK FLEX PROGRAM

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

KE IMu API Technical Overview

CIS 408 Internet Computing (3-0-3)

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M

Participant Handbook

Web Technologies VU ( ) Vedran Sabol. Nov 13, ISDS, TU Graz. Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60

Enterprise Web based Software Architecture & Design

STARCOUNTER. Technical Overview

JBPM Course Content. Module-1 JBPM overview, Drools overview

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

August, HPE Propel Microservices & Jumpstart

Full Stack Web Developer

Web Software Model CS 4640 Programming Languages for Web Applications

Html5 Css3 Javascript Interview Questions And Answers Pdf >>>CLICK HERE<<<

AJAX and Persistence: Emerging Patterns and Pain Points

CS142 Winter 2017 Midterm Grading Solutions and Rubric


Building Web Applications

ONSITE BOOTCAMP. Onsite. Course Packet MEAN RUBY ON RAILS PYTHON IOS JAVA.NET

Large-Scale Web Applications

Lab 1: Getting Started with IBM Worklight Lab Exercise

Web Development for Dinosaurs An Introduction to Modern Web Development

Table of Contents. Introduction 1. 1 Jumping Into JavaScript 5. for Loops 17

Now go to bash and type the command ls to list files. The unix command unzip <filename> unzips a file.

Developing Ajax Web Apps with GWT. Session I

Your customer engagement transformation starts here

Developing ASP.NET MVC 5 Web Applications

Online. Course Packet PYTHON MEAN.NET

Security. CSC309 TA: Sukwon Oh

Modern SharePoint and Office 365 Development

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs

Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE

CS 142 Final Examination

Our trainings can be delivered as an Onsite Classroom Training or as an Instructor-Led Live Online Training(ILT).

POWER BI BOOTCAMP. COURSE INCLUDES: 4-days of instructor led discussion, Hands-on Office labs and ebook.

Developing ASP.NET MVC 5 Web Applications. Course Outline

Databases/JQuery AUGUST 1, 2018

Developing Applications with Java EE 6 on WebLogic Server 12c

Software Elements of Electronic Business Sites

CSC 443: Web Programming

Ten good practices for ASP.NET MVC applications

Transcription:

Front End Programming Mendel Rosenblum

Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page Program exits after Web page complete Introduced the notion of stateless servers: each request independent, no state carried over from previous requests. (Made scale-out architectures easier) Perl typically used for writing CGI programs

First-generation web app frameworks Examples: (PHP, ASP.net, Java servlets) Incorporate language runtime system directly into Web server Templates: mix code and HTML Web-specific library packages: URL handling HTML generation Sessions Interfacing to databases

Second-generation frameworks Examples: (Ruby on Rails, Django): Model-view-controller: stylized decomposition of applications Object-relational mapping (ORM): simplify the use of databases (make database tables and rows appear as classes and objects)

Third-generation frameworks Examples: (AngluarJS, ReactJS, ) JavaScript frameworks running in browser - More app-like web apps Interactive, responsive applications Frameworks not dependent on particular server-side capabilities Node.js - Server side JavaScript No-SQL database (e.g. MongoDB) Many of the concepts of previous generations carry forward Model-view-controllers Templates

Model-View-Controller (MVC) Pattern Model: manages the application's data JavaScript objects. Photo App: User names, pictures, comments, etc. View: what the web page looks like HTML/CSS. Photo App: View Users, View photo with comments Controller: fetch models and control view, handle user interactions, JavaScript code. Photo App: DOM event handlers, web server communication MVC pattern been around since the late 1970's Originally conceived in the Smalltalk project at Xerox PARC

View Generation Web App: Ultimately need to generate HTML and CSS Templates are commonly used technique. Basic ideas: Write HTML document containing parts of the page that are always the same. Add bits of code that generate the parts that are computed for each page. The template is expanded by executing code snippets, substituting the results into the document. Benefits of templates (Compare with direct JavaScript to DOM programming) Easy to visualize HTML structure Easy to see how dynamic data fits in Can do either on server or browser

AngularJS view template (HTML/CSS)... <body> <div class="greetings"> Hello {{models.user.firstname}}, </div> <div class="photocounts"> You have {{models.photos.count}} photos to review. </div> </body> Angular has rich templating language (loops, conditions, subroutines, etc.). Later...

Controllers Third-generation: JavaScript running in browser Responsibilities: Connect models and views Server communication: Fetch models, push updates Control view templates Manage the view templates being shown Handle user interactions Buttons, menus, and other interactive widgets

AngularJS controller (JavaScript function) function usergreetingview ($scope, $modelservice) { $scope.models = {}; $scope.models.users = $modelservice.fetch("users"); $scope.models.photos = $modelservice.fetch("photos"); $scope.okpushed = function() { // Code for ok button pushing } } Angular creates $scope and calls controller function called when view is instantiated

Model Data All non-static information needed by the view templates or controllers Traditionally tied to application's database schema Object Relational Mapping (ORM) - A model is a table row Web application's model data needs are specified by the view designers But need to be persisted by the database Conflict: Database Schemas don't like changing frequently but web application model data might (e.g. user will like this view better if we add and lose...)

Angular doesn't specify model data (JavaScript objs) Angular provides support for fetching data from a web server REST APIs JSON frequently used On Server: Mongoose's Object Definition Language (ODL) has "models" var userschema = new Schema({ firstname: String, lastname: String, }); var User = mongoose.model('user', userschema);

Model-View-Controller ubiquitous Used by all frameworks Web app components specified as MVC parts What does the component look like? What data does it need? What control functionality does it need? Important issues are software engineering related: modular design, reusable components, testability, etc.