Skip to content

legalbox/lb_js_scalableApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Scalable JavaScript Application framework,
http://legalbox.github.com/lb_js_scalableApp/
  by Legalbox, Paris

LANGUAGES

  JavaScript, (X)HTML, CSS

DESCRIPTION

  The Scalable JavaScript Application framework is a client-side library
  developed by Legalbox to create modular Web applications. It is based on
  the Scalable JavaScript Application Architecture [1] by Nicholas Zakas.

FIRST STEPS

  The design of the framework is described in Design Patterns for Scalable
  JavaScript Application by Legalbox [2], which you can find in the doc folder
  of this project.

  After installing the required software (see the requirements section below),
  run Apache Ant in the build folder to generate the API documentation and the
  combined/minified script for deployment.

  For debugging, you may use another version of the script which contains the
  whole code in a single file including long identifiers, indentation and
  comments: build/out/js/lb-full.js (5 times bigger).

  The HTML documentation of the Application Programming Interface is generated
  in the folder build/out/doc. The script generated for deployment is located
  at build/out/js/lb-min.js.

  After understanding the underlying principles [1] and reading the design
  document [2], you should start digging the generated HTML API, starting with
  the Sandbox build/out/doc/files/lb-core-Sandbox-js.html and the Core
  Application build/out/doc/files/lb-core-application-js.html

  For the purpose of Semantic Versioning [3], the public API of this library
  comprises all modules and methods in the lb.core namespace. The details of
  the modules in lb.base, a layer for cross-browser compatibility, are
  implementation specific and may vary from version to version.

REFERENCES

  [1] Scalable JavaScript Application Architecture, by Nicholas Zakas
  http://www.slideshare.net/nzakas/scalable-javascript-application-architecture

  [2] Design Patterns for Scalable JavaScript Application by Legalbox
  http://legalbox.github.com/lb_js_scalableApp/doc/javascript-application-design-patterns.pdf

  [3] Semantic Versioning
  http://semver.org

  [4] HTML API of The Scalable JavaScript Application framework (latest stable)
  http://legalbox.github.com/lb_js_scalableApp/build/out/doc/

REQUIREMENTS

  The following software is required for the build process which generates the
  API documentation, checks the syntax of source files and produces a combined
  and minified version of the library for deployment. The versions that we use
  in our development environment at Legalbox are indicated in parenthesis.

  * Apache Ant (1.8.0)
  http://ant.apache.org/

  * Java JDK (OpenJDK 1.6.0 on Linux, Sun JDK 1.6.0 on Windows)
  http://openjdk.java.net/
  http://java.sun.com/javase/downloads/index.jsp

  * perl (5.10.0 on Linux, 5.10.1 with ActivePerl on Windows)
  http://www.perl.org/
  http://www.activestate.com/activeperl

  * OpenOffice.org Writer (3.2.0) for the design document
  http://www.openoffice.org/

AUTHORS

  Eric Bréchemier <contact@legalbox.com>
  Marc Delhommeau <marc.delhommeau@legalbox.com>

COPYRIGHT

  Legalbox SA (c) 2010-2011, All Rights Reserved.
  http://www.legalbox.com

LICENSE

  BSD License
  http://creativecommons.org/licenses/BSD/

INCLUDED SOFTWARE

  * Closure Library by Google
    http://code.google.com/closure/library
    Licensed under the Apache License, Version 2.0
    http://www.apache.org/licenses/LICENSE-2.0
    Parts of the library, in src/closure and test/closure,
    with modifications by Legalbox under the BSD License.

  * bezen.org JavaScript library CC-BY Eric Bréchemier
    http://bezen.org/javascript/
    Licensed under a Creative Commons Attribution license
    http://creativecommons.org/licenses/by/3.0/
    in build/build.xml, test/bezen.org, test/style and some unit tests in test

  * Natural Docs by Greg Valure
    http://naturaldocs.org/
    Licensed under the GNU General Public License
    http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
    in build/lib/naturaldocs

  * JSLint by Douglas Crockford
    http://jslint.com/
    Licensed under a modified MIT License
    http://www.opensource.org/licenses/mit-license
    adding "The Software shall be used for Good, not Evil."
    in build/lib/jslint

  * jslint4java by Dominic Mitchell
    http://code.google.com/p/jslint4java/
    Licensed under a New BSD License
    http://www.opensource.org/licenses/bsd-license.php
    in build/lib/jslint4java

    Includes:

      o JCommander by Cédric Beust
        http://jcommander.org/
        Licensed under the Apache License, Version 2.0
        http://www.apache.org/licenses/LICENSE-2.0

      o Rhino by Mozilla
        http://www.mozilla.org/rhino/
        Licensed under Mozilla Public License
        http://www.mozilla.org/MPL/

      o JSLint by Douglas Crockford
        http://jslint.com/
        Licensed under a modified MIT License
        http://www.opensource.org/licenses/mit-license
        adding "The Software shall be used for Good, not Evil."

  * RequireJS by James Burke
    http://requirejs.org/
    Licensed under a New BSD License or MIT License
    https://github.com/jrburke/requirejs/blob/master/LICENSE
    in build/lib/requirejs

    Includes:

      o Rhino by Mozilla
        http://www.mozilla.org/rhino/
        Licensed under Mozilla Public License
        http://www.mozilla.org/MPL/

  * Yahoo! YUI Compressor by Julien Lecompte
    http://developer.yahoo.com/yui/compressor/
    Licensed under a BSD License or MIT License
    in build/lib/yuicompressor

    Includes:

      o Rhino by Mozilla
        http://www.mozilla.org/rhino/
        Licensed under Mozilla Public License
        http://www.mozilla.org/MPL/

      o JArgs by Steve Purcell, maintainer Ewan Mellor,
        http://jargs.sourceforge.net/
        Licensed under a BSD License
        http://github.com/purcell/jargs/blob/master/LICENCE

