Privacy Policy and Cookies

By continuing to use our site, you agree to our Privacy Policy and our use of cookies to understand how you use our site, and to improve your experience. Learn More.
I Agree.


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 Ajax 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 Ajax 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 Ajax 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


  • 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 Ajax operation that encounters session timeout
  • User may log back in and original request is retried automatically (no data loss) (docs)

Visual Builder [u]

  • screen building tool intended for functional design (docs)
  • zero-install, SmartClient application that runs in the browser
  • load, save and share screens, using Visual Builder 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


  • 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 Ajax: proven, complete, flexible and easy. SmartClient can radically accelerate your development of Ajax 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.