Backbase 4 RIA Development

Backbase 4 RIA Development
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create modular and extensible web applications with the Backbase Client Framework
  • Use XML-based UI components from the extensive Backbase UI library such as tabBox, grid, calendar, comboBox, and toolTip
  • Create your own UI components using the powerful object-oriented Tag Definition Language
  • Use powerful data-binding options to create data-driven applications with detailed data grid examples

Book Details

Language : English
Paperback : 488 pages [ 235mm x 191mm ]
Release Date : December 2009
ISBN : 1847199127
ISBN 13 : 9781847199126
Author(s) : Ghica van Emde Boas, Sergey Ilinsky
Topics and Technologies : All Books, Enterprise Products and Platforms, AJAX, Architecture & Analysis, Web Development

Table of Contents

Chapter 1: Hello Backbase!
Chapter 2: User Interface Development
Chapter 3: Writing the Application Logic
Chapter 4: Client-server Communication and Forms
Chapter 5: Data-bound Widgets
Chapter 6: More Dynamic Behavior
Chapter 7: Creating UI Components
Chapter 8: Widget Wrap-up
Chapter 9: Debugging, Optimization, and Deployment
Chapter 10: Framework Comparison
Chapter 11: The Square Web Application
  • Chapter 1: Hello Backbase!
    • What is Backbase?
      • What can Backbase do for me?
    • The Backbase Explorer
    • Setting up a web development environment
      • The web server and a server scripting language
      • The browser
      • Using an IDE
    • Download the Backbase framework
    • The Backbase page skeleton
    • "Hello Backbase" in four variations
      • Verifying the installation of the Backbase framework
      • "Hello World" using a Backbase balloon
        • The JavaScript balloon
        • The XEL balloon
      • Hello Server!
        • The page with the form
        • The PHP response
    • XML and namespaces
      • Why do we need XML namespaces?
      • Declaring XML namespaces
      • Use of namespaces with Backbase
    • A basic page layout
    • Summary
  • Chapter 2: User Interface Development
    • Squaring the circles of web applications
    • The Backbase Reference
    • UI markup languages
      • Where is the source code?
    • XHTML
    • The Backbase Tag Library
      • Backbase Tag Library widget overview
    • The BTL abstract elements
      • Abstract element inheritance structure
      • element
      • visualElement
      • positionElement
      • dimensionElement
      • cardStack and card
    • The layout widgets
      • Accordion
      • Box
      • deck
      • navBox
      • panelSet
      • tabBox
      • The BTL utility elements
      • codeHighlighter
      • label
      • populator
      • skinSettings
      • xhtml and xml
    • Styling techniques for GUI widgets
      • Using CSS
      • Skinning
        • The BTL skinSettings widget
      • Height problems
    • A BTL Exerciser
      • The application structure
      • index.html
      • app.xml
      • Tab panel content
      • The menu in each tab panel
    • Summary
  • Chapter 3: Writing the Application Logic
    • The application programming model
    • Overview of the Backbase APIs
      • The bb object
      • Low level APIs—the W3C DOM family
        • The Document Object Model
    • Events
      • DOM event flow and cancelable events
      • Registering event handlers
        • Using markup with an XEL handler element
        • Using markup with XEL handler attributes
        • Using JavaScript and the DOM events API
      • APIs relevant for dealing with events
        • Event types
        • BTL widget custom events
        • Custom event creation
    • Backbase utility functions
      • The bb object utility functions
      • Backbase Commands
    • The Backbase XML Execution Language (XEL)
      • XEL features
        • Variables in XEL
        • Conditional execution in XEL
        • Functions in XEL
        • Passing context
        • Using JavaScript in XEL
    • XPath
      • Evaluating attribute values
        • String mode
        • XPath mode
    • Commands to manipulate the DOM or elements
      • Manipulating elements
        • focus and blur
        • fireEvent
        • position
        • scrollTo
        • setText
        • show, hide, and showHide
        • sort
        • tile
        • transform
      • Manipulating the DOM
        • copy
        • create
        • destroy
        • move
    • Info and Notify BTL widgets
      • balloon
      • infoBox
      • loadingMessage
      • toolTip
    • A Backbase Command Exerciser
    • Summary
  • Chapter 4: Client-server Communication and Forms
    • AJAX
    • Asynchronous communication
      • The XMLHttpRequest object
      • The JSONRequest object
      • The load command
        • header
        • The JavaScript load command
    • Working with forms
      • The forms profiles
      • Form elements
        • The extended form element
        • The extended input element
        • fileInput
      • The abstract BTL form elements
        • focusableElement
        • dropDown
        • formField, formList, and rangeFormField
      • The BTL form widgets
        • calendar
        • checkBoxGroup
        • comboBox
        • listBox
        • slider
        • spinner
        • suggestBox
      • Validating input fields
        • Required fields
        • Data type validation
    • AJAX and architecture
      • Model-View-Controller
      • Implementing MVC on the server
        • The server controller
        • The server model
        • The server view
    • The C3D travel blog site
      • Requirements for the C3D site
      • Design
      • Data model
      • Page layout
        • Good use of IDs
      • Server application structure
        • The C3D controller
        • The C3D model
        • The C3D view
        • Login and logout
      • Add a trip
    • Summary
  • Chapter 5: Data-bound Widgets
    • Why is data binding important?
      • The server-side of data binding
    • Data-binding fundamentals
      • dataSource
        • Local data sources
        • Remote data sources
        • Static data sources
      • dataObserver
        • The dataUpdate method
    • Make an HTML element data bound
      • Creating the data source
      • Define the new widget
      • The dataUpdate method
      • Show the data-bound bulleted list
    • The data-bound widgets
      • dataGrid
      • Grid editing and fieldEditor
      • The eleven features of dataGrid
        • Common header menu
        • Header context menu
        • Data paging
        • Column drag-and-drop
        • Column freezing
        • One-click editing
        • Editing and focusing together
        • Instant editing
        • Collapsible info block
        • Form editing
        • Live scrolling
    • Continue the development of the C3D application
      • Adding a trip entry
      • Show trips and trip entries
    • Summary
  • Chapter 6: More Dynamic Behavior
    • Behaviors
      • Drag-and-drop
        • dragBase
        • drag
        • dragTarget
        • Basic dragging and dropping with widgets
        • Advanced dragging and dropping with widgets
      • Resize
        • Using the resize behavior
        • Resize custom events
    • Commands for the behaviors
      • addBehavior
      • removeBehavior
      • setBehavior
    • Broadcaster/observer
    • Animating the UI
      • SMIL animation
      • Adding animation to the C3D example application
    • Summary
  • Chapter 7: Creating UI Components
    • Component models and technologies
    • Introduction to the Tag Definition Language (TDL)
      • Widgets
      • The advantages of using TDL
        • Object-orientation
        • OO and TDL
        • OO and web applications
      • Model-View-Controller
      • Widget creation with TDL
        • Overview of the TDL elements
    • Simple widgets
      • Building a TDL widget definition
      • The template, attribute, and resource tags
        • Templates
        • Attributes
        • Resources
    • Widget event handling
      • The handler tag
        • Updatable yellow notes
    • Widgets as objects
      • Defining classes with TDL
        • Inheritance
        • Composition
        • The element tag
      • Properties
        • Property definition
        • Property getters
        • Property setters
        • A web lamp example
      • Methods
        • The argument tag
        • The body tag
        • Sliding thumbnails
      • Constructors and destructors
      • Composite widgets
        • Compose a pedestrian light
        • Order form building blocks
      • Inheritance
      • Yellow notes using inheritance
      • Interfaces
      • Extending BTL
    • Behaviors
      • Behavior example
    • Uses
    • The limits of creating UI components
      • TDL as a macro language
      • TDL as an object-oriented language
      • Squaring the circles
      • Namespaces
      • Conclusion
    • Summary
  • Chapter 8: Widget Wrap-up
    • Action and menu widgets
      • button
      • contextMenu
      • menuBar
      • menuPopUp
      • toolBar
      • pager
    • Data-bound menus
      • The dataSource for a menu
      • The menuActivate event
      • dataContextMenu
      • dataMenu
    • Windows and dialogs
      • window
      • windowArea
      • taskbar
      • modal
    • Multimedia widgets
      • applet
      • flash
    • An example with menus and windows
      • Is the sq:windowMenu widget useful?
    • Miscellaneous commands
      • trace
      • alert
      • bookmark
    • Summary
  • Chapter 9: Debugging, Optimization, and Deployment
    • Debugging
    • The Backbase debugger
      • Overview
      • The information/error bar
      • The debugger window
        • Console tab
        • The Model and View tabs
        • TDL tab
        • Network tab
        • Reports tab
        • Preferences tab
        • Help tab
    • Application optimization
      • Optimizing content
        • Making fewer HTTP requests
        • Making AJAX cacheable
        • Post- or preloading components
        • Reducing the number of DOM elements
      • Optimizing the server
        • Compression
        • Flushing the buffer early
        • Using GET for AJAX requests
      • Optimizing cookies
      • Optimizing JavaScript and CSS
        • Placing JavaScript code at the end of the page and CSS at the top
        • Minify JavaScript and CSS
        • Removing duplicate scripts
        • Minimizing DOM access
        • Developing smart event handlers
      • Optimizing images
    • The TDL Optimizer
      • Creating a configuration file for the optimizer
      • Running the TDL Optimizer
      • Deploying the optimized bindings
    • Deployment on a server
      • Install
      • Installation in a Java environment
      • Defining alias locations
    • Summary
  • Chapter 10: Framework Comparison
    • The landscape of client-side technologies
      • Server-side and client-side
      • Client-side libraries and frameworks
      • Flash, Silverlight, and JavaScript-based frameworks
      • Client-side GUI framework and application framework
    • Backbase and other client-side GUI frameworks
      • Programming model
      • Widgets
      • Component model
      • Data binding
      • Standards support
      • Internationalization
      • Performance
      • Long-term viability
      • Conclusion
    • An integration example
    • AJAX toolkit reference
      • ASP.NET AJAX
      • Bindows
      • Cappuccino
      • Ext JS
      • The Dojo toolkit
      • Google Web Toolkit
      • Javeline
      • jQuery
      • MooTools
      • Prototype and
        • Prototype
      • PureMVC
      • qooxdoo
      • SproutCore
      • The Yahoo User Interface (YUI) library
      • ZK
    • Summary
  • Chapter 11: The Square Web Application
    • What is a square web application?
      • No global JavaScript functions
      • Make widgets data bound
      • Do not generate HTML at the server
      • Send only XML data from server to client
      • Make the layout modular
      • Use MVC throughout
      • The client is the view
      • Place the controller at the server
      • No business logic at the client
  • Complete the C3D example
    • C3D: make it work
      • The photo upload form
    • C3D: make it right
    • C3D: make it fast
      • Initial page loading
      • Optimizing client runtime processing
      • Server-side issues
  • Usability aspects
    • Legacy integration
    • Progressive enhancement
    • Internationalization and localization
    • Accessibility
  • What will the future bring?
  • A square puzzle
  • Summary

