29
Building HTML5 and JavaScript Apps with MVVM and Knockout John Papa @john_papa http://johnpapa.net

Knockout mvvm-m1-slides

Embed Size (px)

DESCRIPTION

Playlists : https://www.youtube.com/watch?v=xD7PGM7qGzQ&index=2&list=PLLQgkMVoGtcvoZHbsPDrDPM19PYJ0GSBG

Citation preview

Page 1: Knockout mvvm-m1-slides

Building HTML5 and JavaScript Apps with MVVM and Knockout

John Papa @john_papa

http://johnpapa.net

Page 2: Knockout mvvm-m1-slides

Getting Started with Knockout

John Papa @john_papa

http://johnpapa.net

Page 3: Knockout mvvm-m1-slides

Outline

JavaScript, Data Binding and Knockout MVVM with Knockout jsFiddle Using Knockout in Visual Studio Key Resources

Page 4: Knockout mvvm-m1-slides

UI Patterns Structured JavaScript

Data & Bindings

Separation of Concerns

JavaScript Development

Page 5: Knockout mvvm-m1-slides

What is Knockout ?

6+ 2+

Separates behavior and structure Declarative bindings Observables

Page 6: Knockout mvvm-m1-slides

Key Knockout Concepts

Page 7: Knockout mvvm-m1-slides

Knockout in 3 Steps

<input data-bind="value: firstName" />

var myViewModel = { firstName: ko.observable("John") };

ko.applyBindings(myViewModel);

Declarative Binding

Create an Observable

Bind the ViewModel to the View

http://jsfiddle.net/johnpapa/BEzJc/

Page 8: Knockout mvvm-m1-slides

DEMO

Hello Knockout

Page 9: Knockout mvvm-m1-slides

Outline

JavaScript, Data Binding and Knockout MVVM with Knockout jsFiddle Using Knockout in Visual Studio Key Resources

Page 10: Knockout mvvm-m1-slides

Separation, Organization, Data Binding

MVVM Foremost, a separation pattern Model – View – ViewModel Not technology specific Works well with data binding

But what about everything else?

Just helpers

Separation of Concerns

Page 11: Knockout mvvm-m1-slides

MVVM Components

ViewModel View (HTML) Model (JSON)

Page 12: Knockout mvvm-m1-slides

MVVM Components

ViewModel

Model • The Data • JavaScript object

View

Page 13: Knockout mvvm-m1-slides

MVVM Components

ViewModel Model

View • The web page, the HTML • User friendly presentation of information

Page 14: Knockout mvvm-m1-slides

View Model

ViewModel • Behavior and Data for the View • Contains Properties, Methods & the Model viewmodel = { id: ko.observable("123"),

salePrice: ko.observable(1995), rating: ko.observable(4), isInStock: ko.observable(true),

guitarModel: { code: ko.observable("314ce"), name: ko.observable("Taylor 314 ce") }, showDetails: function () { /* method goes here */ } };

MVVM Components

http://jsfiddle.net/johnpapa/u9S93/

http://jsfiddle.net/johnpapa/zBqxy/

Page 15: Knockout mvvm-m1-slides

DEMO

Knockout with MVVM

Page 16: Knockout mvvm-m1-slides

Outline

JavaScript, Data Binding and Knockout MVVM with Knockout jsFiddle Using Knockout in Visual Studio Key Resources

Page 17: Knockout mvvm-m1-slides

jsFiddle: Chalkboard for Ideas

Created by Piotr Zalewa and hosted at http://jsFiddle.net Free code sharing tool Within a browser you can:

Edit Share Execute Debug

Ideal for quick chalkboard ideas

Page 18: Knockout mvvm-m1-slides

jsFiddle

http://jsfiddle.net/johnpapa/nBWKZ/

CSS HTML

JavaScript Results

Page 19: Knockout mvvm-m1-slides

DEMO

jsFiddle

Page 20: Knockout mvvm-m1-slides

Outline

JavaScript, Data Binding and Knockout MVVM with Knockout jsFiddle Using Knockout in Visual Studio Key Resources

Page 22: Knockout mvvm-m1-slides

DEMO

Visual Studio Extensions

Page 23: Knockout mvvm-m1-slides

Begin Coding with Knockout

/// <reference path= "/scripts/knockout-2.0.0.debug.js" />

Referencing Knockout Get source from GitHub Use NuGet

Intellisense in *.js files

Page 24: Knockout mvvm-m1-slides

DEMO

Getting Started in Visual Studio

Page 25: Knockout mvvm-m1-slides

Outline

JavaScript, Data Binding and Knockout MVVM with Knockout jsFiddle Using Knockout in Visual Studio Key Resources

Page 26: Knockout mvvm-m1-slides

Knockout Resources

Knockout

Source code

Documentation

Forums

Tutorials

Stackoverflow

Ryan Niemeyer’s blog

jsFiddle

http://knockoutjs.com

https://github.com/SteveSanderson/knockout

http://jpapa.me/kodocs

http://jpapa.me/koforum

http://learn.knockoutjs.com/

http://jpapa.me/kostackoverflow

http://www.knockmeout.net

http://www.jsfiddle.net

Page 27: Knockout mvvm-m1-slides

DEMO

Knockout Resources

Page 28: Knockout mvvm-m1-slides

Summary

JavaScript, Data Binding and Knockout MVVM with Knockout jsFiddle Using Knockout in Visual Studio Key Resources

Page 29: Knockout mvvm-m1-slides

For more in-depth online developer training visit

on-demand content from authors you trust