- an independent code manager
- Load individual files only once.
- Can load relative to the current file.
- Can load from other domains.
- Works with any application, even those not using the dependency management solution.
- Configurable compressors (defaults to google closure).
- Compresses Less and CoffeeScript into a production build.
- Pre-processes, compresses and packages a variety of client-side templates.
- Expandable architecture makes it easy to add other resources.
- Can conditionally remove chunks of code from production build.
- Build standalone jQuery plugins.
- Log messages, but they will be removed in production build.
- Generate an application skeleton..
- Very easy to create your own generators.
- Download and install plugins from SVN or GIT repositories.
- Installs dependencies.
- Runs install scripts.
- We maintain an official list of good plugins.
- Runs http://jsbeautifier.org/ on your project’s code
- Runs JSLint on your project’s code
- an independent web testing framework
Comprehensive Functional Testing
- Test clicking, typing, moving the mouse, and drag drop.
- Follow the user between pages
- High fidelity event playback
- Multi-browser and operating system support.
- Automated and interpretable with Continuous Integration solutions
- Email results to gmail users plugin.
Easy Functional Testing
- Write and debug tests with only the browser.
- Simple, chain-able api that parallels jQuery.
- Upcoming “recorder” app.
- a low to mid-level jQuery development toolset
- Encourages logically separated, deterministic code
- Service / Domain layer (Model)
- Uniform client-side template interface supports jq-tmpl, EJS, JAML, Micro, Mustache (View)
Dom Utilities and jQuery extensions
- Efficient compareDocumentPosition
- Delegate with the open child selector.
- Set and animate innerWidth, innerHeight, outerWidth, outerHeight.
- Quickly get multiplecurrent css properties on an element
- String helpers (including a working regexp split)
- Vector math
- JSON utilities+
- A simple, powerful, lightweight class system.
- Default events enable powerful Event Oriented Architectures.
- Bind to destroyed event for proper widget cleanup.
- Delegatable, highly customizable drag-drop events
- Hashchange event for browser history*
- Delegatable, configurable, hover events
- Normalized, cross-browser resize events
Superior Widget Factory (controller)
- Auto-magic cleanup (unbind, undelegate, unsubscribe)
- Organized methods and events
- Shared methods and properties
- Automatically extendable
- Remove plugins without removing element
- Object Oriented
- Inline demos with source and HTML panels
- Taggable documentation
- Rapid, auto-suggest search
- Savable favorites
- Test results pages
- Disqus comments (coming soon)
Easy and Flexible
- Extends JSDoc syntax
- Corrects misspellings of directives (ie @codend instead of @codeend)
- Customizable, flexible relationships
- an integrated collection of best practices for developing jQuery applications
Ease of Development
- Everything you should be doing requires no extra work. When you create an application, it’s ready to test, document, compress, clean, and share.
- Provides a standard, modular, file structure to build everything from the smallest plugin to the largest application.
- Almost everything is extremely well documented, with code examples, demos, and write-ups at bitovi.com. With the 3.0 release, everything will be documented.
- We are here to help. I don’t think there is an un-answered question on our forum. I don’t think a question has been left un-answered for more than a day.
- Every component is tested and developed independently but also combined into an automated nightly test.
- Everything works standalone. You can use controller, steal, FuncUnit, the compare plugin, everything, by itself. If your app grows to need other parts, we’ve got you covered.
Hopefully at least something in this list interests you! If not, well … I’m not interested in what you are doing.
Finally, while possible to assemble your own framework and build great things, it will undoubtedly be:
- More difficult to assemble.
- More error prone.
- Harder to teach / get support.
- Larger (repeat work between stand-alone components)