Aurelia 1.0 was released on the 27th of July 2016. One and a half year earlier, Rob Eisenberg left the Angular development team. For those unfamiliar with his work, Rob Eisenberg is the creator of Aurelia, but also Durandal and Caliburn.Micro.

On his departure, Rob said that the general direction of Angular 2.0 started shifting in a critically different direction, especially in the previous several months. Eisenberg found himself at odds with some of the aspects of the design of the platform. In his own words, he “tried to keep an open mind and explore the various possibilities”.

Needless to say, his attempt wasn’t successful. He added that he simply wasn’t satisfied with how things were going; the differences were simple too many and irreconcilable. Eisenberg finished his statement by saying that the developed platform wasn’t the one that he agreed to work on. He went even further, stating that he doesn’t even believe that it is the best solution for the Durandal community.

In case you aren’t familiar with it, Aurelia is a collection of Javascript modules that allow you to create web, mobile or desktop applications from open source while complying with web standards.

This framework not only allows us to create incredible user interfaces, it enables us to do it in easily scalable, maintainable and scalable way.

What is Aurelia?

Basically, in Aurelia, we can use the new cool stuff in JavaScript! The architecture is not monolithic, it is instead a collection of more functionally oriented modules that help us build simple web applications. The Aurelia feature-oriented modules include plugins, templating, composition, routing, testing, dependency injection, data binding, and eventing.

All these modules enable us to do everything we need to build a modern web application. This is also one of its main advantages. The modularity, the components and small functions of the Aurelia JavaScript framework distinguish it from other frameworks that use monolithic access for complete components. Each feature-oriented module follows its own story and has a role within that story.

Illustration of the Aurelia framework.

MVVM (Model View ViewModel) Architecture

The three main elements in this Architecture, which is based mainly on the MVC pattern are View, ViewModel, and Model.

  • The View is simply what the client sees on their screen.
  • The ViewModel contains the data and information that will be displayed in the View
  • The Model contains all declared parameters and their client-side data
Illustrational infographic of the Model View View model Architecture in Aurelia.

Why building with Aurelia is much easier?

  • Great documentation
  • Strong tooling
  • Fully covered testing support
  • Aurelia applications are designed to be: Maintainable, Testable and Extensible
  • Easily integrate with other technology
  • Very customizable and has been designed with conventions without writing a lot of configuration code.

The good sides of Aurelia

  • Components - are building blocks like HTML views and JavaScript view-models
  • Web Standards - cleanest and modern frameworks, focused on web standards
  • Extensible - easy way to integrate with the other needed tools
  • Broad Language Support - allows multiple language support
  • Commercial Support - commercial and enterprise support
  • License - open source and licensed under MIT license

Architecture & Structure

build - root directory for build tool configuration

dist - where are stored the built version in some env.

images - where the all images are stored

task - where the automated tasks files are stored

node-modules - where the plugins are stored

src -  source folder, contains; app.html, app.js, and main.js, environment.js ..

components -  where stored the application components like headers, navigation, footer etc

services - folder with all service classes who contain the API calls

resources - folder with resources files like attributes, values - converters, binding - behaviors, elements etc.

styles - where the stylesheets files stored

test - where located the configurations of tests

The structure of Aurelia Framework.

Aurelia code is written in future JavaScript, the framework uses modern web development tools and best practices. It supports Web Components, despite the fact that their browser support is still missing. If you want to write a Single Page Application and are looking for a suitable framework, then Aurelia is a suitable solution.

If you are experienced in modern web development you will manage to do a lot of work in a small amount of time with Aurelia. Not to mention that you will be able to write fresh and clean JavaScript and always rely on good support.