Ghica van Emde Boas

Ghica van Emde Boas has worked for IBM in the Netherlands for 30 years: as relational database developer, as IT Architect, and as a Java developer involved with the largest Java framework ever written, the IBM SanFrancisco Framework. She has been taking part in the development of object-oriented methodologies within IBM. She taught these at IBM's Object Technology University in Belgium and the USA. Ghica participated in writing two IBM red books and she has published two articles, one in the IBM Journal of Research and Development, and one in the IBM Systems Journal.

She has co-organized several workshops on Generative Model Transformations at OOPSLA (Object Oriented Programming Languages and Applications), the conference where all new development methodologies were first introduced during the last 25 years.

Ghica is now an independent consultant specializing in PHP, MySQL, and AJAX technologies. She helped write the Client Framework documentation for Backbase. She has written two books in Dutch about PHP and MySQL, for Pearson Education and she has contributed considerably to the Dutch translation of Foundations of AJAX (Asleson, Schutta, for Apress).

Sergey Ilinsky

Sergey Ilinsky is a senior UI engineer at Nedstat BV. He has worked for Backbase for 3 years, evangelizing open-standards based software development, and engineering and developing core parts of the Backbase Client Framework.

Having been heavily involved with client-side development since 2003 he became an expert in many web technology standards such as DOM, XBL2, SVG, HTML, CSS and JavaScript, as well as in proprietary ones such as HTC, VML, XBL or XUL. He can frequently be found on AJAX- or Client-side technology-related forums or he can be met at international conferences where he occasionally gives talks.

