smartfront javascript meetup prez

14
INNOVATÍV MEGOLDÁSOK Molnár Gábor, Nyári Zoltán - budapest.js meetup

Upload: schrammkaroly

Post on 26-Jun-2015

416 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SMARTFRONT javascript meetup prez

INNOVATÍV MEGOLDÁSOK

Molnár Gábor, Nyári Zoltán - budapest.js meetup

Page 2: SMARTFRONT javascript meetup prez

AGENDA

SMARTFRONT architektúra overview

javascript rich-client keretrendszer

követelmények meghatározása komponensek bemutatása knock-out how-to implementált szolgáltatások

Page 3: SMARTFRONT javascript meetup prez

n-tier architecture

Többrétegű alkalmazás

javascript rich-client RESTful interfész JavaEE, SPRING alkalmazás-szerver

szerver technológia független skálázható, klaszterezhető stateless

szerver

Page 4: SMARTFRONT javascript meetup prez
Page 5: SMARTFRONT javascript meetup prez

Prezentációs réteg - Elvárások

KOMPLEX ÜZLETI ALKALMAZÁSOK FEJLESZTÉSE

b2b / b2c, front + backoffice igények sok form, sok adat, sok felületi logika (+ sok más)

data binding is a must (two-way binding) validációk, lokalizáció modularitás AppViewModel - single page, multi tab :)

Page 6: SMARTFRONT javascript meetup prez

opciók

Page 7: SMARTFRONT javascript meetup prez

Komponensek

rich javascript kliens – felhasználói élmény responsive,css, html5, offline

knockout.js – MVVM jquery – UI, AJAX require.js – modularitás less

Tablet, smartphone (phonegap)

Page 8: SMARTFRONT javascript meetup prez

Modularizáció

Asynchronous Module Definition gyakorlatilag nincs alternatívája Require.js - probléma : API függőségek

kezelése on-demand betöltés

Modulok közötti kommunikáció szerver oldalra korlátozva

UI modul - > tabok később - ablakkezelő?

Page 9: SMARTFRONT javascript meetup prez

promisify = (old_function) -> return -> callback = arguments[arguments.length - 1]

if callback instanceof Function arguments[arguments.length - 1] = -> promise = $.Deferred() $.when.apply($, arguments).then -> $.when(callback.apply(this, arguments)).then (module) -> promise.resolve module return promise; return old_function.apply(this, arguments)

window.define = promisify window.definewindow.require = promisify window.require

Require.js - promise támogatás

Page 10: SMARTFRONT javascript meetup prez

Felhasználói felület

Modulok Tabok: formok, listanézetek Egységes

stílus táblák grid rendszer

jQuery (+jQuery modulok) HTML

id-k, name-ek használatának kerülése ha mégis kell: random ID-k generálása

Page 11: SMARTFRONT javascript meetup prez

Knock-out how-to #1

Kétirányú adatkötés

Nem magic a fejlesztőknek pontosan tudniuk kell hogyan

működik különben : nehezen felderíthető hibák

Problémák beépített templating elavult (jQuery template)

de nincs is szükség rá

Page 12: SMARTFRONT javascript meetup prez

Knock-out how-to #2

ViewModel és nem Model öröklődés nem támogatott szerializálás - deszerializálás dinamikus listák (ajax) + egyedi

komponensek

http://www.knockmeout.net/2011/06/10-things-to-know-about-knockoutjs-on.html

Page 13: SMARTFRONT javascript meetup prez
Page 14: SMARTFRONT javascript meetup prez

Tervek

Business Intelligence: mondrian + saiku

Grafikonkezelés

offline üzemmód támogatása