SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Enterprise Ajax - Client Edition

                Béla Varga
    bvarga [at] internetwire [dot] de
Backbase
Enterprise Ajax - Client Edition

                Béla Varga
    bvarga [at] internetwire [dot] de
Das Unternehmen hinter Backbase

   - gegründet 2003
   - Zentrale in San Mateo - California

   - Büro in Amsterdam
   - ca. 80 Angestellte


                          www.backbase.com



Béla Varga            Backbase Enterprise Framework
                                                      2
Ajax Grundprinzipen

   - dynamischen laden von Daten und Elementen (JSON,XML)
   - Javascript für die clientseitige Logik
     eventgesteuerte Ereignisse
     clientseitige Validierung
   - XHMTL/CSS für die Darstellung
     Teile der Benutzeroberfläche ein und ausblenden
     CSS Werte verändern
     dynamischen erzeugen und löschen von XHMTL Elementen



Béla Varga            Backbase Enterprise Framework
                                                            3
Zielsetzung des Frameworks:

   - Web Standards (W3C) bündeln & erweitern
         DOM, Events, XML, Xpath, XSLT, Schema, XInclude, SMIL

  - Komplexität von Webapplikationen verringern
         Widgets (objektorientiert)
         Model Tree - Backbase XML Dokument
         View Tree - der Browser DOM
         Controller - Applikations und Widget Logik
         Eigene deklarative Sprache - XEL

    - Browser Quirks verbergen
         Backbase JavaScript API




Béla Varga                  Backbase Enterprise Framework
                                                                 4
Backbase Technologien

   - Client Core (closed source)
         TDL - Element Definitionssprache
         XEL und JavaScript runtime
         JavaScript API und Kommandos


    - BTL Backbase Widget Bibliothek
         Vorgefertigte und eigene Elemente

    - XML Namespaces
         Elemente aus verschiedenen Auszeichnungssprachen
         Definition der Bezeichnung und des Tags des Namensraumes



Béla Varga                 Backbase Enterprise Framework
                                                                   5
TDL (Tag Description Language)

    - Wird von der Core Engine verarbeitet
   - Eigene Widgets (Klassen)
   - Objektorientiert
       Konstruktor / Destruktor
       Attribute / Eigenschaften und Methoden
       Mehrfache Vererbung
       Abstrakte Klassen und Interfaces

     - View Templates
     - Alle Elemente erben von DOM Elementen
       Umsetzung der W3C DOM Spezifikation


Béla Varga                   Backbase Enterprise Framework
                                                             6
Class
Attribute
Method
Event Handler
TDL - View Templates

     - beschreibt das Aussehen des Elements im Browser
     - erlaubt das Verschachteln von Elementen
     - nur ein root Knoten erlaubt
     - XML oder JavaScript verwendbar
        <d:template type="text/javascript">
            var oRoot = document.createElement('div');
            var oGate = document.createElement('div');
            oRoot.appendChild(oGate);
            return [oRoot, oGate];
        </d:template>

         <d:template type="application/xhtml+xml">
             <div>
                  <div>
                      <d:content/>
                  </div>
             </div>
         </d:template>


Béla Varga                Backbase Enterprise Framework
                                                          8
TDL - Attributes

     - Tag: <attribute>
    - kann beim initialisieren des Elementes gesetzt werden
    - erlaubt nur string Werte
    - optional kann beim setzen und verändern des Wertes
    Code ausgeführt werden
        <mapper>
        Wird beim intialisieren und Änderung des Attributes ausgeführt

        <changer>
         Wird nur bei Änderungen des Attributes ausgeführt



Béla Varga                 Backbase Enterprise Framework
                                                                         9
TDL - Property

     - Tag: <property>
     - kann alle JavaScript Typen (string, boolean, array, object)
     speichern
     - optional können setter und getter Methoden gesetzt werden
        <setter>
        <getter>




Béla Varga             Backbase Enterprise Framework
                                                                     10
TDL - Methoden

     - Tag: <d:method>
     - Argumente: <d:argument>

     - Ist durch Subklassen überschreibbar
     - aufruf durch element.methoden() oder <e:call/>




Béla Varga           Backbase Enterprise Framework
                                                        11
XEL (Declarative Execution Language)

    - Vereinfachung von JavaScript
       asynchrones Laden
       DOM Manipulation

    - plattformunabhängige Definition der Client Logik
    - nahtlose Einbindung von XPath
    - wird von der Core Engine verarbeitet
    - austauschbar durch JavaScript
    - Grundfunktionalitäten
      Funktion und Methodeaufrufe
      Variablen, Schleifen, Iteration, Error Handling

Béla Varga                    Backbase Enterprise Framework
                                                              12
XEL vs. JS
   <button>
       <e:handler event="click" type="application/xml">

              <c:create destination="id('productList')"
              mode="appendChild">
                  <li>New item</li>
                  <li>New item</li>
                  <li>New item</li>
                  <li>New item</li>
               </c:create>

       </e:handler>
   </button>


   das gleiche in JavaScript? 4 x createElement, 4 x
   createTextNode, appendChild ...

Béla Varga            Backbase Enterprise Framework
                                                          13
