Angular 2 was released in September 2016, so you may wonder why little has been posted in the DNN Ecosystem. We're still waiting for something - here's a status update.
Version-Status January 2017
Rundown of the current Versioning:
- Naming has changed: there is no more AngularJS/Angular1/Angular2 - from now on it's just called Angular
- Latest Release: Angular 2.4 (yes, already .4)
- Next large release: Angular 4 (yes, not V3 because of a version-number issue) due around March 2017 (today Beta 3 is out)
Note that the seemingly aggressiv version-numbering is because Angular has seriously adopted semantic versioning.
Angular Features: Stable & Fast
- Angular2 seems to be stable and production ready.
- The performance of Angular2 seems to be similar to React - which is a critical because that was a big issue in Angular1. There is little to prove this, but it seems that nobody is bothering to prove/disprove it.
- Ahead of Time compilation (which merges all parts of your app into a small, fast, precompiled JS) seems to be mature since about December 2016.
- Server-Side Angular Rendering seems to be mature since Dec 2016 as well.
Ecosystem-Status Januar 2017
Most important ecosystem components are still beta or going stable:
- RxJS - a core third-party component in Angular, has gone stable with V5
- Angular flex layout is still beta
- Angular Material 2 - a very common modern UI library, is still beta - part of the reason is the production workflow (see below)
- Kendo UIs Angular 2 components are still beta, but the final version will not need any more jQuery, massively slimming down the components
- etc.
Development Workflow: Beta
The Angular team is investing a lot (and I mean a huge lot) into streamlining developer productivity. This includes:
- coding-tools like Visual-Studio Code
- code-tools like TypeScript
- development-automation using Command-Line generators and WebPack
- pre-compilers, JIT compilers and server-side compilers
- ...and way more
BUT: most of this is still beta, so even though your Angular2 code today will work and run tomorrow, the way you set up your project is still likely to change quite a bit, until these tools/recommendations become official.
Why Wait?
There are a few things which are maturing progressively, which affect each other. Let's just look at 2-3 things which I picked up:
- The initial focus of Angular2 was a bit like .net core: a solid architecture, which will work in many scenarios for many years to come. The architecture is very solid, but this comes with a certain complexity (like .net core). The tools to manage this complexity are still being developed. The most important will be the Angular CLI (Command Line Interface).
- Angular2 used SystemJS instead of WebPack for managing dependencies and bundling. They didn't officially recommend it, but used it in all tutorials/demos. This seems to change now - and it looks like WebPack will the the official recommendation going forward. This has a strong impact on the dev-helper tools - so this is certainly causing some delays.
- Most add-ons and dev-tools are still waiting for finalizing certain aspects and decisions - like the AoT or WebPack vs. SystemJS, because once they finish certain parts, they want to support the feature for a long time - so they don't want to include soon-to-be-deprecated features in a stable release.
- The same applies to tutorials, movies, best-practices etc.: it's easy to create a tutorial which demonstrates a feature, but once you create a full tutorial-serios how to really work, this will be obsolete when SystemJS is replaced by WebPack.
So these are IMHO the main reasons why we're still seing delays across the board, from material-design to CLI-tooling to tutorials.
My Recommendation
I've been working with Angular 1.x for about 2 years now and I'm really keen on using Angular2+. As soon as possible I want to create tutorials, best-practices and data-services for 2sxc-apps and develop Apps using Angular2.
BUT right now I really recommend to wait a bit more, as the situation is very comparable to .net 4.5 and .net Core: Angular 1.5/1.6 is very mature, has a huge ecosystem and lots of people who know the tools, whereas Angular 2 is cooler and better, but still learning the ropes. I believe that Angular 4 (due in March) will resolve this. So I recommend to wait till then.
Love from Switzerland,
Daniel