Upgrading Angular
Chris Nicola
CTO @ WealthBar
Angular2 Upgrade
• Much better architecture/design
compared with 1.x
• Performance improvements
• Still “Angular-like”, to keep much the same
code organization
Why are we doing this?‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
What about React?
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
Would I pick Angular Again?
‣ Why A2?
‣ Experience
‣ ngForward
‣ ngUpgrade
‣ The Good
‣ The Bad
‣ Preparation
‣ Patterns
‣ The Future…
• Converted AngularD3 1.x -> 2.x (aka A2D3)
• Tested out ngForward and ngUpgrade
• Upgraded existing 1.x code using
ngUpgrade
• Proof of concept mobile apps with Ionic 2
and NativeScript
Experience So Far…
‣ Why A2?
‣ Experience
‣ ngForward
‣ ngUpgrade
‣ The Good
‣ The Bad
‣ Preparation
‣ Patterns
‣ The Future…
• Write Angular 1.x components with 2.x
syntax
• If you don’t want to include Angular 2.x yet
• Templates and core directives are still 1.x
syntax
• Personally I do not find this approach useful
‣ Why A2?
‣ Experience
‣ ngForward
‣ ngUpgrade
‣ The Good
‣ The Bad
‣ Preparation
‣ Patterns
‣ The Future…
• Upgrade Angular 1.x directives, components and
services to use with Angular 2.x
• Downgrade Angular 2.x directives, components and
services to use with Angular 1.x
• Does not work with Filters/Pipes (easy to
workaround)
• 100% Angular 2.x support
• My recommended approach to upgrading
‣ Why A2?
‣ Experience
‣ ngForward
‣ ngUpgrade
‣ The Good
‣ The Bad
‣ Preparation
‣ Patterns
‣ The Future…
• Glad to be rid of `ctrl.`,`$scope` and even
Controllers
• Reactive Programming with RxJS
• LifeCycle events
• One directional data by default
• ngUpgrade works surprisingly well
‣ Why A2?
‣ Experience
‣ ngForward
‣ ngUpgrade
‣ The Good
‣ The Bad
‣ Preparation
‣ Patterns
‣ The Future…
• Too Big! >100kb minified+gzip
• Beta is still unstable
• Error messages are still hopeless
• So. Much. Static. Typing. aka “React
Enterprise Edition”
‣ Why A2?
‣ Experience
‣ Preparation
‣ Webpack
‣ ES6 or TS
‣ Organize
‣ Refactor
‣ Patterns
‣ The Future…
• You’re going to need a module loader!
• Webpack is arguably best-in-class
• Wide support for assets TS, ES6, HTML,
CSS, images, etc., etc., etc.
• Flexible, extensible, relatively easy to use
‣ Why A2?
‣ Experience
‣ Preparation
‣ Webpack
‣ ES6 or TS
‣ Organize
‣ Refactor
‣ Patterns
‣ The Future…
• Use Babel or Typescript
• Better get used Types and annotations
• aka React Enterprise Edition™
• My recommendation: Typescript
‣ Why A2?
‣ Experience
‣ Preparation
‣ Webpack
‣ ES6 or TS
‣ Organize
‣ Refactor
‣ Patterns
‣ The Future…
• Angular Style Guide https://github.com/johnpapa/angular-
styleguide
• Organize by component/features
• /component/component-name
• index.(ts|js) is the component root
• Include templates, styles and component specific services
• Organize shared code under “core” or “lib”
• Core services (e.g. Data/API)
• Attribute Directives
• Filters/Pipes
‣ Why A2?
‣ Experience
‣ Preparation
‣ Webpack
‣ ES6 or TS
‣ Organize
‣ Refactor
‣ Patterns
‣ The Future…
- app
- index.ts
- services
- index.ts
- resources.ts
- geolocation.ts
- filters/pipes
- date.ts
- directives
- highlight.ts
- float_label.ts
- components
- calendar
- index.ts
- calendar.html
- calendar.scss
- calendar_service.ts
- calculator
- index.ts
- template.html
- styles.css
- calculation_engine.ts
‣ Why A2?
‣ Experience
‣ Preparation
‣ Webpack
‣ ES6 or TS
‣ Organize
‣ Refactor
‣ Patterns
‣ The Future…
• “Pre-Upgrade” components
• Prefer `module.component`
• Prefer element selectors
• Extract controller as an exported class and avoid linking functions
• Use getter/setters over `$scope.$watch`
• Identify “attribute directives”
• Template-less directives that often interact directly with the DOM
• Prefer attribute selectors
• “Pre-Upgrade” services
• Extract service code into an exported class
• Pass it to `module.service`
• Rewrite filters as Angular 2.x Pipes
• Use an Angular 2.x Pipe compatible interface and a Pipe class to inherit from it
• Use an instance (singleton) of the Pipe in a `module.filter` shim
Upgrade Angular 1.x Component‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ Adapter
‣ Components
‣ Providers
‣ Directives
‣ Pipes/Filters
‣ The Future…
Downgraded Angular 2.x Component
https://gist.github.com/chrisnicola/
ec0f45b2819f352c8100#file-
downgradedangular2component-ts
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ Upgrade
‣ Components
‣ Providers
‣ Directives
‣ Pipes/Filters
‣ The Future…
Downgraded Angular 2.x Service
https://gist.github.com/chrisnicola/
ec0f45b2819f352c8100#file-
downgradedangular2provider-ts
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ Adapter
‣ Components
‣ Providers
‣ Directives
‣ Pipes/Filters
‣ The Future…
Angular 2.x Attribute Directive
https://github.com/WealthBar/angular-d3/blob/
angular-2/src/angularD3/directives/bars.ts
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ Adapter
‣ Components
‣ Providers
‣ Directives
‣ Pipes/Filters
‣ The Future…
https://github.com/WealthBar/angular-d3/blob/
angular-2/src/app/app.html
Pipe/Filter Shim
https://gist.github.com/chrisnicola/
ec0f45b2819f352c8100#file-pipefiltershim-ts
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ Adapter
‣ Components
‣ Providers
‣ Directives
‣ Pipes/Filters
‣ Why A2?
‣ The Future…
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
• Prefer converting 1.x services to 2.x
services and downgrade them (over
upgrading 1.x services)
• Refactor by component or route/page tree
• Adapters will temporarily support shared,
legacy or core dependencies
• Once you hit 80% 2.x code, freeze features
for a final push to remove remaining code.
More Tips
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
‣ Impending
‣ “Soon”
‣ Maybe
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
‣ Impending
‣ “Soon”
‣ Maybe
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
‣ Impending
‣ “Soon”
‣ Maybe
• Much smaller size
• Improved error messages
• Animations
• i18n and l11n
• Ionic 2 and NativeScript
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
‣ Impending
‣ “Soon”
‣ Maybe
• Isometric Support
• Hot code reloading
• Much more debugging tooling
‣ Why A2?
‣ Experience
‣ Preparation
‣ Patterns
‣ The Future…
‣ Impending
‣ “Soon”
‣ Maybe
• Isometric support for other framework
(Rails, Django, .NET)
• AngularJS Native
• Virtual DOM plugin (doubtful)
‣ 
• Official Docs https://angular.io/docs/ts/
latest/guide/upgrade.html
• Unofficial Guide http://
blog.thoughtram.io/angular/2015/10/24/
upgrading-apps-to-angular-2-using-
ngupgrade.html
Other Resources
Questions?
Thoughts?
Chris Nicola
CTO @ WealthBar

