Features

Unique features of the SmartClient platform

This is a partial list of major features that are rare or are unique to SmartClient (marked [u]). SmartClient also has several systemic advantages that cut across the entire product.

Intelligent Data Managers (the "M" in HTML5 MVC) [u]

  • data caching allows reuse of data in multiple components without server contact (example)
  • data paging and load on demand support for large datasets (example)
  • automatically switch to client-side sorting if search results fit in cache
  • automatically swtich to client-side filtering if search results fit in cache
  • automatically integrates updates into client cache (example)
  • customizeable data managers can be leveraged by custom components

Standardized Server Contact (the "C" in HTML5 MVC) [u]

  • Standard, data-provider independant API for components to load and save data
    • grid load, tree load, search form, combobox filter, databound select -> "fetch"
    • edit record, grid inline edit, tree drag reparent -> "update"
    • edit new record, create new row, drag copy -> "create"
  • mapping standard API to a data provider allows all components to use that data provider
  • create components and screens that can be used, unchanged, with any DataSource (example)
  • data providers can be swapped out with zero change to application
  • built-in support for WSDL and REST (XML or JSON) allows integration with any server
  • built-in SQL and Java Beans support via SmartClient Server

Shared Metadata Model (the "V" in HTML5 MVC) [u]

  • forms, grids, trees, detail views share a single metadata model ("DataSource")
  • fields, titles, editability, validation and other metadata reusable across components
  • field by field overlay allows both shared metadata and per-screen customization (example) (docs)
  • components understand and navigate relations between objects (master-detail) (docs)
  • schema chaining to model inheritance, create customizeable and verticalized applications (docs)
  • extensible type system allows new basic field types (example)

SmartClient Server

  • client and server-side validation based on single declaration (DataSource) [u]
  • queuing and batching of operations to enable multiple CRUD operations in one HTTP turnaround [u] (docs)
  • bidirectionl Java <-> JavaScript type-safe translation
  • bidirectionl XPath binding to Java objects [u] (docs)
  • automatic compression for data and content
  • on the fly JavaScript stripping, combining, obfuscation [u] (docs)
  • automatic fallback protocols (eg iframes) for older browsers / browsers with strict security settings [u]
  • SQL table generation / data import for rapid prototyping

True Browser Insulation [u]

  • Fully shielded from cross-browser testing and debugging, based on 5 key pillars
  • See discussion under Advantages

Documentation

  • searchable, online documentation viewer with inline examples makes finding answers easier (example)
  • over 4x the documentation of any competing framework [u]

Advanced Skinning Features

Background Download [u]

  • pre-load SmartClient while user views / interacts with plain HTML pages (docs)
  • hides download time during login process / splash page so that user perceives instant loading
  • for more significant to user experience than relative framework download size

Fluid Form Layouts

  • space filling layouts make maximum use of space (example)
  • create space-filling layouts that work even if some fields are not shown for current user [u]

Direct WSDL binding

  • direct integration with WSDL web services without an intervening server
  • automatic SOAP message formation from JavaScript data (eg from HTML forms)
  • automatic XML namespace handling

Metadata Import [u]

  • import existing metadata from XML Schema, Java Beans, other metadata sources (example)
  • rich import captures validation rules, enumerated types, pattern restrictions, inheritance
  • use schema chaining to layer presentation metadata over model metadata (example)

Relogin [u]

  • Special handling for a background HTML5 operation that encounters session timeout
  • User may log back in and original request is retried automatically (no data loss) (docs)

Reify Visual Designer [u]

  • screen building tool intended for functional design (docs)
  • zero-install, SmartClient application that runs in the browser
  • load, save and share screens, using Reify Visual Designer as a central design hub for building mockups and "wireframes"
  • customize for your organization: custom components, custom properties, custom skins, custom events, custom actions
  • clean code generation: prototype can be refined and extended into final application, instead of scrapping prototype and starting over
  • wizards for binding to RSS, REST, SQL, SalesForce, and Kapow Robots [u]

Data cube / OLAP support [u] (example)

  • multi-dimensional data model navigation
  • dual axis hierarchical dimensions, drill down, drill up
  • drag and drop dimension rearrangment
  • bi-directional cube-based load-on-demand
  • charting engine integration

Accessibility

  • UI components fully keyboard navigable out of the box
  • automatic tab order management handles hardest cases [u]
    • modality and layered modality (modal dialog on modal dialog) (example)
    • lazily created and lazily loaded UI components
    • navigating data sets with data paging (example)
    • dynamic reordering of components (example)
  • screen reader support via WAI (Web Accessability Institute) standards

History management

  • Back/forward navigation and bookmarkability
  • Flexibly tie history navigation to any application action

"Query by Example": Inline search row in grids [u] (example)

  • maximally compact search interface
  • enabled by a simple property, deeply customizeable

Plugin Management (Applets, Flash, ActiveX controls) [u]

  • use plugins inside SmartClient layouts and windows, resize them, drag them, show and hide them
  • drag and drop over plugins without burnthrough, jitter or hung drags
  • drop onto plugins and receive normal drop events

Server push

  • high volume HTTP streaming
  • JMS integration

JavaScript class system

  • create and extend classes within the browser
  • real Super(), handling recursion and inter-recursion cases [u]

Incremental rendering in grids

  • Only currently visible rows are rendered
  • Allows data paging via a scrollbar instead of link-based paging
  • Allow browsing and editing data without arbitrary page breaks separating rows
  • Necessary for large trees (where link-based paging doesn't work)
  • Better performance in grids showing large numbers of rows
  • Incremental rendering and data paging works with variable-height auto-sizing rows [u]

Bi-directional incremental rendering [u]

  • Necessary for grids with many columns
  • Necessary for data cubes / OLAP navigation (example)

Get started today!

SmartClient is real, enterprise-grade HTML5: proven, complete, flexible and easy. SmartClient can radically accelerate your development of HTML5 applications and help you deliver a world-class user experience. Explore SmartClient or download the SDK to get started with SmartClient today.

This is intended for a technical audience. If any of these feature descriptions are unclear, please ask about them on the public forums.