HISTORY

  2010-06-03, Public Release on GitHub
  2010-06-04, v1.0.0, Introduction of Semantic Versioning [3]
  2010-06-10, v1.0.1, Minor fix: replaced Combiner with concat
  2010-06-11, v1.1.0, Major fixes in history manager and local navigation
  2010-06-15, v1.1.1, Minor additions in base DOM Listener
  2010-06-18, v1.2.0, onHashChange listener can now be removed or replaced
  2010-06-22, v1.2.1, fixes and updates in Google Closure (base,array,debug)
  2010-07-27, v1.2.2, Sandbox is now using factory to create/destroy listeners
  2010-08-09, v1.2.3, more lenient destroyEvent() now ignores custom events
  2010-08-12, v1.2.4, added initElement() extension point for custom factories
  2010-09-03, v1.2.5, Bug fix: added content-type declaration in AJAX calls
  2010-09-15, v1.2.6, Enhancement: disabled debug logs (too noisy in XHR)
  2010-09-22, v1.3.0, Added clearTimeout and getTimestamp in sandbox.utils API
  2010-10-26, v1.4.0, Added confirm method in sandbox.utils API
  2010-12-20, v1.4.1, Refactored base i18n API: simpler yet powerful
  2010-12-20, v1.4.2, Bug fix: language code comparison is now case-insensitive
  2011-01-05, v1.5.0, Added support for internationalization (i18n)
  2011-01-07, v1.5.1, Refactoring: moved filterHtml code to base i18n templates
  2011-01-13, v1.5.2, Enhanced i18n: language properties fallback in templates
  2011-01-24, v1.5.3, Enhancement: catch and go on when a module fails to start
  2011-01-24, v1.5.4, Enhancement: added explicit string conversion for Module
  2011-01-24, v1.5.5, Enhancement: log errors from filters in topDownParsing()
  2011-01-24, v1.5.6, Bug fix: replaceParams only sets nodeValue if different
  2011-03-29, v1.5.7, Fixed replacement of parameters in src and href in IE7
  2011-04-08, v1.5.8, Parameter replacement in getString() is now recursive
  2011-04-12, v1.6.0, Added has() and is() methods to Sandbox utils API
  2011-04-20, v1.6.1, Avoid type coercion in module definition: override
  2011-04-22, v1.6.2, Fixed issue in  build process on Windows (Cygwin/MinGW)
  2011-04-26, v1.7.0, Modular Sandbox API using Sandbox Builder and Plug-ins
  2011-05-02, v1.7.1, Fixed build: removed duplicate script in combine task
  2011-05-04, v1.7.2, Enhancement: return null when function fails in getString
  2011-05-06, v1.7.3, Enhancement: speed up build using jslint4java
  2011-06-03, v1.7.4, Upgraded Closure Library to add support for IE9
  2011-06-06, v1.7.5, Removed Combiner tool, cleaned-up build script
  2011-06-07, v1.7.6, Moved Ant macros to a separate file to facilitate reuse
  2011-07-08, v1.8.0, Now using RequireJS to manage module dependencies
  2011-07-12, v1.8.1, Upgraded jslint4java and JSLint, updated Ant macro
  2011-XX-XX, v1.9.0, ROADMAP: add foreach(), map(), reduce() in array API
  2011-XX-XX, v1.10.0, ROADMAP: add animate() method to CSS API of Sandbox

About

The Scalable JavaScript Application framework, by Legal Box, Paris

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published