35
From Web App Model Design to production with Wakanda Alexandre Morgaut - 4D @amorgaut @wakandasoft

From Web App Model Design to Production with Wakanda

Embed Size (px)

DESCRIPTION

There is many interesting platforms out there to develop Web applications, like .NET, Spring, ruby on rails, Django, LAMP, Meteor, and so on. In this presentation, you will discover Wakanda a Model driven NoSQL / SSJS platform built on Web standards. You will see how a project starts, can be designed, tested, developed by a team, debugged, administrated, maintained, and then how to update it in the future. We will compare to some existing platforms and why Wakanda could make you more efficient.

Citation preview

Page 1: From Web App Model Design to Production with Wakanda

From Web App Model Design

to production with Wakanda

Alexandre Morgaut - 4D @amorgaut@wakandasoft

Page 2: From Web App Model Design to Production with Wakanda

PresentationW3C AC member

Web Architect

JS Expert

REST Lover

NoSQL Fanboy

@amorgaut

http://about.me/amorgaut

Page 3: From Web App Model Design to Production with Wakanda

Agenda

Wakanda Architecture

How a Project start!

Model vs Mockup

Test-Driven Development

Team Work & Source Control

Debugging

Deployment & Administration

Evolutions & Refactoring

Page 4: From Web App Model Design to Production with Wakanda

wakanda

Page 5: From Web App Model Design to Production with Wakanda

Open Source Cross-platform development and deployment system

for model-driven web-based applications

Page 6: From Web App Model Design to Production with Wakanda

wakanda.org

@wakandasoft

JSeverywhere.org

@JSeverywhere

Page 7: From Web App Model Design to Production with Wakanda

Wakanda

Wakanda Server(aka WakandaDB)

Wakanda Application Framework

Wakanda Studio

DataStore Model Editor

Code Editor

GUI Designer

Debugger

Users & Groups

AdministrationExtensions

REST/JSON

JSON-RPC

Page 8: From Web App Model Design to Production with Wakanda

WakandaDB

Wakanda Server(aka WakandaDB)

Your Development ToolsVisual Studio, XCode, NetBeans, Eclipse,

Maqueta, Codio, Cloud9, Orion, Sencha Architect+

Chrome Web Inspector

Your Server FrameworkJava, .NET, node.js PHP, Python, Ruby...

REST/JSON

Webkit debugger protocol 1.0& Firebug Crossfire protocol

Your Web app Client FrameworkExtJS, Sencha Touch, Kendo UI, Backbone.js...

Your native app Client FrameworkiOS, Androïd, .NET...

REST/JSON, Git

Page 9: From Web App Model Design to Production with Wakanda

Standard BasedW3C

- XMLHttpRequest, WindowTimer,

- Web Storage, Web Worker, File, FileSystem, Blob, ...

CommonJS

- Modules, Package, Unit Test

Other

- Console, JSON, JSON-RPC, REST

(+ some node.js support)

Page 10: From Web App Model Design to Production with Wakanda

Webkit JavaScriptCore

Open Source, multi-threaded, preemptive, thread-safe, 64bits

Fast (2 JIT), strict mode (ES5), well structured & documented

aka SquirrelFish Extreme & Nitro Extremehttp://trac.webkit.org/wiki/JavaScriptCore

Page 11: From Web App Model Design to Production with Wakanda

Wakanda Circle of Friends

Page 12: From Web App Model Design to Production with Wakanda

How a project starts

Page 13: From Web App Model Design to Production with Wakanda

“Expression of a requirement”

“Birth of an innovative idea”

“First usage of an innovative technology”

Page 14: From Web App Model Design to Production with Wakanda

Model vs Mockup

Page 15: From Web App Model Design to Production with Wakanda
Page 16: From Web App Model Design to Production with Wakanda

Mockup

Fast representation of a “vision”

Human friendly shared idea

Page 17: From Web App Model Design to Production with Wakanda

Model-driven

GUI is too platform specific

Removes distraction from GUI

Focus on requirements

Page 18: From Web App Model Design to Production with Wakanda

Test-Driven Development

Page 19: From Web App Model Design to Production with Wakanda

Test Service

var testCase = {

name: "testCaseName", testFails: function() { Y.Assert.isFalse(true); }, testPasses: function() { Y.Assert.isFalse(false); } };

http://doc.wakanda.org/Technical-Notes/Advanced/Writing-Unit-Tests-in-Wakanda.300-959974.en.html

YUI Test

Client or Server JS tests

Page 20: From Web App Model Design to Production with Wakanda

CommonJS Unit Testvar! assert,! accountSvc;

assert = require('assert');TwilioScript = require('wakanda-twilio/core/twiml').TwilioScript;

exports['test response'] = function Twilio_Test_Twiml_response() { var script = new TwilioScript();

var twiml = '<?xml version="1.0" encoding="UTF-8"?>\n'; twiml += '<Response>\n'; twiml += '</Response>' assert.strictEqual(script.toString(), twiml, 'simple response ok');};};

exports['test hangup()'] = function Twilio_Test_Twiml_hangup() { var script = new TwilioScript(); script.hangup();

var twiml = '<?xml version="1.0" encoding="UTF-8"?>\n'; twiml += '<Response>\n'; twiml += '<Hangup />\n'; twiml += '</Response>' assert.strictEqual(script.toString(), twiml, 'hangup response ok');};

http://wiki.commonjs.org/wiki/Unit_Testing/1.0

Page 21: From Web App Model Design to Production with Wakanda

Team Work& Source Control

Page 22: From Web App Model Design to Production with Wakanda
Page 23: From Web App Model Design to Production with Wakanda

Team WorkServer

- Model split in SSJS modules

- Service & RPC modules, Shared Workers

Client

- Web pages & Web Components

- Custom Widgets

- Themes, application.css

Tool

- Studio Extensions

Page 24: From Web App Model Design to Production with Wakanda

Source Control

Commit

Log / History

Pull / Push on Github

Pull / Push on Server

Page 25: From Web App Model Design to Production with Wakanda

Debugging

Page 26: From Web App Model Design to Production with Wakanda

Wakanda Internal Debugger

Page 27: From Web App Model Design to Production with Wakanda

Web Inspector

Page 28: From Web App Model Design to Production with Wakanda

Deployment & Administration

Page 29: From Web App Model Design to Production with Wakanda

Server Administration

Page 30: From Web App Model Design to Production with Wakanda

Data Browser

Page 31: From Web App Model Design to Production with Wakanda

Experimental Tool

Deployment

Gandi VPS

Page 32: From Web App Model Design to Production with Wakanda

Evolutions& Refactoring

Page 33: From Web App Model Design to Production with Wakanda

Application Evolutions

Sandboxed Modules (libs, RPC, Services)

Sandboxed Web Components

Updatable DataModel

- auto type conversion

- Extended Models

- openRemoteCatalog()

Page 34: From Web App Model Design to Production with Wakanda

Wakanda Evolutions

Short releases cycle

More and more Standard support

Open Source & Enterprise Editions

Page 35: From Web App Model Design to Production with Wakanda

Q & A

San Francisco, CA - Oct. 25th

http://jseverywhere.org

Wakanda

http://wakanda.org

@jseverywhere

@wakandasoft

Client and Server JavaScript APIs Community Group

http://www.w3.org/community/jseverywhere/