More Related Content

PPTX
Let's Build an Angular App!
PPTX
Story Testing Approach for Enterprise Applications using Selenium Framework
PDF
Becoming a Git Master - Nicola Paolucci
PDF
Super-powered CI with Git - Sarah Goff-Dupont
PDF
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
PDF
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
PDF
Dynamic bpm design by doing lightning talk
PDF
Migrating 25K lines of Ant scripting to Gradle
Let's Build an Angular App!
Story Testing Approach for Enterprise Applications using Selenium Framework
Becoming a Git Master - Nicola Paolucci
Super-powered CI with Git - Sarah Goff-Dupont
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
Dynamic bpm design by doing lightning talk
Migrating 25K lines of Ant scripting to Gradle

What's hot (20)

PDF
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
PDF
Hadoop Summit 2013 : Continuous Integration on top of hadoop
PPTX
Comparing Agile QA Approaches to End-to-End Testing
PDF
Continuous Integration for Spark Apps by Sean McIntyre
PDF
What's New in JHipsterLand - Devoxx US 2017
PDF
Continuous delivery of your legacy application
PPTX
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
PPTX
Azug BE Session Nov 2018 Wim Van den Broeck
PPTX
Automated Acceptance Tests & Tool choice
PDF
Run Fast, Try Not to Break S**t
PPTX
Angular TS(typescript)
PDF
Digital Success Stack for DCBKK 2018
PDF
Branching Strategies: Feature Branches vs Branch by Abstraction
PDF
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
PDF
Getting your mobile test automation process in place - using Cucumber and Cal...
PDF
Trunk based development
PPTX
Prototyping Office AddIns using ScriptLab
PDF
From 0 to 100: How we jump-started our frontend testing
PDF
Webpack and angularjs
PDF
An almost complete continuous delivery pipeline including configuration manag...
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Comparing Agile QA Approaches to End-to-End Testing
Continuous Integration for Spark Apps by Sean McIntyre
What's New in JHipsterLand - Devoxx US 2017
Continuous delivery of your legacy application
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
Azug BE Session Nov 2018 Wim Van den Broeck
Automated Acceptance Tests & Tool choice
Run Fast, Try Not to Break S**t
Angular TS(typescript)
Digital Success Stack for DCBKK 2018
Branching Strategies: Feature Branches vs Branch by Abstraction
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
Getting your mobile test automation process in place - using Cucumber and Cal...
Trunk based development
Prototyping Office AddIns using ScriptLab
From 0 to 100: How we jump-started our frontend testing
Webpack and angularjs
An almost complete continuous delivery pipeline including configuration manag...

