Anatomy of a SPA: Client-side MVC

Size: px
Start display at page:

Download "Anatomy of a SPA: Client-side MVC"

Transcription

1 11/12/11 10:35 AM Anatomy of a SPA: Client-side MVC SPA: Single Page Application MVC: Model-View-Controller file:///users/baguirre/downloads/rubyconf-slides/index.html#1

2 11/12/11 10:36 AM My name is Alvaro Mouriño. I like hats. I'm a web developer. Actually, I'm a django developer. Hola! file:///users/baguirre/downloads/rubyconf-slides/index.html#2

3 11/12/11 10:36 AM I come in Peace file:///users/baguirre/downloads/rubyconf-slides/index.html#3

4 11/12/11 10:36 AM Introduction to client-side MVC. How Backbone.js does it. Pros and cons. What else is out there: Alternatives. More concepts than code. And some flames About this talk file:///users/baguirre/downloads/rubyconf-slides/index.html#4

5 11/12/11 10:37 AM A django models generator. The biggest SPA I've made. Which is not huge, but somewhat complex. Fork it! Askani.net file:///users/baguirre/downloads/rubyconf-slides/index.html#5

6 11/12/11 10:37 AM file:///users/baguirre/downloads/rubyconf-slides/index.html#6

7 11/12/11 10:37 AM OK, breath... file:///users/baguirre/downloads/rubyconf-slides/index.html#7

8 11/12/11 10:37 AM If you use rails you use it all the time. Abstraction and encapsulation of domain logic. Decouples logic from presentation. Increases modularity. Weakens and removes dependencies between layers. Reduces complexity. Increases maintainability. And a long list of awesomeness... MVC...? Why? file:///users/baguirre/downloads/rubyconf-slides/index.html#8

9 11/12/11 10:38 AM file:///users/baguirre/downloads/rubyconf-slides/index.html#9

10 11/12/11 10:38 AM JavaScript! Think of the objects in your application. But forget about the data model of the backend. But in the browser? How? file:///users/baguirre/downloads/rubyconf-slides/index.html#10

11 11/12/11 10:38 AM JavaScript? That's not even a real language! file:///users/baguirre/downloads/rubyconf-slides/index.html#11

12 11/12/11 10:38 AM Lord forgive them, for they know not what they say file:///users/baguirre/downloads/rubyconf-slides/index.html#12

13 11/12/11 10:38 AM JavaScript is a great programming language. (with some bad ideas) People never take the time to learn it. Yes, it's object oriented. Forget coffeescript. Be a man! Read JavaScript: The Good Parts. JavaScript file:///users/baguirre/downloads/rubyconf-slides/index.html#13

14 11/12/11 10:39 AM file:///users/baguirre/downloads/rubyconf-slides/index.html#14

15 11/12/11 10:39 AM It's evolution, baby file:///users/baguirre/downloads/rubyconf-slides/index.html#15

16 11/12/11 10:39 AM Modularization, decoupling, abstraction and encapsulation. Are all the natural evolution of any system that wants to grow beyond a script. Is like switching from PHP to a real programming language. It's evolution, baby file:///users/baguirre/downloads/rubyconf-slides/index.html#16

17 11/12/11 10:39 AM The MVC pattern. A metaphor to better understand it. The MVC pattern is like cookies. Sort of. The cookie pattern! Alvaro Mouriño file:///users/baguirre/downloads/rubyconf-slides/index.html#17

18 11/12/11 10:39 AM Models file:///users/baguirre/downloads/rubyconf-slides/index.html#18

19 11/12/11 10:40 AM Organizes the business data. Is an abstract representation of the actors in the system. Represents behaviour and communication. Models file:///users/baguirre/downloads/rubyconf-slides/index.html#19

20 11/12/11 10:40 AM Views file:///users/baguirre/downloads/rubyconf-slides/index.html#20

21 11/12/11 10:40 AM Defines how the information will be presented. The same information can have many looks. Or even be displayed using different media. Views file:///users/baguirre/downloads/rubyconf-slides/index.html#21

22 11/12/11 10:40 AM Controllers file:///users/baguirre/downloads/rubyconf-slides/index.html#22

23 11/12/11 10:40 AM They orchestrate the show. Ask you which cookies you like. Make the cookies. Paint them. And put them on the table. Like grandma does! Controllers file:///users/baguirre/downloads/rubyconf-slides/index.html#23

24 11/12/11 10:40 AM So... Backbone? file:///users/baguirre/downloads/rubyconf-slides/index.html#24

25 11/12/11 10:41 AM Yes, backbone.js. Gives you the tools to implement MVC on the browser. Even though they call it a little different, is the same concept. file:///users/baguirre/downloads/rubyconf-slides/index.html#25

26 11/12/11 10:41 AM Models are the heart of any JavaScript application, containing the interactive data as well as a large part of the logic surrounding it. Models Backbone.js website file:///users/baguirre/downloads/rubyconf-slides/index.html#26

