SlideShare ist ein Scribd-Unternehmen logo
1 von 14
INNOVATÍV MEGOLDÁSOK
   Molnár Gábor, Nyári Zoltán - budapest.js meetup
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
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
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 :)
opciók
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)
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ő?
Require.js - promise támogatás
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.define
window.require = promisify window.require
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
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á
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-abo
Tervek

   Business Intelligence: mondrian + saiku

   Grafikonkezelés

   offline üzemmód támogatása

Weitere ähnliche Inhalte

Ähnlich wie SMARTFRONT javascript meetup prez

Magento
MagentoMagento
MagentoeRise
 
Mi a baj a Drupaloddal
Mi a baj a DrupaloddalMi a baj a Drupaloddal
Mi a baj a Drupaloddalthesnufkin
 
HTML5 esettanulmányok
HTML5 esettanulmányokHTML5 esettanulmányok
HTML5 esettanulmányokZoltán Dávid
 
Kotlin Multiplatform: Ilyen minek van?
Kotlin Multiplatform: Ilyen minek van?Kotlin Multiplatform: Ilyen minek van?
Kotlin Multiplatform: Ilyen minek van?Mito
 

Ähnlich wie SMARTFRONT javascript meetup prez (7)

Novell Identity Management
Novell Identity ManagementNovell Identity Management
Novell Identity Management
 
Magento
MagentoMagento
Magento
 
Berkes andrás pxml architektura 2013-01-16
Berkes andrás pxml architektura 2013-01-16Berkes andrás pxml architektura 2013-01-16
Berkes andrás pxml architektura 2013-01-16
 
Mi a baj a Drupaloddal
Mi a baj a DrupaloddalMi a baj a Drupaloddal
Mi a baj a Drupaloddal
 
Jee kurzus 1 het
Jee kurzus 1 hetJee kurzus 1 het
Jee kurzus 1 het
 
HTML5 esettanulmányok
HTML5 esettanulmányokHTML5 esettanulmányok
HTML5 esettanulmányok
 
Kotlin Multiplatform: Ilyen minek van?
Kotlin Multiplatform: Ilyen minek van?Kotlin Multiplatform: Ilyen minek van?
Kotlin Multiplatform: Ilyen minek van?
 

SMARTFRONT javascript meetup prez

  • 1. INNOVATÍV MEGOLDÁSOK Molnár Gábor, Nyári Zoltán - budapest.js meetup
  • 2. 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
  • 3. 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
  • 4.
  • 5. 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 :)
  • 7. 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)
  • 8. 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ő?
  • 9. Require.js - promise támogatás 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.define window.require = promisify window.require
  • 10. 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
  • 11. 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á
  • 12. 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-abo
  • 13.
  • 14. Tervek  Business Intelligence: mondrian + saiku  Grafikonkezelés  offline üzemmód támogatása