Similar to Angular2 Upgrade (20)

PDF
Angular (v2 and up) - Morning to understand - Linagora
PPTX
PPTX
Modern Web-site Development Pipeline
PDF
Angular - Chapter 1 - Introduction
PPTX
TypeScript and Angular2 (Love at first sight)
PDF
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
PDF
How angularjs saves rails
PDF
KEY
Rapid development with Rails
PDF
Distributed Versioning Tools, BeJUG 2010
PDF
CI/CD and Asset Serving for Single Page Apps
PPTX
Angular Owin Katana TypeScript
PDF
Angular, the New Angular JS
ODP
Angular 6 - The Complete Guide
PPTX
A modern architecturereview–usingcodereviewtools-ver-3.5
 
PDF
Achieving Full Stack DevOps at Colonial Life
PDF
Next Generation Architecture Showcase July 2019
PDF
Continuous delivery from the trenches
PDF
Titanium Alloy Tutorial
PPTX
Angular2.0@Shanghai0319
Angular (v2 and up) - Morning to understand - Linagora
Modern Web-site Development Pipeline
Angular - Chapter 1 - Introduction
TypeScript and Angular2 (Love at first sight)
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
How angularjs saves rails
Rapid development with Rails
Distributed Versioning Tools, BeJUG 2010
CI/CD and Asset Serving for Single Page Apps
Angular Owin Katana TypeScript
Angular, the New Angular JS
Angular 6 - The Complete Guide
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Achieving Full Stack DevOps at Colonial Life
Next Generation Architecture Showcase July 2019
Continuous delivery from the trenches
Titanium Alloy Tutorial
Angular2.0@Shanghai0319

Recently uploaded (20)