27 11/12/11 10:41 AM Models // You extend Backbone.Model with your domain-specific methods, // and Model provides a basic set of functionality for managing // changes. var Cookie = Backbone.Model.extend({ defaults: { 'flavour': 'N/A', 'haschips': false }, getflavour: function() { return this.get('flavour'); } }); // Simple... huh? file:///users/baguirre/downloads/rubyconf-slides/index.html#27

28 11/12/11 10:41 AM Inheritance // Extends from Cookie and sets some properties. var ChocolateCookie = Cookie.extend({ // If you define an initialize() function, it will be // invoked when the model is created. initialize: function() { this.set({ 'flavour': 'chocolate' }); }, // Overriding the set method. set: function (attributes, options) { // Do something interesting } // Invoking the parent object's implementation of the // overriden method. Cookie.prototype.create.call(this, attributes, options); }); file:///users/baguirre/downloads/rubyconf-slides/index.html#28

29 11/12/11 10:41 AM Using models // Default parameters. var mycookie = new ChocolateCookie({ 'haschips': false }); mycookie.get('flavour'); // -> 'chocolate' // This cookie has chips. mycookie.set({ 'haschips': true }); // Triggers a 'destroy' event and performs the DELETE action on the // storage backend. mycookie.destroy(); // Check all the available methods on the doc (A.K.A. RTFM) file:///users/baguirre/downloads/rubyconf-slides/index.html#29

30 11/12/11 10:41 AM Backbone views are almost more convention than they are code they don't determine anything about your HTML or CSS for you, and can be used with any JavaScript templating library. Views Backbone.js website file:///users/baguirre/downloads/rubyconf-slides/index.html#30

31 11/12/11 10:41 AM Views var CookieView = Backbone.View.extend({ tagname: "div", classname: "cookie", template: _.template($('#cookietemplate').html()), events: { "click.cookie": }, "pickcookie" initialize: function() { this.model.bind('change', this.render, this); }, render: function() { $(this.el).html(this.template(this.model.tojson())); return this; } }); file:///users/baguirre/downloads/rubyconf-slides/index.html#31

32 11/12/11 10:42 AM Using views var mycookie = new ChocolateCookie, var view = CookieInAJarView({ 'model': mycookie }); // Render a cookie in a jar. view.render(); var view = CookieOnAPlateView({ 'model': mycookie }); // Now render a cookie on a plate. // Exactly the same, only changes the View object. view.render(); file:///users/baguirre/downloads/rubyconf-slides/index.html#32

33 11/12/11 10:42 AM For the $ selector Backbone.js depends on jquery or Zepto. From backbone.js source code: // For Backbone's purposes, either jquery or Zepto owns the // `$` variable. var $ = this.jquery this.zepto; This sucks. The jquery/zepto dependency file:///users/baguirre/downloads/rubyconf-slides/index.html#33

34 11/12/11 10:42 AM Collections are ordered sets of models. You can bind events to be notified when any model in the collection has been modified and fetch the collection from the server. Backbone.js website Collections file:///users/baguirre/downloads/rubyconf-slides/index.html#34