DOM Manipulation

    - alle Element besitzen die W3C DOM Level 2 API
     createElement, create TextNode
     appendChild, removeChild
     childNodes


    - XEL Methoden
     <c:destroy with="id(myDiv)" />

    - bb Core JavaScript API
     bb.controller.destructChildren()




Béla Varga                 Backbase Enterprise Framework
                                                           14
XPath


   "ancestor::form"

   "descendant::input[@name = 'myInput']"


   "id('myElement')//w4:element[@value = 'myValue']"


   "following-sibling::td[2]"

   "concat( 'input', '[1]')"


   "model()/id('myDiv')"

   "view()/id('myDiv')"




Béla Varga            Backbase Enterprise Framework
                                                        15
XSLT - Beispiel


   ...

   <e:variable name="xmlSource">
     <c:load url="data.xml" />
   </e:variable>

   <e:variable name="stylesheet">
     <c:load url="datastyle.xsl" />
   </e:variable>

   <c:transform select="$xmlSource" stylesheet="$stylesheet"
   destination="id('myDiv')" mode="appendChild" />

   ...




Béla Varga           Backbase Enterprise Framework
                                                               16
Tag 2

Béla Varga   Backbase Enterprise Framework
                                             17
TDL - Behavior

      - Tag: <d:behavior/>
      - wiederkehrende Funktionalitäten Kapseln
      - Darstellung und Funktion trennen
      - Folgende Elemente können verwendet werden:
             <d:attribute/>        <d:property/>
             <d:method/>       <d:handler/>
             <d:resources/>

      - BTL Behavior: drag, resize, remoteData, userEdit

Béla Varga           Backbase Enterprise Framework
                                                           18
TDL - Vererbung

     - Attribut: extends
     - Erben von element oder behavior
     - Alle Elemente erben von dom:element
     - Mehrfachvererbung möglich (right-to-left priority)
     - Anwenden von Interfaces durch implements
     - Abstrakte Elemente erzeugen durch abstract Attribut
     - Überschreibar sind attribute, property, method
     - OOP Methoden:
       bb.callSuper()
       bb.instanceOf()

Béla Varga               Backbase Enterprise Framework
                                                             19
TDL - Constructor

    - Logik ausführen wenn das Element initialisiert wird
     - Wird ausgeführt bevor das Element in den DOM Baum
     eingefügt wird

     - Wird meistens verwendet um Properties zu initialisieren
     - Wenn das Element in den DOM Baum eingefügt wird, dann
     DOMNodeInsertedIntoDocument verwenden




Béla Varga           Backbase Enterprise Framework
                                                                 20
XPath

    - selektiert Teile einer XML Struktur

     - Verwendung in XEL
        select=``
        with=``


     - Verwendung in JavaScript
         bb.evalute(`xpath`, oTarget)
         bb.evaluteSmart(`xpath`, oTarget)




Béla Varga            Backbase Enterprise Framework
                                                      21
XPath

                                          ancestor

                                          ancestor
 precending
   sibling

                                              following
                     self
                                                sibling
 precending
   sibling                      descendant

Béla Varga    Backbase Enterprise Framework
                                                          22
XPath
     <library>

       <book>

         <chapter/>
         <chapter>

             <section>

                <paragraph/>
                <paragraph/>

             </section>

         </chapter>

       </book>

     </library>


Béla Varga                Backbase Enterprise Framework
                                                          23
XPath
     <library>                            library ist parent von book

       <book>

         <chapter/>
         <chapter/>

             <section>

                <paragraph/>
                <paragraph/>

             </section>

         </chapter>

       </book>

     </library>


Béla Varga                Backbase Enterprise Framework
                                                                        24
XPath
     <library>                            library ist parent von book

       <book>                             die beiden chapter sind children
                                          von book
         <chapter/>
         <chapter/>

             <section>

               <paragraph/>
               <paragraph/>

             </section>

         </chapter>

       </book>

     </library>


Béla Varga                Backbase Enterprise Framework
                                                                             25
XPath
     <library>                            library ist parent von book

       <book>                             die beiden chapter sind children
                                          von book
         <chapter/>
         <chapter/>                       die beiden chapter von book sind
                                          siblings (haben beide den gleichen
             <section>                    parent)
                <paragraph/>
                <paragraph/>

             </section>

         </chapter>

       </book>

     </library>


Béla Varga                Backbase Enterprise Framework
                                                                               26
XPath
     <library>                            library ist parent von book

       <book>                             die beiden chapter sind children
                                          von book
         <chapter/>
         <chapter/>                       die beiden chapter von book sind
                                          siblings (haben beide den gleichen
             <section>                    parent)
                <paragraph/>
                <paragraph/>              library, book, und der zweite
                                          chapter sind ancestors von
             </section>                   section
         </chapter>

       </book>

     </library>


Béla Varga                Backbase Enterprise Framework
                                                                               27
XPath
     <library>                            library ist parent von book

       <book>                             die beiden chapter sind children
                                          von book
         <chapter/>
         <chapter/>                       die beiden chapter von book sind
                                          siblings (haben beide den gleichen
             <section>                    parent)
               <paragraph/>
               <paragraph/>               library, book, und der zweite
                                          chapter sind ancestors von
             </section>                   section
         </chapter>
                                          die beiden chapter, die section,
       </book>
                                          und die beiden paragraphs sind
                                          descendants von book
     </library>


