JavaScriptMVC Features

I spent a lot of time the last few weeks arguing why jQuery needs the Enterprise, and why it needs JavaScriptMVC(part 2). But, I should have been explaining why YOU need JavaScriptMVC. So I put together a list of what JavaScriptMVC provides.

posted in javascriptmvc, Development on August 24, 2010 by Justin Meyer

I spent a lot of time the last few weeks arguing why jQuery needs the Enterprise, and why it needs JavaScriptMVC (part 2). But, I should have been explaining why YOU need JavaScriptMVC. So I put together a list of what JavaScriptMVC provides.

The JavaScriptMVC Framework is feature rich. It does everything you need in between jQuery and your project (with the exception of packaged UI widgets). The following is a rough list of the features of the framework’s major components followed by the features of the project as a whole:

Steal

- an independent code manager

Dependency Management

  • Load JavaScript, CSS, Less, CoffeeScript, and a variety of client-side templates.
  • Load individual files only once.
  • Can load relative to the current file.
  • Can load from other domains.

JS / CSS Concatenation and Compression

  • 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.

Logging

  • Log messages, but they will be removed in production build.

Code Generators

  • Generate an application skeleton..
  • Very easy to create your own generators.

Package Management

  • Download and install plugins from SVN or GIT repositories.
  • Installs dependencies.
  • Runs install scripts.
  • We maintain an official list of good plugins.

Code Cleaning

  • Runs http://jsbeautifier.org/ on your project’s code
  • Runs JSLint on your project’s code

FuncUnit

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

JavaScriptMVC Libraries

- a low to mid-level jQuery development toolset

Best Practices

  • Encourages logically separated, deterministic code
  • Service / Domain layer (Model)
  • Uniform client-side template interface supports jq-tmpl, EJS, JAML, Micro, Mustache (View)

Faster Development

Dom Utilities and jQuery extensions

Language Extensions

Custom Events

Superior Widget Factory (controller)

  • Auto-magic cleanup (unbind, undelegate, unsubscribe)
  • Organized methods and events
  • Shared methods and properties
  • Namespaces
  • Automatically extendable
  • Remove plugins without removing element
  • Object Oriented

DocumentJS

- an independent JavaScript documentation application

Feature Rich

  • 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

  • Can document any page’s JavaScript with no extra work
  • Extends JSDoc syntax
  • Corrects misspellings of directives (ie @codend instead of @codeend)
  • Adds undocumented JavaScript functionality because it understands JavaScript.
  • Customizable, flexible relationships
  • JavaScript objects can add documentation across files

JavaScriptMVC Framework as a Whole

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

Quality

  • Every component is tested and developed independently but also combined into an automated nightly test.
  • When we make fixes, it’s extremely easy to upgrade JavaScriptMVC.
  • JavaScriptMVC apps are lightweight. You only use only what you need, but combined and compressed, the MVC parts and their dependencies are only 15kb (compared to jQuery’s 70kb).
  • We’ve taken considerable care to fine tune the performance of nearly every part of JavaScriptMVC. It’s techniques are ‘fast-by-default’.

Scalable

  • 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.
  • JavaScriptMVC has been solving the challenges of enterprise jQuery development for years. (It was the first library to support comprehensive event delegation!) We have continually refined JavaScriptMVC’s API and features to make it as easy as possible learn and use.

Conclusion

Hopefully at least something in this list interests you! If not, well … I’m not interested in what you are doing.

To be sure, JavaScriptMVC has a TON of features. Often people interpret this as ‘too enterprisey’. But, a lot of care has gone into making it as easy to use each part as possible. We want you to fall into fall into the pit of success. When you need those features, they are there.

Finally, while possible to assemble your own framework and build great things, it will undoubtedly be:

  • More difficult to assemble.
  • Less likely to interoperate (there’s no extra work to document, clean, test, and build your app with JavaScriptMVC).
  • More error prone.
  • Harder to teach / get support.
  • Larger (repeat work between stand-alone components)

So PLEASE take a look at JavaScriptMVC and even a better look at its beta 3.0 release. Your spouse / girlfriend / pet will appreciate all the free time it gives you.

comments powered by Disqus
Contact Us
(312) 620-0386 | contact@bitovi.com
 or cancel