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