Sergey is nowadays busy with his new open-source project: the JavaScript GUI framework "Ample SDK", where he tries to put many great browser-based application development practices into one easy-to-use software development platform.

Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.

Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Backbase 4 RIA Development +    Oracle Essbase 9 Implementation Guide =
50% Off
the second eBook
Price for both: $42.00

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • The benefits of using an XML-based user interface definition
  • An overview of all Backbase libraries, with examples
  • Use of comprehensive sample applications utilizing the Backbase UI libraries
  • How to develop effective client-server (AJAX) communication in an MVC-based client-server architecture
  • What data binding is, what is available in the Backbase framework, and how to use it
  • Performance and deployment tips

In Detail

Backbase is a very powerful and complex JavaScript library, with many user interface components to help make web development easier. It allows the development of Rich Internet Applications (RIA) that run within all major browsers but its powers and complexity mean that the choice of component can be overwhelming. Understanding when and how to use the right component might not always be straightforward. This book makes that easier.

This is a practical book that teaches you how to use the Backbase Client Framework effectively, with a complete overview and many examples. A core developer of the framework puts the technologies used into a wider perspective of existing web standards and a seasoned software architect explains why XML-based UI definition produces better web applications.

The transparent use of AJAX technologies, for example to submit forms, or to retrieve updates for data grids, can be taken for granted with the Backbase framework. Packed with examples, the book shows you how to get the most from the library of UI components, and then extend the library with its own custom language. With this book in hand, it is easy to enable AJAX within your web application. You will be able to use the Backbase framework effectively, from basic applications to complex, custom-defined UI components.

This book contains a complete overview of all the UI libraries available within the Backbase framework and shows examples for each element described.

The Backbase framework offers an innovative Tag Definition Language (TDL), which allows developers to create new UI components that can be used as XML elements, in the same way as using the built-in GUI library. Using TDL brings considerable development advantages, and this book explains how.

Significant attention is also given to architectural aspects of designing a web-application, showing sample applications using a model-view-controller approach.


This is a practical book, where every example is tested and all source code is available with the book. Each chapter ends with work on a sample application using the new things learned. At the end of the book there is a complete, usable Travel Blog application.

Who this book is for

This book is for web developers who want to develop applications using the Backbase Client Framework. It may also be interesting for web developers and web application architects who want to know more about XML-based web application architectures.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software