aurajs / aura

A scalable, event-driven JavaScript architecture for developing component-based applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docs: Where does Aura fit into the MV* framework workflow?

addyosmani opened this issue · comments

Soo, we get asked this question regularly when speaking to devs and feel we should do a good job of documenting a succinct answer to it.

This thread is to capture the reasons an MV* framework user should use us.

  • Aura is a glue layer, making it easy to tie together widgets or blocks of functionality developed independently into a working application - imagine creating an Instagram app by re-using the commenting, login, sharing widgets you've used on other projects.
  • Supports a widget-source, meaning you can specify end-points for easily pulling down widgets using data-attributes. Minimal JavaScript for more capabilities.
  • It encourages decoupling by way of treating each block of UI on the page as a widget
  • It makes it trivial to abstract away utility libraries you are using (templating, DOM manipulation) so that you can swap them out for alternatives at any time without a great deal of effort
  • The web platform is moving towards using scoped styles and shadow DOM for keeping parts of your page safe from third-party content that might affect it. Aura does the same for communications by introducing per-widget sandboxes for your events
  • It provides an advanced Pub/Sub event bus for application and widget-level communications, useful whether your MVC framework of choice supports this or not
  • First class support for Bower as a package manager
  • Tooling for scaffolding out new widgets without having to write as much boilerplate
  • Can be used with your MVC framework of choice - we're just there as a helper.
  • First-class support for the Hull.io platform. If you don't want to create a widget yourself, you can easily use them as a widget-source and create apps in less time.

Feel free to improve on or add to this list.

cc @sbellity @atesgoral @dustinboston @pyramation @sindresorhus etc :)

Hi Addy,

I'm currently evaluating various Javascript frameworks for a multi-spa enterprise scale web app. I quite like the combination of Backbone and Aura, and being barebones I can see how Backbone fits nicely into the Aura architecture.

However I'm now looking into AngularJS and at first glance it seems to provide much of the functionality outlined above. Would it make much sense to wrap Aura around it as another layer of abstraction, or are they competing architectures?

Hi @brettpostin they are definitely not competing architectures.
Having widgets made using alternative frameworks is something we envisioned and wanted to try.
I am not familiar enough with Angular, but I would love to see a proof of concept :)

where to create this var app = new Aura(); instance ?

in any .js file in your project.