qooxdoo Beginner's Guide
上QQ阅读APP看书,第一时间看更新

qooxdoo framework features

qooxdoo is an entirely object-oriented framework based on JavaScript. This framework is properly organized on the basis of namespaces. It supports most of the modern browsers, provides utilities to generate documentation based on javadocs such as comments, and also supports themes and internationalization. In this section, you will learn about all these features.

Let's check all the features provided by the qooxdoo framework. This will improve your knowledge on qooxdoo and help you further understand the qooxdoo framework.

Language

  • The qooxdoo application runs in most of the modern web browsers, including:
    • Internet Explorer 6+
    • Firefox 2+
    • Opera 9+
    • Safari 3.0+
    • Chrome 2+
  • No plugins (ActiveX, Java, Flash, or Silverlight) are required. It is completely based on JavaScript.
  • Non-critical modifications of the native JavaScript objects to allow for easy integration with other libraries and custom code.
  • Cross-browser JavaScript 1.6 (string/array generics).

Object-orientation

  • Framework is fully class-based
  • Framework uses namespaces. It avoids the conflicts in global variables
  • Besides regular classes, it offers abstract, static, or singleton classes
  • Constructor and destructor support
  • Multiple access specifiers—public, protected, and private
  • Single inheritance and full polymorphism
  • Java-like interfaces
  • Ruby-like mixins
  • So-called dynamic properties, a very convenient and powerful way to have optimized setter and getter methods generated from simple configuration

Programming

  • Purely client-side JavaScript
  • No need to know HTML, DOM, or CSS
  • Complete support for event-based programming
  • Development of qooxdoo applications fully supported on all platforms; for example, Windows, Linux, all flavors of Unix, and Mac OS X
  • Quick start for easy evaluation of the framework without the need to install any software
  • Skeletons are pre-configured for full-featured custom applications
  • Many sample applications and examples
  • Designed for high performance
  • Framework has no issue of memory leak
  • Aids in developing memory-leak free user applications
  • Extensive logging capabilities (for example, different log appenders and Firebug support)
  • Straightforward debugging (for example, object introspection and benchmarking)
  • Browser history management, that is, browser back/forward button, bookmarks
  • Cookies
  • Generic JavaScript pretty printer/code formatter for unified code style

Internationalization

  • Built-in internationalization (i18n) and localization (l10n) support
  • Support for all languages and locales, at least on this planet
  • Based on the comprehensive Common Language Data Repository (CLDR)
  • Internally using the mature GNU gettext tools
  • Well-known translation file format (.po)
  • Support by professional, free translation tools (PO editors) on all platforms

API reference

  • Extended javadoc-like source code comments
  • Full API reference for both framework and custom applications
  • Online (http://api.qooxdoo.org/) and offline API viewer applications

Testing

  • Integrated unit testing framework (test runner)
  • Integrated functional testing framework (simulator)

Deployment

  • Generation of a self-contained and easily-deployable build version
  • Complexity of the build process hidden behind user-friendly commands
  • JavaScript compression (removal of whitespaces, and so on)
  • Automatic dependency resolution of JavaScript classes; no need for manual require() statements or tweaking a custom build
  • Automatic linking of JavaScript classes (JS linker)
  • Copying of required static resources like images or other external files into a self-contained build
  • String extraction (tremendous performance improvement for IE6)
  • Shortening and obfuscating local variables and/or private members
  • Optional browser-specific variant for each supported browser (For example, Firefox-only build)
  • Generation of build versions depending on user-defined variants, which allows for different products from the same code base
  • Removal of debug statements within the application code before deployment

Migration

  • Support for easy migration of custom applications from one framework release to another
  • Migration in the qooxdoo framework is painless as it is technically easy to carry out
  • Fully integrated into the regular build system
  • All non-ambiguous changes are done automatically for maximum convenience and to avoid manual find/replace errors
  • All ambiguous or semantic changes that require some developer decision are put into a comprehensive checklist

Alternative programming models

In addition to the JavaScript programming model, you can also develop qooxdoo applications using one of the following alternative programming models or development platforms. Some are not quite stable, some are not active, and some are pretty new. This book focuses only on the JavaScript programming model, which is the built-in development model of the qooxdoo framework.

The list of alternative programming models is growing. You can check the updated list at http://qooxdoo.org/documentation/general/development_platforms