100% found this document useful (1 vote)
108 views

Objectives:: Intro To Web Development

This document provides an overview of introductory concepts related to web development. It discusses objectives like basic web application models and popular frameworks. It also covers core components of web applications including the UI, backend, and databases. Specific frameworks and languages are examined like Angular, React, and Node.js. Principles of web design around availability, performance, reliability and more are also reviewed. Finally, it dives into topics like DOM, MVC patterns, and differences between frontend and backend development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
108 views

Objectives:: Intro To Web Development

This document provides an overview of introductory concepts related to web development. It discusses objectives like basic web application models and popular frameworks. It also covers core components of web applications including the UI, backend, and databases. Specific frameworks and languages are examined like Angular, React, and Node.js. Principles of web design around availability, performance, reliability and more are also reviewed. Finally, it dives into topics like DOM, MVC patterns, and differences between frontend and backend development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 43

LECTURE 32: INTRO TO WEB DEVELOPMENT

• Objectives:
Basic Web Application Model
Web Development Frameworks/Languages

• Resources:
Web Frameworks
Popular Frameworks
10 Things to Know
Angular
React
Knockout

• Videos:
Rest
Postman
Chrome Developer Tools
Principles of Web Design

 Availability
 Performance
 Reliability
 Scalability
 Manageability
 Cost
Core Components
UI (Front End (DOM, Framework))
of Web

 Request Layer (Web API)
 Applications
Back End (Database, Logic)

Server Client

API Front End


Browser
JSON
Internet
Database Logic

Media
Cache
Frontend development
Front End Languages

 HTML/CSS
 Javascript
 Java (applets)

What is the most popular?


Answer: Javascript/HTML/CSS is the only real option for front-end
native languages and is basically the standard. But there are many
variations on JavaScript that are used.
DOM (Document Object Model)

 Document Object Model makes every addressable item in a web


application an Object that can be manipulated for color,
transparency, position, sound and behaviors.
 Every HTML Tag is a DOM object
DOM (Document Object Model)

JavaScript
HTML

CSS

DOM
What is a Framework?

 Software Framework designed to reduce overhead in web development


 Types of Framework Architectures
 Model-View-Controller (MVC)
 Push vs Pull Based
 Most MVC Frameworks user push-based architecture “action based” (Django, Ruby on Rails, Symfony,
Stripes)
 Pull-based or “component based” (Lift, Angular2, React)

 Three Tier Organization


 Client (Usually the browser running HTML/Javascipt/CSS)
 Application (Running the Business Logic)
 Database (Data Storage)

 Types of Frameworks
 Server Side: Django, Ruby on Rails
 Client Side: Angular, React, Vue
Framework
Framework

JavaScript
HTML

CSS

DOM
http://hotframeworks.com

Javascript Frameworks

 AngularJS/Angular 2
 ASP.net
 React
 Polymer 1.0
 Ember.js
 Vue.js
MVC (Model View Controller)

 A Web Application Development Framework


 Model (M):
 Where the data for the DOM is stored and handled)
 This is where the backend connects
 View (V):
 Think of this like a Page which is a single DOM
 Where changes to the page are rendered and displayed
 Control (C):
 This handles user input and interactions
 Buttons
 Forms
 General Interface
MVC Model

Controller

Us
e
at

er
Up
pd

A
y
U

da
if

ct
ot

io
te
N

n
Model View
BACKEND development
What is a Backend?

 All of the awesome that runs your application.


 Web API
 Connection layer between the frontend and backend
 Connected through API calls (POST, GET, PUT, etc. )
 Transmit Content from the Backend to the Frontend commonly in
JSON Blobs
 Service Architecture that drives everything (Where all the logic
is)
What is a WebAPI?

 The intermediate layer between front end and back-end systems


 A “must have” if your APIs will be consumed by third-party
services
 Attention to details:
 How consumable is the API (signature, content negotiation)?
 Does it comply with standards (response codes, etc.)?
 Is it secure?
 How do you handle multiple versions?
 Is it truly RESTful?
Representational State Transfer
(REST)
 Client-server
 Stateless
 Resource-based (vs. remote procedure call)
 HTTP methods (GET, POST, PUT, DELETE)
 Side Effects
 It’s a style, not a standard
 Don’t hate on HATEOAS
WebAPI Terms

 GET – “read”
 POST – “insert” (collection)
 PUT – “replace”
 DELETE – “remove”
 PATCH – “update”
 Custom (proceed with caution)
Web Status Codes

 200 – OK – things are great (return the item)


 201 Created – after POST (HATEOAS – return location)
 204 No Content (i.e. successful DELETE)
 400 – Bad Request (validation error, missing parms, etc.)
 401 – Unauthorized – Who are you?
 403 – Forbidden – No soup for you
 404 – Not Found