35 11/12/11 10:42 AM Collections var ChocolateCookieList = Backbone.Collection.extend({ }); model: ChocolateCookie, localstorage: new Store('cookies'), initialize: function() { // Constructor } file:///users/baguirre/downloads/rubyconf-slides/index.html#35

36 11/12/11 10:42 AM Using collections var cookies = new ChocolateCookieList([cookie1, cookie2, cookie3]); // Get the cookies stored in the backend. cookies.fetch(); // Get the first inserted cookie. var first = cookies.at(0); newcookie = new Cookie({ 'flavour': 'pajarito' }); // Triggers an 'add' event and persists the object. cookies.add(newcookie); file:///users/baguirre/downloads/rubyconf-slides/index.html#36

37 11/12/11 10:42 AM file:///users/baguirre/downloads/rubyconf-slides/index.html#37

38 11/12/11 10:43 AM Backbone.sync is the function that Backbone calls every time it attempts to read or save a model to the server. Backbone.js website Sync (A.K.A. Storage) file:///users/baguirre/downloads/rubyconf-slides/index.html#38

39 11/12/11 10:43 AM By default, it uses (jquery/zepto).ajax to make a RESTful JSON request. You can override it in order to use a different persistence strategy. Sync (A.K.A. Storage) (cont.) Backbone.js website file:///users/baguirre/downloads/rubyconf-slides/index.html#39

40 11/12/11 10:43 AM RESTful JSON WebSockets XML transport LocalStorage Persistence strategies file:///users/baguirre/downloads/rubyconf-slides/index.html#40

41 11/12/11 10:43 AM Depends on jquery/zepto. This sucks. Sends the object serialized. Do you really want to send everything? RESTful JSON file:///users/baguirre/downloads/rubyconf-slides/index.html#41

42 11/12/11 10:43 AM How to use it? <script type="text/javascript" src="js/backbone.js"></script> <script type="text/javascript" src="js/backbone-localstorage.js"> </script> var ChocolateCookieList = Backbone.Collection.extend({... localstorage: new Store('cookies'),... }); LocalStorage file:///users/baguirre/downloads/rubyconf-slides/index.html#42

43 11/12/11 10:43 AM You handle mostly Collections. Collections contain models. You instantiate the view you want to use and pass it a Model. That way you can style a given model in different ways. You could also have a generic View that receives a Model and a View object. So you don't have to know which View you are using. Putting it all to work file:///users/baguirre/downloads/rubyconf-slides/index.html#43

44 11/12/11 10:44 AM Save() Uses Storage < Model < View ^ ^ Has many Collection ^ Your application file:///users/baguirre/downloads/rubyconf-slides/index.html#44

45 11/12/11 10:44 AM Routes History Events Again... RTFM. But wait, there's more! file:///users/baguirre/downloads/rubyconf-slides/index.html#45

46 11/12/11 10:44 AM Other backbones: Alternatives file:///users/baguirre/downloads/rubyconf-slides/index.html#46

47 11/12/11 10:44 AM Alternatives Knockout.js SproutCore PureMVC JavascriptMVC (requires jquery) emvc (requires Dojo) Dojo toolkit ExtJS YUI 3 AngularJS eyeballs.js file:///users/baguirre/downloads/rubyconf-slides/index.html#47

48 11/12/11 10:44 AM "use strict"; JSLint your code. Don't use jquery, is the PHP of the JavaScript libraries. Easy to get started but harder to scale. Therefore, harder to maintain. Be a grown up, use Dojo. My recommendation file:///users/baguirre/downloads/rubyconf-slides/index.html#48

49 11/12/11 10:44 AM file:///users/baguirre/downloads/rubyconf-slides/index.html#49

50 11/12/11 10:45 AM Go with micro if you can. microjs.com Otherwise get something modular. Dojo is modular. Micro vs. full file:///users/baguirre/downloads/rubyconf-slides/index.html#50

51 11/12/11 10:45 AM To MVC or not to MVC file:///users/baguirre/downloads/rubyconf-slides/index.html#51

52 11/12/11 10:45 AM When not doing a SPA. When not to use MVC file:///users/baguirre/downloads/rubyconf-slides/index.html#52

53 11/12/11 10:45 AM Thanks for listening file:///users/baguirre/downloads/rubyconf-slides/index.html#53

54 11/12/11 10:45 AM Questions? file:///users/baguirre/downloads/rubyconf-slides/index.html#54

55 11/12/11 10:46 AM Thank you! Github: file:///users/baguirre/downloads/rubyconf-slides/index.html#55

Client-side Kung-Fu. with Backbone.js. Gur

Client-side Kung-Fu. with Backbone.js. Gur Client-side Kung-Fu with Backbone.js Gur Dotan @gurdotan http://github.com/gurdotan Credits igloolab.com @iloveigloo michele.berto.li @MicheleBertoli Agenda Preface Why Backbone.js Backbone.js Architecture

More information

Single-Page JavaScript Apps

Single-Page JavaScript Apps Single-Page JavaScript Apps with RequireJS and Backbone.js Mihai Bîrsan Who is this guy? Mihai Bîrsan Sr. Web Development Engineer Email Tools Team Amazon Development Center Romania We ve recently rebuilt

More information

Backbone.js in a Php Environment

Backbone.js in a Php Environment Backbone.js in a Php Environment March 2, 2013 Ken Harris Sr. Developer, Telkonet.com Milwaukee, WI Trends in Web Apps Fatter Clients Desktop style apps Lots of Javascript Lots of CSS Requires structure

More information

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

MongoDB Web Architecture

MongoDB Web Architecture MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas

More information

This tutorial covers most of the topics required for a basic understanding of BackboneJS and to get a feel of how it works.

This tutorial covers most of the topics required for a basic understanding of BackboneJS and to get a feel of how it works. i About the Tutorial BackboneJS is a light weight JavaScript library that allows to develop and structure client side applications that run in a web browser. It offers MVC framework which abstracts data

More information

Client Side MVC with Backbone & Rails. Tom

Client Side MVC with Backbone & Rails. Tom Client Side MVC with Backbone & Rails Tom Zeng @tomzeng tom@intridea.com Client Side MV* with Backbone & Rails Benefits of Client Side MVC Backbone.js Introduction Client Side MV* Alternatives Backbone

More information

Model-View-Whatever A COMPARISON OF JAVASCRIPT MVC/MVP/MVVM FRAMEWORKS. J. Tower

Model-View-Whatever A COMPARISON OF JAVASCRIPT MVC/MVP/MVVM FRAMEWORKS. J. Tower Model-View-Whatever A COMPARISON OF JAVASCRIPT MVC/MVP/MVVM FRAMEWORKS J. Tower Principal Sponsor http://www.skylinetechnologies.com Thank our Principal Sponsor by tweeting and following @SkylineTweets

More information

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

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015 Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others

More information

THE PRAGMATIC INTRO TO REACT. Clayton Anderson thebhwgroup.com WEB AND MOBILE APP DEVELOPMENT AUSTIN, TX

THE PRAGMATIC INTRO TO REACT. Clayton Anderson thebhwgroup.com WEB AND MOBILE APP DEVELOPMENT AUSTIN, TX THE PRAGMATIC INTRO TO REACT Clayton Anderson thebhwgroup.com WEB AND MOBILE APP DEVELOPMENT AUSTIN, TX REACT "A JavaScript library for building user interfaces" But first... HOW WE GOT HERE OR: A BRIEF

More information

Front End Programming

Front End Programming 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

More information

CSC 443: Web Programming

CSC 443: Web Programming 1 CSC 443: Web Programming Haidar Harmanani Department of Computer Science and Mathematics Lebanese American University Byblos, 1401 2010 Lebanon Today 2 Course information Course Objectives A Tiny assignment

More information

Evolution of the "Web

Evolution of the Web Evolution of the "Web App" @HenrikJoreteg @Hoarse_JS THIS USED TO BE SIMPLE! 1. WRITE SOME HTML 2. LAY IT OUT WITH FRAMES OR TABLES 3. FTP IT TO A SERVER! 4. BAM! CONGRATULATIONS, YOU RE A WEB DEVELOPER!

More information

widgetjs Documentation

widgetjs Documentation widgetjs Documentation Release 1.2.3 Nicolas Vanhoren Dec 22, 2017 Contents 1 Tutorial 3 1.1 Presentation of widgetjs......................................... 3 1.2 Quickstart................................................

More information

Simple AngularJS thanks to Best Practices

Simple AngularJS thanks to Best Practices Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it

More information

a Very Short Introduction to AngularJS

a Very Short Introduction to AngularJS a Very Short Introduction to AngularJS Lecture 11 CGS 3066 Fall 2016 November 8, 2016 Frameworks Advanced JavaScript programming (especially the complex handling of browser differences), can often be very

More information

Model-View-Control Pattern for User Interactive Systems

Model-View-Control Pattern for User Interactive Systems Model-View-Control Pattern for User Interactive Systems In various forms and guises J. Scott Hawker p. 1 Contents Key Model-View-Control (MVC) concepts Web MVC UI Controller in MVC GRASP Application Controller

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 4 - Simulating a backend without needing a server (2017-11-03) made by Philip Guo, derived from labs by Michael

More information

Ten good practices for ASP.NET MVC applications

Ten good practices for ASP.NET MVC applications Ten good practices for ASP.NET MVC applications Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e Options for Web development Fully serverside Fully clientside Hybrid SPA And

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...

More information

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue Mobile Web Applications Gary Dubuque IT Research Architect Department of Revenue Summary Times are approximate 10:15am 10:25am 10:35am 10:45am Evolution of Web Applications How they got replaced by native

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

CSC 309 The Big Picture

CSC 309 The Big Picture CSC 309 The Big Picture Server GET path/to/route Host: example.com Client Client sends HTTP request to server How? Server GET path/to/route Host: example.com Client Client sends HTTP request to server

More information

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

Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE Let's take a look at how we can accomplish this with AJAX in Rails. Overall, I was quite surprised at how easy it is

More information

3/5/2012. Rich Internet Applications. Presentation layer. Presentation layer

3/5/2012. Rich Internet Applications. Presentation layer. Presentation layer 7. Single-page application architecture Presentation layer In a traditional web application, presentation layer is within web tier, renders output to client tier (browser) 7. Single-page application architecture

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Lecture 8. ReactJS 1 / 24

Lecture 8. ReactJS 1 / 24 Lecture 8 ReactJS 1 / 24 Agenda 1. JSX 2. React 3. Redux 2 / 24 JSX 3 / 24 JavaScript + HTML = JSX JSX is a language extension that allows you to write HTML directly into your JavaScript files. Behind

More information

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

P a g e 1. Danish Technological Institute. Scripting and Web Languages   Online Course k Scripting and Web Languages P a g e 1 Online Course k72853 Scripting and Web Languages P a g e 2 Title Estimated Duration (hrs) JsRender Fundamentals 2 Advanced JsRender Features 3 JavaScript SPA: Getting Started with SPA in Visual

More information

Beyond'jQuery. It all started so quietly... JavaScript is a first class citizen. What does that mean? Nathaniel T.

Beyond'jQuery. It all started so quietly... JavaScript is a first class citizen. What does that mean? Nathaniel T. Beyond'jQuery It all started so quietly... Nathaniel T. Schutta @ntschutta One line at a time. No avoiding it now... JavaScript is a first class citizen. What does that mean? How do we create modern web

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

Django with Python Course Catalog

Django with Python Course Catalog Django with Python Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com

More information

Treating Framework Fatigue With JavaScript

Treating Framework Fatigue With JavaScript Treating Framework Fatigue With JavaScript Tim Doherty Software Architect /in/timdoherty timdoherty.net ??? Hey, this one looks cool! You May Suffer From Framework Fatigue Symptoms Confusion One-way reactive

More information

Future Web App Technologies

Future Web App Technologies Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding

More information

5/29/2014 BACKBONE.JS. By Phil Huhn Northern Software Group. Agenda. Model Collection View Router. Categories App.

5/29/2014 BACKBONE.JS. By Phil Huhn Northern Software Group. Agenda. Model Collection View Router. Categories App. BACKBONE.JS By Phil Huhn 2013-09-15 2013 Northern Software Group Agenda Model Collection View Router Categories App NSG (c) 2014 1 Javascript MV* Libraries MVC/MVVM Libraries/Frameworks AngularJS Backbone.js

More information

"Stupid Easy" Scaling Tweaks and Settings. AKA Scaling for the Lazy

Stupid Easy Scaling Tweaks and Settings. AKA Scaling for the Lazy "Stupid Easy" Scaling Tweaks and Settings AKA Scaling for the Lazy I'm Lazy (and proud of it) The Benefits of "Lazy" Efficiency is king Dislike repetition Avoid spending a lot of time on things A Lazy

More information

Widget ID Each user type widget should have a unique identifier within a single controller (ID). Any string can be as ID.

Widget ID Each user type widget should have a unique identifier within a single controller (ID). Any string can be as ID. Widget ID Each user type widget should have a unique identifier within a single controller (ID). Any string can be as ID. Widget ID is used when installing the widget, appears in its program code and cannot

More information

Wednesday. Wednesday, September 17, CS 1251 Page 1

Wednesday. Wednesday, September 17, CS 1251 Page 1 CS 1251 Page 1 Wednesday Wednesday, September 17, 2014 8:20 AM Here's another good JavaScript practice site This site approaches things from yet another point of view it will be awhile before we cover

More information

Web Application Development

Web Application Development Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie INTRODUCTION & TERMINOLOGY PART 1 Objec8ves

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - Middleware and Routes - Single-page web app - More MongoDB examples - Authentication - Victoria

More information

Best PHP Training in PUNE & Best PHP Training Institute in MAHARASHTRA

Best PHP Training in PUNE & Best PHP Training Institute in MAHARASHTRA Best Training in PUNE & Best Training Institute in MAHARASHTRA RAHITECH is the biggest training center in PUNE with high tech infrastructure and lab facilities and the options of opting for multiple courses

More information

Introduction to PHP. Handling Html Form With Php. Decisions and loop. Function. String. Array

Introduction to PHP. Handling Html Form With Php. Decisions and loop. Function. String. Array Introduction to PHP Evaluation of Php Basic Syntax Defining variable and constant Php Data type Operator and Expression Handling Html Form With Php Capturing Form Data Dealing with Multi-value filed Generating

More information

django-xross Documentation

django-xross Documentation django-xross Documentation Release 0.6.0 Igor idle sign Starikov Jan 14, 2018 Contents 1 Description 3 2 Requirements 5 3 Table of Contents 7 3.1 Quickstart................................................

More information

JavaScript Specialist v2.0 Exam 1D0-735

JavaScript Specialist v2.0 Exam 1D0-735 JavaScript Specialist v2.0 Exam 1D0-735 Domain 1: Essential JavaScript Principles and Practices 1.1: Identify characteristics of JavaScript and common programming practices. 1.1.1: List key JavaScript

More information

JavaScript or: How I Learned to Stop Worrying and Love a Classless Loosely Typed Language

JavaScript or: How I Learned to Stop Worrying and Love a Classless Loosely Typed Language JavaScript or: How I Learned to Stop Worrying and Love a Classless Loosely Typed Language Part 1 JavaScript the language What is JavaScript? Why do people hate JavaScript? / Should *you* hate JavaScript?

More information

Building a Minesweeper Game So, how to create a minesweeper? Let's first break down our goal to a few smaller tasks:

Building a Minesweeper Game So, how to create a minesweeper? Let's first break down our goal to a few smaller tasks: Building a Minesweeper Game So, how to create a minesweeper? Let's first break down our goal to a few smaller tasks: 1. Define rules 2. Structure game 3. Draw the board 1. Draw fields 2. Plant mines 3.

More information

DDR & jquery More than just hover & dropdown

DDR & jquery More than just hover & dropdown DDR & jquery More than just hover & dropdown Lee Wise / Front End Developer @theleewise 10 Pound Gorilla Team Everything DNN Everything Else Skins Modules Development Consulting Internet Marketing Web

More information

Single Page Applications using AngularJS

Single Page Applications using AngularJS Single Page Applications using AngularJS About Your Instructor Session Objectives History of AngularJS Introduction & Features of AngularJS Why AngularJS Single Page Application and its challenges Data

More information

Modern and Responsive Mobile-enabled Web Applications

Modern and Responsive Mobile-enabled Web Applications Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive

More information

PHP Online Training. PHP Online TrainingCourse Duration - 45 Days. Call us: HTML

PHP Online Training. PHP Online TrainingCourse Duration - 45 Days.  Call us: HTML PHP Online Training PHP is a server-side scripting language designed for web development but also used as a generalpurpose programming language. PHP is now installed on more than 244 million websites and

More information

Create-A-Page Design Documentation

Create-A-Page Design Documentation Create-A-Page Design Documentation Group 9 C r e a t e - A - P a g e This document contains a description of all development tools utilized by Create-A-Page, as well as sequence diagrams, the entity-relationship

More information

JQuery and Javascript

JQuery and Javascript JQuery and Javascript Javascript - a programming language to perform calculations/ manipulate HTML and CSS/ make a web page interactive JQuery - a javascript framework to help manipulate HTML and CSS JQuery

More information

Javascript Performance in the Browser. Charlie Fiskeaux II User Interface Engineer

Javascript Performance in the Browser. Charlie Fiskeaux II User Interface Engineer Javascript Performance in the Browser Charlie Fiskeaux II User Interface Engineer About Me & Circonus Lead User Interface Engineer for Circonus Industry-leading monitoring and analytics platform We deploy

More information

At the Forge RJS Templates Reuven M. Lerner Abstract The power of Ajax to fetch and run JavaScript generated by your server-side language. The past few months, I've written a number of articles in this

More information

AJAX Programming Chris Seddon

AJAX Programming Chris Seddon AJAX Programming Chris Seddon seddon-software@keme.co.uk 2000-12 CRS Enterprises Ltd 1 2000-12 CRS Enterprises Ltd 2 What is Ajax? "Asynchronous JavaScript and XML" Originally described in 2005 by Jesse

More information

Ajax Simplified Nicholas Petreley Abstract Ajax can become complex as far as implementation, but the concept is quite simple. This is a simple tutorial on Ajax that I hope will ease the fears of those

More information

Lesson 1 using Dreamweaver CS3. To get started on your web page select the link below and copy (Save Picture As) the images to your image folder.

Lesson 1 using Dreamweaver CS3. To get started on your web page select the link below and copy (Save Picture As) the images to your image folder. Lesson 1 using Dreamweaver CS3 To get started on your web page select the link below and copy (Save Picture As) the images to your image folder. Click here to get images for your web page project. (Note:

More information

IN PRACTICE. Daniele Bochicchio Stefano Mostarda Marco De Sanctis. Includes 106 practical techniques MANNING

IN PRACTICE. Daniele Bochicchio Stefano Mostarda Marco De Sanctis. Includes 106 practical techniques MANNING IN PRACTICE Daniele Bochicchio Stefano Mostarda Marco De Sanctis Includes 106 practical techniques MANNING contents preface xv acknowledgments xvii about this book xix about the authors xxiii about the

More information

Financial. AngularJS. AngularJS. Download Full Version :

Financial. AngularJS. AngularJS. Download Full Version : Financial AngularJS AngularJS Download Full Version : https://killexams.com/pass4sure/exam-detail/angularjs Section 1: Sec One (1 to 50) Details:This section provides a huge collection of Angularjs Interview

More information

TechWatch Report Javascript Libraries and Frameworks

TechWatch Report Javascript Libraries and Frameworks TechWatch Report Javascript Libraries and Frameworks Date: February 2018 Created By: Prateek Vijan, Sanjeevan Biswas Contributors: Vrushali Malushte, Sridatta Pasumarthy, Mayank Kansal, Arindam Nayak Contents

More information

WebDev. Web Design COMBINES A NUMBER OF DISCIPLINES. Web Development Process DESIGN DEVELOPMENT CONTENT MULTIMEDIA

WebDev. Web Design COMBINES A NUMBER OF DISCIPLINES. Web Development Process DESIGN DEVELOPMENT CONTENT MULTIMEDIA WebDev Site Construction is one of the last steps The Site Development Process http://webstyleguide.com Web Design COMBINES A NUMBER OF DISCIPLINES DESIGN CONTENT Interaction Designers User Interface Designers

More information

An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development Form Validation Creating templates

An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development Form Validation Creating templates PHP Course Contents An Introduction to HTML & CSS Basic Html concept used in website development Creating templates An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development

More information

M275 - Web Development using PHP and MySQL

M275 - Web Development using PHP and MySQL Arab Open University Faculty of computer Studies M275 - Web Development using PHP and MySQL Chapter 9 Working with Objects This is a supporting material to chapter 9. This summary will never substitute

More information

3 Days Training Program

3 Days Training Program 3 Days Training Program What is AngularJS? A JavaScript framework for creating dynamic web applications Open Source GitHub: https://github.com/angular/angular.js MIT License Uses jquery jquery 1.7.1 or

More information

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

Standard 1 The student will author web pages using the HyperText Markup Language (HTML) I. Course Title Web Application Development II. Course Description Students develop software solutions by building web apps. Technologies may include a back-end SQL database, web programming in PHP and/or

More information

Fundamentals of Web Development. Web Development. Fundamentals of. Global edition. Global edition. Randy Connolly Ricardo Hoar

Fundamentals of Web Development. Web Development. Fundamentals of. Global edition. Global edition. Randy Connolly Ricardo Hoar Connolly Hoar This is a special edition of an established title widely used by colleges and universities throughout the world. Pearson published this exclusive edition for the benefit of students outside

More information

AJAX Programming Overview. Introduction. Overview

AJAX Programming Overview. Introduction. Overview AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.

More information

MVC: Model View Controller

MVC: Model View Controller MVC: Model View Controller Computer Science and Engineering College of Engineering The Ohio State University Lecture 26 Motivation Basic parts of any application: Data being manipulated A user-interface

More information

Connecting Angular and CFML

Connecting Angular and CFML Connecting Angular and CFML Trip Ward About Me Senior Technical Specialist at ICF Owner & Chief Consultant at Trir Software Software Architecture and Development ColdFusion(1998), Java, jquery, HTML5,

More information

Makbul Khan. Nikhil Sukul

Makbul Khan. Nikhil Sukul Makbul Khan Acquia Certified Developer Senior Software Engineer makbul_khan8 makbul_khan08 Nikhil Sukul Senior Drupal Architect nikhilsukul nikhilsukul Topics 1. What is Isomorphic JavaScript 2. Why Isomorphic

More information

Application Development

Application Development Pro Single Page Application Development Using Backbone.js and ASP.NET Gil Fink Ido Flatow Apress- Contents J About the Authors About the Technical Reviewers Acknowledgments Introduction xvii xix xxi xxiii

More information

mismatch between what is maybe possible today and what is going on in many of today's IDEs.

mismatch between what is maybe possible today and what is going on in many of today's IDEs. What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to

More information

Financial. AngularJS. AngularJS.

Financial. AngularJS. AngularJS. Financial http://killexams.com/exam-detail/ Section 1: Sec One (1 to 50) Details:This section provides a huge collection of Angularjs Interview Questions with their answers hidden in a box to challenge

More information

Design and Implementation of Single Page Application Based on AngularJS

Design and Implementation of Single Page Application Based on AngularJS Design and Implementation of Single Page Application Based on AngularJS 1 Prof. B.A.Khivsara, 2 Mr.Umesh Khivsara 1 Assistant Prof., 2 Website Developer 1 Department of Computer Engineering, 2 UKValley

More information

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

Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University 1 Objectives You will learn about: Python WSGI programming Web app frameworks in general (briefly)

More information

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski Building mobile app using Cordova and AngularJS, common practices Goran Kopevski Agenda What is cordova? How to choose proper JS framework Building mobile app using Cordova and AngularJS Common fails,

More information

Creating Custom Dojo Widgets Using WTP

Creating Custom Dojo Widgets Using WTP Creating Custom Dojo Widgets Using WTP Nick Sandonato IBM Rational Software WTP Source Editing Committer nsandona@us.ibm.com Copyright IBM Corp., 2009. All rights reserved; made available under the EPL

More information

Building Backbone Plugins

Building Backbone Plugins Building Backbone Plugins Eliminate The Boilerplate In Backbone.js Apps Derick Bailey and Jerome Gravel-Niquet 2013-2014 Muted Solutions, LLC. All Rights Reserved. Backbone.js and the Backbone.js logo

More information

Intro To Javascript. Intro to Web Development

Intro To Javascript. Intro to Web Development Intro To Javascript Intro to Web Development Preamble I don't like JavaScript But with JS your feelings don't matter. Browsers don't work well with any other language so you have to write code that either:

More information

Open Source Library Developer & IT Pro

Open Source Library Developer & IT Pro Open Source Library Developer & IT Pro Databases LEV 5 00:00:00 NoSQL/MongoDB: Buildout to Going Live INT 5 02:15:11 NoSQL/MongoDB: Implementation of AngularJS INT 2 00:59:55 NoSQL: What is NoSQL INT 4

More information

JQUERYUI - WIDGET FACTORY

JQUERYUI - WIDGET FACTORY JQUERYUI - WIDGET FACTORY http://www.tutorialspoint.com/jqueryui/jqueryui_widgetfactory.htm Copyright tutorialspoint.com Earlier, the only way to write custom controls in jquery was to extend the $.fn

More information

this is a cat CS50 Quiz 1 Review

this is a cat CS50 Quiz 1 Review CS50 Quiz 1 Review this is a cat CS50 Quiz 1 Review JavaScript CS50 Quiz 1 Review first, recall from zamyla Remember, PHP is run server-side. The HTML output of this PHP code is sent to the user. Server

More information

djangotribune Documentation

djangotribune Documentation djangotribune Documentation Release 0.7.9 David THENON Nov 05, 2017 Contents 1 Features 3 2 Links 5 2.1 Contents................................................. 5 2.1.1 Install..............................................

More information

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15 6.148 Frontend II: Javascript and DOM Programming Let s talk about Javascript :) Why Javascript? Designed in ten days in December 1995! How are they similar? Javascript is to Java as hamster is to ham

More information

AngularJS Fundamentals

AngularJS Fundamentals AngularJS Fundamentals by Jeremy Zerr Blog: http://www.jeremyzerr.com LinkedIn: http://www.linkedin.com/in/jrzerr Twitter: http://www.twitter.com/jrzerr What is AngularJS Open Source Javascript MVC/MVVM

More information

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh Web Programming and Design MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh Plan for the next 5 weeks: Introduction to HTML tags, creating our template file Introduction to CSS and style

More information

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18 Web Frameworks MMIS 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz March 10, 2011 Denis Helic (KMI, TU Graz) Web Frameworks March 10, 2011 1 / 18 Web Application Frameworks MVC Frameworks for Web applications

More information

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me?

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me? The web should be fast. Executive Summary Performance Report for: https://edwardtbabinski.us/blogger/social/index Report generated: Test Server Region: Using: Analysis options: Tue,, 2017, 4:21 AM -0400

More information

Course Details. Skills Gained. Who Can Benefit. Prerequisites. View Online URL:

Course Details. Skills Gained. Who Can Benefit. Prerequisites. View Online URL: Specialized - Mastering jquery Code: Lengt h: URL: TT4665 4 days View Online Mastering jquery provides an introduction to and experience working with the JavaScript programming language in the environment

More information

Jquery Documentation Autocomplete

Jquery Documentation Autocomplete Jquery Documentation Autocomplete 1 / 6 2 / 6 3 / 6 Jquery Documentation Autocomplete Theming. The autocomplete widget uses the jquery UI CSS framework to style its look and feel. If autocomplete specific

More information

Frontend Frameworks. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Frontend Frameworks. SWE 432, Fall 2016 Design and Implementation of Software for the Web Frontend Frameworks SWE 432, Fall 2016 Design and Implementation of Software for the Web Today How do we build a single page app without dying? MVC/MVVM (AngularJS) For further reading: Book: Learning

More information

JavaScript: the Big Picture

JavaScript: the Big Picture JavaScript had to look like Java only less so be Java's dumb kid brother or boy-hostage sidekick. Plus, I had to be done in ten days or something worse than JavaScript would have happened.! JavaScript:

More information

Advanced PHP and MySQL

Advanced PHP and MySQL COURSE SYLLABUS Advanced PHP and MySQL Industrial Training (3 MONTHS) PH : 0481 2411122, 09495112288 E-Mail : info@faithinfosys.com www.faithinfosys.com Marette Tower Near No. 1 Pvt. Bus Stand Vazhoor

More information

Understanding Angular Directives By Jeffry Houser

Understanding Angular Directives By Jeffry Houser Understanding Angular Directives By Jeffry Houser A DotComIt Whitepaper Copyright 2016 by DotComIt, LLC Contents A Simple Directive... 4 Our Directive... 4 Create the App Infrastructure... 4 Creating a

More information

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel.

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel. Hi. I'm Prateek Baheti. I'm a developer at ThoughtWorks. I'm currently the tech lead on Mingle, which is a project management tool that ThoughtWorks builds. I work in Balor, which is where India's best

More information

Ten interesting features of Google s Angular Project

Ten interesting features of Google s Angular Project Ten interesting features of Google s Angular Project - 1 Ten interesting features of Google s Angular Project Copyright Clipcode Ltd 2018 All rights reserved Ten interesting features of Google s Angular

More information

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services Ajax Contents 1. Overview of Ajax 2. Using Ajax directly 3. jquery and Ajax 4. Consuming RESTful services Demos folder: Demos\14-Ajax 2 1. Overview of Ajax What is Ajax? Traditional Web applications Ajax

More information

UNIT -II. Language-History and Versions Introduction JavaScript in Perspective-

UNIT -II. Language-History and Versions Introduction JavaScript in Perspective- UNIT -II Style Sheets: CSS-Introduction to Cascading Style Sheets-Features- Core Syntax-Style Sheets and HTML Style Rle Cascading and Inheritance-Text Properties-Box Model Normal Flow Box Layout- Beyond

More information

Introduction to AngularJS

Introduction to AngularJS CHAPTER 1 Introduction to AngularJS Google s AngularJS is an all-inclusive JavaScript model-view-controller (MVC) framework that makes it very easy to quickly build applications that run well on any desktop

More information

Executive Summary. Performance Report for: The web should be fast. Top 4 Priority Issues

Executive Summary. Performance Report for:   The web should be fast. Top 4 Priority Issues The web should be fast. Executive Summary Performance Report for: https://www.wpspeedupoptimisation.com/ Report generated: Test Server Region: Using: Tue,, 2018, 12:04 PM -0800 London, UK Chrome (Desktop)

More information

Programming the World Wide Web by Robert W. Sebesta

Programming the World Wide Web by Robert W. Sebesta Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction

More information