PDF
Decision Optimization - From Theory to Practice
PDF
Human Computer Interaction Miterm Lesson
PDF
TrustArc Webinar - Data Minimization in Practice_ Reducing Risk, Enhancing Co...
PDF
substrate PowerPoint Presentation basic one
PDF
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PPTX
From Curiosity to ROI — Cost-Benefit Analysis of Agentic Automation [3/6]
PDF
FASHION-DRIVEN TEXTILES AS A CRYSTAL OF A NEW STREAM FOR STAKEHOLDER CAPITALI...
PPTX
Blending method and technology for hydrogen.pptx
PDF
【AI論文解説】高速・高品質な生成を実現するFlow Map Models(Part 1~3)
PPTX
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
PDF
“Introduction to Designing with AI Agents,” a Presentation from Amazon Web Se...
PDF
GDG Cloud Southlake #45: Patrick Debois: The Impact of GenAI on Development a...
PDF
Fitaura: AI & Machine Learning Powered Fitness Tracker
PPTX
maintenance powerrpoint for adaprive and preventive
PPTX
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
PDF
Addressing the challenges of harmonizing law and artificial intelligence tech...
PPTX
CRM(Customer Relationship Managmnet) Presentation
PDF
Intravenous drug administration application for pediatric patients via augmen...
PPTX
Presentation - Principles of Instructional Design.pptx
Decision Optimization - From Theory to Practice
Human Computer Interaction Miterm Lesson
TrustArc Webinar - Data Minimization in Practice_ Reducing Risk, Enhancing Co...
substrate PowerPoint Presentation basic one
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
From Curiosity to ROI — Cost-Benefit Analysis of Agentic Automation [3/6]
FASHION-DRIVEN TEXTILES AS A CRYSTAL OF A NEW STREAM FOR STAKEHOLDER CAPITALI...
Blending method and technology for hydrogen.pptx
【AI論文解説】高速・高品質な生成を実現するFlow Map Models(Part 1~3)
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
“Introduction to Designing with AI Agents,” a Presentation from Amazon Web Se...
GDG Cloud Southlake #45: Patrick Debois: The Impact of GenAI on Development a...
Fitaura: AI & Machine Learning Powered Fitness Tracker
maintenance powerrpoint for adaprive and preventive
Strategic Picks — Prioritising the Right Agentic Use Cases [2/6]
Addressing the challenges of harmonizing law and artificial intelligence tech...
CRM(Customer Relationship Managmnet) Presentation
Intravenous drug administration application for pediatric patients via augmen...
Presentation - Principles of Instructional Design.pptx