Popular Tools

Development Tools:
 Chrome/Firefox Developer Tools
 Postman (API)
 Dreamweaver
 Git / SourceTree
Analytics Tools:
 Google/Adobe Analytics
Chrome Development Tools Demo

 Demo Time!
Tools for Testing WebAPI

 Postman Chrome extension


http://bit.ly/postmanext
 Fiddler by Telerik
http://www.Telerik.com/fiddler
WebAPI Demo

Demo Time!
Appendix
Hypermedia as the Engine of Application State (HATEOAS)

 Hypermedia is the key


 It all starts at a URL
 Resources are returned
 Media types and locations are included
 References based on state
What is Angular

 MVC Structure

 Framework

 Single Page Application (SPA)

 Client Side Template

 Testing
New Developers
 Popularity
Why Angular?
 Demand
 Support and Resources
 Front End
Seasoned Developers
 Structured and Opinionated Framework
 Productivity
 Consistency
Team Leads
 Efficiency
 Longevity
• Angular 1Angular vs. Angular
 Angular2
– Structured MVC Framework
2
 Component Based UI
– Separation of HTML and Logic  More Modular Design
– Client Side Templating
 TypeScript
 Backwards Compatible
 Faster
Angular vs. Angular2

angular.module('myModule') import { Component } from '@angular/core'


.controller('myController',function(){
}) @Component({
selector: 'my-app',
template: ``
<body>
})
<div ng-controller="myController"> export class MyAppComponent {
</div> }
</body> <my-app></my-app>
JavaScript
Typescript TypeScript
var num: number = 5;
var num = 5;
var name: string = "Speros"
var name = "Speros";
var something: any = 123;
var something = 123; var list: Array<number> = [1,2,3];
var list = [1,2,3];
function square(num: number): number
{
function square(num) { return num * num;
return num * num; }
}
JavaScript TypeScript
Typescript
var Person = (function () { class Person {
constructor(public name: string){
function Person(name) {
this.name = name; }
} }
return Person;
}());
var aPerson = new Person("Ada
Lovelace");
var aPerson = new Person("Ada");
Building Blocks

 Directives
 Component – Templates (HTML), Styles (CSS), & Logic (JavaScript)
 Attribute – Styling HTML
 Structural – Manipulating HTML
 Data Flow
 Interpolation – Variable Printing in Templates
 Event Binding – Trigger Events
 2-Way Binding – Variables updated in real time
 Providers
 Services
 Reusable Logic
 Data Storing and Manipulation

 Libraries
Component Directives
"…reusable building blocks for an
application"

Components have: Component

Template (HTML)
 HTML
Styles (CSS)

 CSS Class (JavaScript)

 JavaScript
Learn Angular/Angular2

http://www.learn-angular.org/
http://learnangular2.com/
How does React fit MVC?

Controller

Us
e
at

er
Up
pd

A
y
U

da
if

ct
ot

io
te
N

n
Model View
Flux Model
Action Dispatcher Store View

Data Flow

Action

Action Dispatcher Store View

Action Flow
React Components

// Create a component name MessageComponent


var MessageComponent = React.createClass({
render: function() {
return (
<div>{this.props.message}</div>
);
}
});

// Render an instance of MessageCoponent into document body


ReactDOM.render(
<MessageComponent message=“Hello!” />
document.body
);
React Components

// Create a component name MessageComponent


var MessageComponent = React.createClass({
render: function() {
What is JSX?
return (
<div>{this.props.message}</div>
);
}
});

// Render an instance of MessageCoponent into document body


ReactDOM.render(
<MessageComponent message=“Hello!” />
document.body
);
React Components

// Create a component name MessageComponent


var MessageComponent = React.createClass({
render: function() {
What is JSX?
return (
<div>{this.props.message}</div>
);
}
});

// Render an instance of MessageCoponent into document body


ReactDOM.render(
<MessageComponent message=“Hello!” />
document.body
);
React
Learn React

https://www.codecademy.com/lrn/react-101
https://css-tricks.com/learning-react-redux/


Intro
An MVVM library
to Knockout
Automatic UI refresh and updates
 Reusable templates
 Can be used with nearly any framework
 Focused on data binding
 Small library size

Angular
Ember

Knockout

jQuery
MVVM (Model, View, View-
Model)
View
 Defines structure and layout of UI
Model
 Domain Model
 Data Model
 Business logic
View Model
 Intermediary between M/V
 Handles View Logic
 Deals with State Change
Learn Knockout

http://learn.knockoutjs.com/#/?tutorial=intro

You might also like