Béla Varga                Backbase Enterprise Framework
                                                                               28
XPath Notation

    /                                document root

    .                                current element

    ..                               parent of the current element

    /library/*                       all elements in /library

    section                          every section element that is child of the
                                     current element
                                     every section element in a chapter in
    /library/book/chapter/section    every book in the library


    root:     /element
    anywhere: //element
    current: element



Béla Varga           Backbase Enterprise Framework
                                                                            29
XPath Axis

     - Eine Achse ist ein Satz an Knoten relativ zu einem Knoten
     - A::B = selektiere B von der Achse A

         self::element

         parent::element

         ancestor::element

         descendant::element

         preceding-sibling::element

         following-sibling::element




Béla Varga           Backbase Enterprise Framework
                                                               30
Backbase Element




                   Backbase Explorer




Béla Varga       Backbase Enterprise Framework
                                                 31
XInclude

    - Einbinden von externen XML Dateien
      <xi:include href="myWidgetDefinition.xml"/>

      <?xml version="1.0" encoding="utf-8"?>
      <d:tdl>
      ...
      </d:tdl>


    - Verweis wird durch den Inhalt des Dokuments ersetzt
      Bitte Reihenfolge beachten




Béla Varga                  Backbase Enterprise Framework
                                                            32
Core/DOM API - Commands

     - bb JavaScript Core API
       bb.construct()
       bb.evaluate()
       bb.callSuper()
       bb.instanceOf()

     - bb JavaScript DOM API
       oElement.getProperty()
       oElement.removeChild()
       oElement.addEventListener()

     - der offizielle Weg nach W3C ist nicht immer der einfachste
     - Vereinfachte Kommandos
       create, load, move, position

Béla Varga               Backbase Enterprise Framework
                                                              33
Events

    - Eine Ereignis ist „etwas das zu einem best. Zeitpunkt passiert“

     - Ereignisse haben keine Dauer

    - Ereignisse werden durch den Anwender oder durch die
    Anwendung ausgelöst

    - Backbase hat die W3C DOM Events implementiert




Béla Varga           Backbase Enterprise Framework
                                                                34
Ereignis Arten

    - User Interface (DOM Level 3 UIEvent)
       focus, blur, resize, scroll, ...

    - Mouse Event (DOM Level 3 MouseEvent)
       click, mousedown, mouseover, ...


    - Model Changes (DOM Level 3 Mutation Events)
       DOMNodeInserted, DOMAttrModified ...

    - HTML Events (gehen auch ohne Backbase)
       load, select, submit ...

    - Custom Events (BTL oder eigene)
       mouseenter, mynewevent...

Béla Varga           Backbase Enterprise Framework
                                                     35
onkeyup vs. onkeydown


    - onkeyup wird einmal gefeuert, onkeydown wird solang
    gefeuert bis die Taste gedrückt ist, deshalb

    onkeyup verwenden!




Béla Varga          Backbase Enterprise Framework
                                                            36
Event-Fluss

    1.) capturing phase - Absteigen zum Zielelement
       Das Ereignis steigt vom obersten Knoten (document) bis zum Zielelement des Ereignisses.
       Auf diesen Weg werden alle Handler ausgeführt, die für den Ereignistyp für die Capturing-
       Phase registiert sind
         bb.html.addEventListener(element,`focus`, handler, true)

    2.) target phase - Zielelement erreicht
       Das Ereignis erreicht ein Ziel Element und löst alle zuständigen Handler aus.

    3.) bubbling phase - Aufsteigen vom Zielelement
       Das Ereignis steigt im DOM Baum von einem Eltern Element zum nächsten, bis der
       document Element erreicht ist und löst unterwegs alle zuständigen Handler aus.

    Jedes Event hat Phase 1 und 2 aber nicht alle haben Phase 3!
        focus, blur, ...

Béla Varga                   Backbase Enterprise Framework
                                                                                           37
Event DOM API Methoden

    - Eventhandler/listener erstellen
        <d:handler event=`click` />
        <d:handler event=`click` match=`.class` />

        oElement.addEventListener(`click`,myFunction,false);



    - Eventhandler/listener löschen
        oElement.removeEventListener(`click`,myFunction,false);



    - Event auslösen
        oElement.fireEvent(oTarget,`click`);



Béla Varga             Backbase Enterprise Framework
                                                                  38
Event Handling

    - TDL Handler Tag
        <d:handler event=`click` />

    - XEL Handler Tag
        <b:button>
           <e:handler event=`click` />
        </b:button>

    - XEL Attribute
        <b:button e:onclick=`myMethod();` />

    - DOM Event Listener
        oElement.addEventListener();

    - HTML Event Handler (laufen ohne Backbase Engine)
        <div onclick=`myMethod()` />

Béla Varga            Backbase Enterprise Framework
                                                         39
Ereignisse steuern

    - Event-Bubbling verhindern
       Das Ereignis hat keine Bubbling Phase.

       bb.command.fireEvent(oElement,`click`, false);

    - Event-Fluss in der Phase 1 beenden
        Target und Bubbling Phase fallen aus. Das Ereignis erreicht nie sein Ziel Element.

        event.stopPropagation();

    - Standardaktionen verhindern
        Browser führen standardmäßig Ereignisse aus ohne das eines definiert wurde.
        Beispiel: Link besitzt click-Ereignis.

        event.preventDefault();
        bb.command.fireEvent(oElement,`click`, true, true);

Béla Varga                   Backbase Enterprise Framework
                                                                                             40
Events vs. Methods

    - Event
      Benachrichtung
      kann in abgeleiteten Klassen nicht überschrieben werden


      ich.habDurst!



    - Method
      Kommando
      kann in abgeleiteten Klassen überschrieben werden

      du.holMirMalWasZuTrinken!


Béla Varga                  Backbase Enterprise Framework
                                                                41
Server - Client Kommunikation

    - siehe Google Docs




Béla Varga         Backbase Enterprise Framework
                                                   42
SMIL (smile)

    - Synchronized Multimedia Integration Language
    - W3C Auszeichnungssprache für multimediale Inhalte
    - Wird in Backbase für visuelle Effekte verwendet
    - BasicInlineTiming, RepeatTiming, TimeManipluations und
    BasicAnimation bereits integriert
    var oAnimationInfo = {
      attributeName: "height",
      attributeType:"CSS", dur: "1s", to: "250px", fill: "freeze"
    }

    bb.smil.animate(this, oAnimationInfo);




Béla Varga           Backbase Enterprise Framework
                                                                43
Vielen Dank!

             Béla Varga
netzzwerg [at] googlemail [dot] com
Vielen Dank!

             Béla Varga
netzzwerg [at] googlemail [dot] com
Vielen Dank!

             Béla Varga
netzzwerg [at] googlemail [dot] com

Weitere ähnliche Inhalte

Was ist angesagt?

Einführung in nosql // ArangoDB mit Symfony 2
Einführung in nosql // ArangoDB mit Symfony 2Einführung in nosql // ArangoDB mit Symfony 2
Einführung in nosql // ArangoDB mit Symfony 2ArangoDB Database
 
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-AnwendungenJava Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungengedoplan
 

Was ist angesagt? (6)

Query Result Caching
Query Result CachingQuery Result Caching
Query Result Caching
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 
Entity framework
Entity frameworkEntity framework
Entity framework
 
Einführung in nosql // ArangoDB mit Symfony 2
Einführung in nosql // ArangoDB mit Symfony 2Einführung in nosql // ArangoDB mit Symfony 2
Einführung in nosql // ArangoDB mit Symfony 2
 
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-AnwendungenJava Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
Java Persistence in Action – Einsatz von JPA 2.x in Java-EE-Anwendungen
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 

Andere mochten auch

Les plugins pour plateformes e-commerce
Les plugins pour plateformes e-commerceLes plugins pour plateformes e-commerce
Les plugins pour plateformes e-commerceLengow
 
Energydrin kaimpr
Energydrin kaimprEnergydrin kaimpr
Energydrin kaimprThomas Saga
 
Tschechien seit der Transformation
Tschechien seit der TransformationTschechien seit der Transformation
Tschechien seit der TransformationAustrian Red Cross
 
14 digestion absorption-_glucides__proteines
14 digestion absorption-_glucides__proteines14 digestion absorption-_glucides__proteines
14 digestion absorption-_glucides__proteinesazazel861
 
Manual de laboratorio de suelos en ingenieria civil joseph e. bowles
Manual de laboratorio de suelos en ingenieria civil   joseph e. bowlesManual de laboratorio de suelos en ingenieria civil   joseph e. bowles
Manual de laboratorio de suelos en ingenieria civil joseph e. bowlesDiego Huerfano
 
Namics social media_auswirkungen_hslu_sfr_v1.2
Namics social media_auswirkungen_hslu_sfr_v1.2Namics social media_auswirkungen_hslu_sfr_v1.2
Namics social media_auswirkungen_hslu_sfr_v1.2Corporate Dialog GmbH
 
Virtualizacion A La Orden
Virtualizacion A La OrdenVirtualizacion A La Orden
Virtualizacion A La OrdenMarlon Manrique
 
Jabra receives Red Dot 2014 Award
Jabra receives Red Dot 2014 AwardJabra receives Red Dot 2014 Award
Jabra receives Red Dot 2014 AwardVARINDIA
 
Meet the DOT Doctor (Personal side)
Meet the DOT Doctor (Personal side)Meet the DOT Doctor (Personal side)
Meet the DOT Doctor (Personal side)The DOT Doctor
 
Apresentação sem título (1)
Apresentação sem título (1)Apresentação sem título (1)
Apresentação sem título (1)Milena Santos
 
Instructivo para inscripcion a nivel de ingles English dot Works
Instructivo para inscripcion a nivel de ingles English dot WorksInstructivo para inscripcion a nivel de ingles English dot Works
Instructivo para inscripcion a nivel de ingles English dot Worksguiboro
 
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Tchelinux
 
Utilização de políticas de serviços na plataforma Microsoft
Utilização de políticas de serviços na plataforma MicrosoftUtilização de políticas de serviços na plataforma Microsoft
Utilização de políticas de serviços na plataforma MicrosoftMiguel Pardal
 
2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...
2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...
2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...Hans-Joerg Happel
 
Mampaey Dynamic Oval Towing (DOT) System
Mampaey Dynamic Oval Towing (DOT) SystemMampaey Dynamic Oval Towing (DOT) System
Mampaey Dynamic Oval Towing (DOT) Systemmampaeydot
 
Entstehung eines besonderen Geschäftsberichts
Entstehung eines besonderen GeschäftsberichtsEntstehung eines besonderen Geschäftsberichts
Entstehung eines besonderen GeschäftsberichtsPatrick Kiss
 
Vorstellung Schulfirma
Vorstellung SchulfirmaVorstellung Schulfirma
Vorstellung SchulfirmaGerhard Henne
 
Sne 2009 03sept
Sne 2009 03septSne 2009 03sept
Sne 2009 03septPsyNuGen
 

Andere mochten auch (20)

Les plugins pour plateformes e-commerce
Les plugins pour plateformes e-commerceLes plugins pour plateformes e-commerce
Les plugins pour plateformes e-commerce
 
Energydrin kaimpr
Energydrin kaimprEnergydrin kaimpr
Energydrin kaimpr
 
Tschechien seit der Transformation
Tschechien seit der TransformationTschechien seit der Transformation
Tschechien seit der Transformation
 
14 digestion absorption-_glucides__proteines
14 digestion absorption-_glucides__proteines14 digestion absorption-_glucides__proteines
14 digestion absorption-_glucides__proteines
 
Manual de laboratorio de suelos en ingenieria civil joseph e. bowles
Manual de laboratorio de suelos en ingenieria civil   joseph e. bowlesManual de laboratorio de suelos en ingenieria civil   joseph e. bowles
Manual de laboratorio de suelos en ingenieria civil joseph e. bowles
 
Namics social media_auswirkungen_hslu_sfr_v1.2
Namics social media_auswirkungen_hslu_sfr_v1.2Namics social media_auswirkungen_hslu_sfr_v1.2
Namics social media_auswirkungen_hslu_sfr_v1.2
 
Virtualizacion A La Orden
Virtualizacion A La OrdenVirtualizacion A La Orden
Virtualizacion A La Orden
 
Jabra receives Red Dot 2014 Award
Jabra receives Red Dot 2014 AwardJabra receives Red Dot 2014 Award
Jabra receives Red Dot 2014 Award
 
Meet the DOT Doctor (Personal side)
Meet the DOT Doctor (Personal side)Meet the DOT Doctor (Personal side)
Meet the DOT Doctor (Personal side)
 
Apresentação sem título (1)
Apresentação sem título (1)Apresentação sem título (1)
Apresentação sem título (1)
 
Nummer1
Nummer1Nummer1
Nummer1
 
I-DOT Job Offer 1991
I-DOT Job Offer 1991I-DOT Job Offer 1991
I-DOT Job Offer 1991
 
Instructivo para inscripcion a nivel de ingles English dot Works
Instructivo para inscripcion a nivel de ingles English dot WorksInstructivo para inscripcion a nivel de ingles English dot Works
Instructivo para inscripcion a nivel de ingles English dot Works
 
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
 
Utilização de políticas de serviços na plataforma Microsoft
Utilização de políticas de serviços na plataforma MicrosoftUtilização de políticas de serviços na plataforma Microsoft
Utilização de políticas de serviços na plataforma Microsoft
 
2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...
2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...
2009 06 18 Atlassian User Conference Duesseldorf Romberg Happel Mit Wiquila S...
 
Mampaey Dynamic Oval Towing (DOT) System
Mampaey Dynamic Oval Towing (DOT) SystemMampaey Dynamic Oval Towing (DOT) System
Mampaey Dynamic Oval Towing (DOT) System
 
Entstehung eines besonderen Geschäftsberichts
Entstehung eines besonderen GeschäftsberichtsEntstehung eines besonderen Geschäftsberichts
Entstehung eines besonderen Geschäftsberichts
 
Vorstellung Schulfirma
Vorstellung SchulfirmaVorstellung Schulfirma
Vorstellung Schulfirma
 
Sne 2009 03sept
Sne 2009 03septSne 2009 03sept
Sne 2009 03sept
 

Ähnlich wie Backbase Intro

Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Sebastian Adler
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradleadesso AG
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit antroskakori
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)
Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)
Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)Nils Adermann
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBDocker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBPeter Ramm
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in RailsAngelo Maron
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"schellsoft
 
Workshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GAWorkshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GAOliver Belikan
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Ulrike Schwinn
 
JPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SEJPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SEhwilming
 
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Novakenstein
 
Drupal Multisite und Subversion
Drupal Multisite und SubversionDrupal Multisite und Subversion
Drupal Multisite und SubversionDrupalist
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Servergedoplan
 

Ähnlich wie Backbase Intro (20)

Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradle
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit ant
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)
Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)
Apache CouchDB at PHPUG Karlsruhe, Germany (Jan 27th 2009)
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DBDocker-Images mit vorinstallierter Instanz einer Oracle-DB
Docker-Images mit vorinstallierter Instanz einer Oracle-DB
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in Rails
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"Auszug Seminarunterlagen "Tomcat 6.x"
Auszug Seminarunterlagen "Tomcat 6.x"
 
Workshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GAWorkshop zu Hibernate 3.2.2 GA
Workshop zu Hibernate 3.2.2 GA
 
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
Überblick: 18c und Autonomous Data Warehouse Cloud (ADWC)
 
JPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SEJPA – Der Persistenz-­Standard in der Java EE und SE
JPA – Der Persistenz-­Standard in der Java EE und SE
 
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
 
Drupal Multisite und Subversion
Drupal Multisite und SubversionDrupal Multisite und Subversion
Drupal Multisite und Subversion
 
Modulsystem in Drupal
Modulsystem in DrupalModulsystem in Drupal
Modulsystem in Drupal
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
Java EE Microservices ohne Server
Java EE Microservices ohne ServerJava EE Microservices ohne Server
Java EE Microservices ohne Server
 

Backbase Intro

  • 1. Enterprise Ajax - Client Edition Béla Varga bvarga [at] internetwire [dot] de
  • 2. Backbase Enterprise Ajax - Client Edition Béla Varga bvarga [at] internetwire [dot] de
  • 3. Das Unternehmen hinter Backbase - gegründet 2003 - Zentrale in San Mateo - California - Büro in Amsterdam - ca. 80 Angestellte www.backbase.com Béla Varga Backbase Enterprise Framework 2
  • 4. Ajax Grundprinzipen - dynamischen laden von Daten und Elementen (JSON,XML) - Javascript für die clientseitige Logik eventgesteuerte Ereignisse clientseitige Validierung - XHMTL/CSS für die Darstellung Teile der Benutzeroberfläche ein und ausblenden CSS Werte verändern dynamischen erzeugen und löschen von XHMTL Elementen Béla Varga Backbase Enterprise Framework 3
  • 5. Zielsetzung des Frameworks: - Web Standards (W3C) bündeln & erweitern DOM, Events, XML, Xpath, XSLT, Schema, XInclude, SMIL - Komplexität von Webapplikationen verringern Widgets (objektorientiert) Model Tree - Backbase XML Dokument View Tree - der Browser DOM Controller - Applikations und Widget Logik Eigene deklarative Sprache - XEL - Browser Quirks verbergen Backbase JavaScript API Béla Varga Backbase Enterprise Framework 4
  • 6. Backbase Technologien - Client Core (closed source) TDL - Element Definitionssprache XEL und JavaScript runtime JavaScript API und Kommandos - BTL Backbase Widget Bibliothek Vorgefertigte und eigene Elemente - XML Namespaces Elemente aus verschiedenen Auszeichnungssprachen Definition der Bezeichnung und des Tags des Namensraumes Béla Varga Backbase Enterprise Framework 5
  • 7. TDL (Tag Description Language) - Wird von der Core Engine verarbeitet - Eigene Widgets (Klassen) - Objektorientiert Konstruktor / Destruktor Attribute / Eigenschaften und Methoden Mehrfache Vererbung Abstrakte Klassen und Interfaces - View Templates - Alle Elemente erben von DOM Elementen Umsetzung der W3C DOM Spezifikation Béla Varga Backbase Enterprise Framework 6
  • 9. TDL - View Templates - beschreibt das Aussehen des Elements im Browser - erlaubt das Verschachteln von Elementen - nur ein root Knoten erlaubt - XML oder JavaScript verwendbar <d:template type="text/javascript"> var oRoot = document.createElement('div'); var oGate = document.createElement('div'); oRoot.appendChild(oGate); return [oRoot, oGate]; </d:template> <d:template type="application/xhtml+xml"> <div> <div> <d:content/> </div> </div> </d:template> Béla Varga Backbase Enterprise Framework 8
  • 10. TDL - Attributes - Tag: <attribute> - kann beim initialisieren des Elementes gesetzt werden - erlaubt nur string Werte - optional kann beim setzen und verändern des Wertes Code ausgeführt werden <mapper> Wird beim intialisieren und Änderung des Attributes ausgeführt <changer> Wird nur bei Änderungen des Attributes ausgeführt Béla Varga Backbase Enterprise Framework 9
  • 11. TDL - Property - Tag: <property> - kann alle JavaScript Typen (string, boolean, array, object) speichern - optional können setter und getter Methoden gesetzt werden <setter> <getter> Béla Varga Backbase Enterprise Framework 10
  • 12. TDL - Methoden - Tag: <d:method> - Argumente: <d:argument> - Ist durch Subklassen überschreibbar - aufruf durch element.methoden() oder <e:call/> Béla Varga Backbase Enterprise Framework 11
  • 13. XEL (Declarative Execution Language) - Vereinfachung von JavaScript asynchrones Laden DOM Manipulation - plattformunabhängige Definition der Client Logik - nahtlose Einbindung von XPath - wird von der Core Engine verarbeitet - austauschbar durch JavaScript - Grundfunktionalitäten Funktion und Methodeaufrufe Variablen, Schleifen, Iteration, Error Handling Béla Varga Backbase Enterprise Framework 12
  • 14. XEL vs. JS <button> <e:handler event="click" type="application/xml"> <c:create destination="id('productList')" mode="appendChild"> <li>New item</li> <li>New item</li> <li>New item</li> <li>New item</li> </c:create> </e:handler> </button> das gleiche in JavaScript? 4 x createElement, 4 x createTextNode, appendChild ... Béla Varga Backbase Enterprise Framework 13
  • 15. DOM Manipulation - alle Element besitzen die W3C DOM Level 2 API createElement, create TextNode appendChild, removeChild childNodes - XEL Methoden <c:destroy with="id(myDiv)" /> - bb Core JavaScript API bb.controller.destructChildren() Béla Varga Backbase Enterprise Framework 14
  • 16. XPath "ancestor::form" "descendant::input[@name = 'myInput']" "id('myElement')//w4:element[@value = 'myValue']" "following-sibling::td[2]" "concat( 'input', '[1]')" "model()/id('myDiv')" "view()/id('myDiv')" Béla Varga Backbase Enterprise Framework 15
  • 17. XSLT - Beispiel ... <e:variable name="xmlSource"> <c:load url="data.xml" /> </e:variable> <e:variable name="stylesheet"> <c:load url="datastyle.xsl" /> </e:variable> <c:transform select="$xmlSource" stylesheet="$stylesheet" destination="id('myDiv')" mode="appendChild" /> ... Béla Varga Backbase Enterprise Framework 16
  • 18. Tag 2 Béla Varga Backbase Enterprise Framework 17
  • 19. TDL - Behavior - Tag: <d:behavior/> - wiederkehrende Funktionalitäten Kapseln - Darstellung und Funktion trennen - Folgende Elemente können verwendet werden: <d:attribute/> <d:property/> <d:method/> <d:handler/> <d:resources/> - BTL Behavior: drag, resize, remoteData, userEdit Béla Varga Backbase Enterprise Framework 18
  • 20. TDL - Vererbung - Attribut: extends - Erben von element oder behavior - Alle Elemente erben von dom:element - Mehrfachvererbung möglich (right-to-left priority) - Anwenden von Interfaces durch implements - Abstrakte Elemente erzeugen durch abstract Attribut - Überschreibar sind attribute, property, method - OOP Methoden: bb.callSuper() bb.instanceOf() Béla Varga Backbase Enterprise Framework 19
  • 21. TDL - Constructor - Logik ausführen wenn das Element initialisiert wird - Wird ausgeführt bevor das Element in den DOM Baum eingefügt wird - Wird meistens verwendet um Properties zu initialisieren - Wenn das Element in den DOM Baum eingefügt wird, dann DOMNodeInsertedIntoDocument verwenden Béla Varga Backbase Enterprise Framework 20
  • 22. XPath - selektiert Teile einer XML Struktur - Verwendung in XEL select=`` with=`` - Verwendung in JavaScript bb.evalute(`xpath`, oTarget) bb.evaluteSmart(`xpath`, oTarget) Béla Varga Backbase Enterprise Framework 21
  • 23. XPath ancestor ancestor precending sibling following self sibling precending sibling descendant Béla Varga Backbase Enterprise Framework 22
  • 24. XPath <library> <book> <chapter/> <chapter> <section> <paragraph/> <paragraph/> </section> </chapter> </book> </library> Béla Varga Backbase Enterprise Framework 23
  • 25. XPath <library> library ist parent von book <book> <chapter/> <chapter/> <section> <paragraph/> <paragraph/> </section> </chapter> </book> </library> Béla Varga Backbase Enterprise Framework 24
  • 26. XPath <library> library ist parent von book <book> die beiden chapter sind children von book <chapter/> <chapter/> <section> <paragraph/> <paragraph/> </section> </chapter> </book> </library> Béla Varga Backbase Enterprise Framework 25
  • 27. XPath <library> library ist parent von book <book> die beiden chapter sind children von book <chapter/> <chapter/> die beiden chapter von book sind siblings (haben beide den gleichen <section> parent) <paragraph/> <paragraph/> </section> </chapter> </book> </library> Béla Varga Backbase Enterprise Framework 26
  • 28. XPath <library> library ist parent von book <book> die beiden chapter sind children von book <chapter/> <chapter/> die beiden chapter von book sind siblings (haben beide den gleichen <section> parent) <paragraph/> <paragraph/> library, book, und der zweite chapter sind ancestors von </section> section </chapter> </book> </library> Béla Varga Backbase Enterprise Framework 27
  • 29. XPath <library> library ist parent von book <book> die beiden chapter sind children von book <chapter/> <chapter/> die beiden chapter von book sind siblings (haben beide den gleichen <section> parent) <paragraph/> <paragraph/> library, book, und der zweite chapter sind ancestors von </section> section </chapter> die beiden chapter, die section, </book> und die beiden paragraphs sind descendants von book </library> Béla Varga Backbase Enterprise Framework 28
  • 30. XPath Notation / document root . current element .. parent of the current element /library/* all elements in /library section every section element that is child of the current element every section element in a chapter in /library/book/chapter/section every book in the library root: /element anywhere: //element current: element Béla Varga Backbase Enterprise Framework 29
  • 31. XPath Axis - Eine Achse ist ein Satz an Knoten relativ zu einem Knoten - A::B = selektiere B von der Achse A self::element parent::element ancestor::element descendant::element preceding-sibling::element following-sibling::element Béla Varga Backbase Enterprise Framework 30
  • 32. Backbase Element Backbase Explorer Béla Varga Backbase Enterprise Framework 31
  • 33. XInclude - Einbinden von externen XML Dateien <xi:include href="myWidgetDefinition.xml"/> <?xml version="1.0" encoding="utf-8"?> <d:tdl> ... </d:tdl> - Verweis wird durch den Inhalt des Dokuments ersetzt Bitte Reihenfolge beachten Béla Varga Backbase Enterprise Framework 32
  • 34. Core/DOM API - Commands - bb JavaScript Core API bb.construct() bb.evaluate() bb.callSuper() bb.instanceOf() - bb JavaScript DOM API oElement.getProperty() oElement.removeChild() oElement.addEventListener() - der offizielle Weg nach W3C ist nicht immer der einfachste - Vereinfachte Kommandos create, load, move, position Béla Varga Backbase Enterprise Framework 33
  • 35. Events - Eine Ereignis ist „etwas das zu einem best. Zeitpunkt passiert“ - Ereignisse haben keine Dauer - Ereignisse werden durch den Anwender oder durch die Anwendung ausgelöst - Backbase hat die W3C DOM Events implementiert Béla Varga Backbase Enterprise Framework 34
  • 36. Ereignis Arten - User Interface (DOM Level 3 UIEvent) focus, blur, resize, scroll, ... - Mouse Event (DOM Level 3 MouseEvent) click, mousedown, mouseover, ... - Model Changes (DOM Level 3 Mutation Events) DOMNodeInserted, DOMAttrModified ... - HTML Events (gehen auch ohne Backbase) load, select, submit ... - Custom Events (BTL oder eigene) mouseenter, mynewevent... Béla Varga Backbase Enterprise Framework 35
  • 37. onkeyup vs. onkeydown - onkeyup wird einmal gefeuert, onkeydown wird solang gefeuert bis die Taste gedrückt ist, deshalb onkeyup verwenden! Béla Varga Backbase Enterprise Framework 36
  • 38. Event-Fluss 1.) capturing phase - Absteigen zum Zielelement Das Ereignis steigt vom obersten Knoten (document) bis zum Zielelement des Ereignisses. Auf diesen Weg werden alle Handler ausgeführt, die für den Ereignistyp für die Capturing- Phase registiert sind bb.html.addEventListener(element,`focus`, handler, true) 2.) target phase - Zielelement erreicht Das Ereignis erreicht ein Ziel Element und löst alle zuständigen Handler aus. 3.) bubbling phase - Aufsteigen vom Zielelement Das Ereignis steigt im DOM Baum von einem Eltern Element zum nächsten, bis der document Element erreicht ist und löst unterwegs alle zuständigen Handler aus. Jedes Event hat Phase 1 und 2 aber nicht alle haben Phase 3! focus, blur, ... Béla Varga Backbase Enterprise Framework 37
  • 39. Event DOM API Methoden - Eventhandler/listener erstellen <d:handler event=`click` /> <d:handler event=`click` match=`.class` /> oElement.addEventListener(`click`,myFunction,false); - Eventhandler/listener löschen oElement.removeEventListener(`click`,myFunction,false); - Event auslösen oElement.fireEvent(oTarget,`click`); Béla Varga Backbase Enterprise Framework 38
  • 40. Event Handling - TDL Handler Tag <d:handler event=`click` /> - XEL Handler Tag <b:button> <e:handler event=`click` /> </b:button> - XEL Attribute <b:button e:onclick=`myMethod();` /> - DOM Event Listener oElement.addEventListener(); - HTML Event Handler (laufen ohne Backbase Engine) <div onclick=`myMethod()` /> Béla Varga Backbase Enterprise Framework 39
  • 41. Ereignisse steuern - Event-Bubbling verhindern Das Ereignis hat keine Bubbling Phase. bb.command.fireEvent(oElement,`click`, false); - Event-Fluss in der Phase 1 beenden Target und Bubbling Phase fallen aus. Das Ereignis erreicht nie sein Ziel Element. event.stopPropagation(); - Standardaktionen verhindern Browser führen standardmäßig Ereignisse aus ohne das eines definiert wurde. Beispiel: Link besitzt click-Ereignis. event.preventDefault(); bb.command.fireEvent(oElement,`click`, true, true); Béla Varga Backbase Enterprise Framework 40
  • 42. Events vs. Methods - Event Benachrichtung kann in abgeleiteten Klassen nicht überschrieben werden ich.habDurst! - Method Kommando kann in abgeleiteten Klassen überschrieben werden du.holMirMalWasZuTrinken! Béla Varga Backbase Enterprise Framework 41
  • 43. Server - Client Kommunikation - siehe Google Docs Béla Varga Backbase Enterprise Framework 42
  • 44. SMIL (smile) - Synchronized Multimedia Integration Language - W3C Auszeichnungssprache für multimediale Inhalte - Wird in Backbase für visuelle Effekte verwendet - BasicInlineTiming, RepeatTiming, TimeManipluations und BasicAnimation bereits integriert var oAnimationInfo = { attributeName: "height", attributeType:"CSS", dur: "1s", to: "250px", fill: "freeze" } bb.smil.animate(this, oAnimationInfo); Béla Varga Backbase Enterprise Framework 43
  • 45. Vielen Dank! Béla Varga netzzwerg [at] googlemail [dot] com
  • 46. Vielen Dank! Béla Varga netzzwerg [at] googlemail [dot] com
  • 47. Vielen Dank! Béla Varga netzzwerg [at] googlemail [dot] com