Angular2 Upgrade

  • 3. • Much better architecture/design compared with 1.x • Performance improvements • Still “Angular-like”, to keep much the same code organization Why are we doing this?‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future…
  • 4. What about React? ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future…
  • 5. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… Would I pick Angular Again?
  • 6. ‣ Why A2? ‣ Experience ‣ ngForward ‣ ngUpgrade ‣ The Good ‣ The Bad ‣ Preparation ‣ Patterns ‣ The Future… • Converted AngularD3 1.x -> 2.x (aka A2D3) • Tested out ngForward and ngUpgrade • Upgraded existing 1.x code using ngUpgrade • Proof of concept mobile apps with Ionic 2 and NativeScript Experience So Far…
  • 7. ‣ Why A2? ‣ Experience ‣ ngForward ‣ ngUpgrade ‣ The Good ‣ The Bad ‣ Preparation ‣ Patterns ‣ The Future… • Write Angular 1.x components with 2.x syntax • If you don’t want to include Angular 2.x yet • Templates and core directives are still 1.x syntax • Personally I do not find this approach useful
  • 8. ‣ Why A2? ‣ Experience ‣ ngForward ‣ ngUpgrade ‣ The Good ‣ The Bad ‣ Preparation ‣ Patterns ‣ The Future… • Upgrade Angular 1.x directives, components and services to use with Angular 2.x • Downgrade Angular 2.x directives, components and services to use with Angular 1.x • Does not work with Filters/Pipes (easy to workaround) • 100% Angular 2.x support • My recommended approach to upgrading
  • 9. ‣ Why A2? ‣ Experience ‣ ngForward ‣ ngUpgrade ‣ The Good ‣ The Bad ‣ Preparation ‣ Patterns ‣ The Future… • Glad to be rid of `ctrl.`,`$scope` and even Controllers • Reactive Programming with RxJS • LifeCycle events • One directional data by default • ngUpgrade works surprisingly well
  • 10. ‣ Why A2? ‣ Experience ‣ ngForward ‣ ngUpgrade ‣ The Good ‣ The Bad ‣ Preparation ‣ Patterns ‣ The Future… • Too Big! >100kb minified+gzip • Beta is still unstable • Error messages are still hopeless • So. Much. Static. Typing. aka “React Enterprise Edition”
  • 11. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Webpack ‣ ES6 or TS ‣ Organize ‣ Refactor ‣ Patterns ‣ The Future… • You’re going to need a module loader! • Webpack is arguably best-in-class • Wide support for assets TS, ES6, HTML, CSS, images, etc., etc., etc. • Flexible, extensible, relatively easy to use
  • 12. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Webpack ‣ ES6 or TS ‣ Organize ‣ Refactor ‣ Patterns ‣ The Future… • Use Babel or Typescript • Better get used Types and annotations • aka React Enterprise Edition™ • My recommendation: Typescript
  • 13. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Webpack ‣ ES6 or TS ‣ Organize ‣ Refactor ‣ Patterns ‣ The Future… • Angular Style Guide https://github.com/johnpapa/angular- styleguide • Organize by component/features • /component/component-name • index.(ts|js) is the component root • Include templates, styles and component specific services • Organize shared code under “core” or “lib” • Core services (e.g. Data/API) • Attribute Directives • Filters/Pipes
  • 14. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Webpack ‣ ES6 or TS ‣ Organize ‣ Refactor ‣ Patterns ‣ The Future… - app - index.ts - services - index.ts - resources.ts - geolocation.ts - filters/pipes - date.ts - directives - highlight.ts - float_label.ts - components - calendar - index.ts - calendar.html - calendar.scss - calendar_service.ts - calculator - index.ts - template.html - styles.css - calculation_engine.ts
  • 15. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Webpack ‣ ES6 or TS ‣ Organize ‣ Refactor ‣ Patterns ‣ The Future… • “Pre-Upgrade” components • Prefer `module.component` • Prefer element selectors • Extract controller as an exported class and avoid linking functions • Use getter/setters over `$scope.$watch` • Identify “attribute directives” • Template-less directives that often interact directly with the DOM • Prefer attribute selectors • “Pre-Upgrade” services • Extract service code into an exported class • Pass it to `module.service` • Rewrite filters as Angular 2.x Pipes • Use an Angular 2.x Pipe compatible interface and a Pipe class to inherit from it • Use an instance (singleton) of the Pipe in a `module.filter` shim
  • 16. Upgrade Angular 1.x Component‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ Adapter ‣ Components ‣ Providers ‣ Directives ‣ Pipes/Filters ‣ The Future…
  • 17. Downgraded Angular 2.x Component https://gist.github.com/chrisnicola/ ec0f45b2819f352c8100#file- downgradedangular2component-ts ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ Upgrade ‣ Components ‣ Providers ‣ Directives ‣ Pipes/Filters ‣ The Future…
  • 18. Downgraded Angular 2.x Service https://gist.github.com/chrisnicola/ ec0f45b2819f352c8100#file- downgradedangular2provider-ts ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ Adapter ‣ Components ‣ Providers ‣ Directives ‣ Pipes/Filters ‣ The Future…
  • 19. Angular 2.x Attribute Directive https://github.com/WealthBar/angular-d3/blob/ angular-2/src/angularD3/directives/bars.ts ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ Adapter ‣ Components ‣ Providers ‣ Directives ‣ Pipes/Filters ‣ The Future… https://github.com/WealthBar/angular-d3/blob/ angular-2/src/app/app.html
  • 20. Pipe/Filter Shim https://gist.github.com/chrisnicola/ ec0f45b2819f352c8100#file-pipefiltershim-ts ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ Adapter ‣ Components ‣ Providers ‣ Directives ‣ Pipes/Filters ‣ Why A2? ‣ The Future…
  • 21. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… • Prefer converting 1.x services to 2.x services and downgrade them (over upgrading 1.x services) • Refactor by component or route/page tree • Adapters will temporarily support shared, legacy or core dependencies • Once you hit 80% 2.x code, freeze features for a final push to remove remaining code. More Tips
  • 22. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… ‣ Impending ‣ “Soon” ‣ Maybe
  • 23. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… ‣ Impending ‣ “Soon” ‣ Maybe
  • 24. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… ‣ Impending ‣ “Soon” ‣ Maybe • Much smaller size • Improved error messages • Animations • i18n and l11n • Ionic 2 and NativeScript
  • 25. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… ‣ Impending ‣ “Soon” ‣ Maybe • Isometric Support • Hot code reloading • Much more debugging tooling
  • 26. ‣ Why A2? ‣ Experience ‣ Preparation ‣ Patterns ‣ The Future… ‣ Impending ‣ “Soon” ‣ Maybe • Isometric support for other framework (Rails, Django, .NET) • AngularJS Native • Virtual DOM plugin (doubtful)
  • 27. ‣ • Official Docs https://angular.io/docs/ts/ latest/guide/upgrade.html • Unofficial Guide http:// blog.thoughtram.io/angular/2015/10/24/ upgrading-apps-to-angular-2-using- ngupgrade.html Other Resources