SlideShare a Scribd company logo
1 of 24
Download to read offline
d
Adventures with Angular 2
Dragos Ionita @ adoreme.com
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Introduction
I build business tools @Adore Me
Why Angular2?
Why Angular2 Beta.3 in production code?
What did I personally learn?
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
About me: my journey
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
New business tool, very complex backend, no
draconic deadline
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
We are very good on Angular1
New business tool, very complex backend, no
draconic deadline
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
We are very good on Angular1
New business tool, very complex backend, no
draconic deadline
Angular1 has a big community.
Angular2 why not?
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
We are very good on Angular1
New business tool, very complex backend, no
draconic deadline
Angular1 has a big community.
Angular2 why not?
Angular2 is already used by Google
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
We are very good on Angular1
New business tool, very complex backend, no
draconic deadline
Angular1 has a big community.
Angular2 why not?
Angular2 is already used by Google
Angular2 is made by Google
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
We are very good on Angular1
New business tool, very complex backend, no
draconic deadline
Angular1 has a big community.
Angular2 why not?
Angular2 is already used by Google
Angular2 is made by Google
When it will be officially released?
Will be?
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Why Angular2
<framework agnostic>
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
First install
Typescript
• added type of the variable 

when declaring it.
• ECMAScript6/7 > ECMAScript 5
• added public, private, protected
• Typescript updates/news
• type definitions (.d.ts)
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
First install
Webpack
• Module bundling
• Works great
• Browsersync
• Magic
• Where is the documentation?
• Gulp/Grunt packages?
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
First install
Angular2 Router
• Many bugs
• No Guard support (ACL)
• No community
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
Beta.3
Try to do a CRUD app
first ng2 component
first ng2 directive
Ooo Observables?
see the RXJS documentation
why Observables … I love the promises…
so .. Observables.toPromise :D
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
Beta.8
First single app
@ngrx/router
First feature: make a grid with data from an API
angular2/http … what is this?
no http interceptor?
how I can do a GET request?
but a POST?
First form with validators.
Wow … NG2 doesn't have a documentation.
Typings fixes
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
Beta.14
I tried to make a gulp config.
I returned on Webpack
My first form doesn't work after ng version
upgrade
The upgrade, added many <Form> improvements
Typings fixes
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
RC.0
Refactoring application angular2 -> @angular
Added some basic automated tests
The upgrade, added many <Form> improvements
Typings fixes
Real features & components:
grid component
modals
loaders
authentication & authorization
application code
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
RC.2
Added animations
My business code from forms are deprecated
I created a Router Guard (for ngrx/router)
I created a Guard directive
Typings fixes
Business Models
Where is the Factory from ng1?
Wow … I will create a simple js class.
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
RC.4
My tests used deprecated stuff.
so … I removed them.
Application refactoring
@ngrx/router project is abandoned
My awesome Guard also should be removed…
Install and configure the default router
Write a new Guard for this router
Typings fixes
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
RC.5
‘directives’ & ‘pipes’ in @component decorator are
deprecated
Remove template driven forms, use only reactive
forms
Ng-Modules was added
Rewrote the app
Authentication module
Authorisation module
First Business Tool module
First Business Tool module
Shared/UI module
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
2.0.1
Smooth update …
only warnings :)
Typings fixes
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Timeline upgrades
2.1.1
Started to package internal ng2 libraries with NPM
Any important module is now a private NPM
package
We wrote the typings for our NPM packages
Tried to write some tests
Added TypeDoc
Dev (with dev build) webserver
Prod (with prod build) webserver
✦ Introduction
✴ About me
✦ Why Angular2?
✦ First install
✦ Timeline upgrades
✴ Beta.3
✴ Beta.8
✴ Beta.14
✴ RC.0
✴ RC.2
✴ RC.4
✴ RC.5
✴ 2.0.1
✴ 2.1.1
✴ Conclusions
Conclusions
Beta or not?
Definitely yes
Why?
You are the community
You witness the evolution of the framework
You learn much faster
Thanks for watching!
Ionita Dragos Cristian
SoftwareEngineer@AdoreMe
https://www.linkedin.com/in/
dragos-ionita-8ab20756

More Related Content

What's hot

What’s new in angular 2
What’s new in angular 2What’s new in angular 2
What’s new in angular 2
Ran Wahle
 

What's hot (20)

Angular2 with TypeScript
Angular2 with TypeScript Angular2 with TypeScript
Angular2 with TypeScript
 
Angular2 intro
Angular2 introAngular2 intro
Angular2 intro
 
Talk for DevFest 2021 - GDG Bénin
Talk for DevFest 2021 - GDG BéninTalk for DevFest 2021 - GDG Bénin
Talk for DevFest 2021 - GDG Bénin
 
Getting Started with Angular 2
Getting Started with Angular 2Getting Started with Angular 2
Getting Started with Angular 2
 
Angular1x and Angular 2 for Beginners
Angular1x and Angular 2 for BeginnersAngular1x and Angular 2 for Beginners
Angular1x and Angular 2 for Beginners
 
Angular 2
Angular 2Angular 2
Angular 2
 
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2
 
What’s new in angular 2
What’s new in angular 2What’s new in angular 2
What’s new in angular 2
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core concepts
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Angular 2
Angular 2Angular 2
Angular 2
 
Angular 2 Crash Course
Angular  2 Crash CourseAngular  2 Crash Course
Angular 2 Crash Course
 
Angular 1.x vs 2 - In code level
Angular 1.x vs 2 - In code levelAngular 1.x vs 2 - In code level
Angular 1.x vs 2 - In code level
 
What is Angular version 4?
What is Angular version 4?What is Angular version 4?
What is Angular version 4?
 
Angular 2 - An Introduction
Angular 2 - An IntroductionAngular 2 - An Introduction
Angular 2 - An Introduction
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
 
PPT on Angular 2 Development Tutorial
PPT on Angular 2 Development TutorialPPT on Angular 2 Development Tutorial
PPT on Angular 2 Development Tutorial
 
Introduction to Angular2
Introduction to Angular2Introduction to Angular2
Introduction to Angular2
 

Viewers also liked

Migrating UI-Sortable to Angular 2
Migrating UI-Sortable to Angular 2Migrating UI-Sortable to Angular 2
Migrating UI-Sortable to Angular 2
thgreasi
 
New power of Angular2 Router
New power of Angular2 RouterNew power of Angular2 Router
New power of Angular2 Router
Zhentian Wan
 
Sql server 2012 tutorials reporting services
Sql server 2012 tutorials   reporting servicesSql server 2012 tutorials   reporting services
Sql server 2012 tutorials reporting services
Steve Xu
 

Viewers also liked (19)

Angular2 workshop
Angular2 workshopAngular2 workshop
Angular2 workshop
 
Migrating UI-Sortable to Angular 2
Migrating UI-Sortable to Angular 2Migrating UI-Sortable to Angular 2
Migrating UI-Sortable to Angular 2
 
How Angular2 Can Improve Your AngularJS Apps Today!
How Angular2 Can Improve Your AngularJS Apps Today!How Angular2 Can Improve Your AngularJS Apps Today!
How Angular2 Can Improve Your AngularJS Apps Today!
 
New power of Angular2 Router
New power of Angular2 RouterNew power of Angular2 Router
New power of Angular2 Router
 
Angular2 inter3
Angular2 inter3Angular2 inter3
Angular2 inter3
 
Modules in angular 2.0 beta.1
Modules in angular 2.0 beta.1Modules in angular 2.0 beta.1
Modules in angular 2.0 beta.1
 
Sql server 2012 tutorials reporting services
Sql server 2012 tutorials   reporting servicesSql server 2012 tutorials   reporting services
Sql server 2012 tutorials reporting services
 
Angular2 router&http
Angular2 router&httpAngular2 router&http
Angular2 router&http
 
The productive developer guide to Angular 2
The productive developer guide to Angular 2The productive developer guide to Angular 2
The productive developer guide to Angular 2
 
Microsoft SQL Server Data Warehouses for SQL Server DBAs
Microsoft SQL Server Data Warehouses for SQL Server DBAsMicrosoft SQL Server Data Warehouses for SQL Server DBAs
Microsoft SQL Server Data Warehouses for SQL Server DBAs
 
Data Flow Patterns in Angular 2 - Sebastian Müller
Data Flow Patterns in Angular 2 -  Sebastian MüllerData Flow Patterns in Angular 2 -  Sebastian Müller
Data Flow Patterns in Angular 2 - Sebastian Müller
 
SQL Server Transaction Management
SQL Server Transaction ManagementSQL Server Transaction Management
SQL Server Transaction Management
 
Angular Pipes Workshop
Angular Pipes WorkshopAngular Pipes Workshop
Angular Pipes Workshop
 
Introduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flowIntroduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flow
 
Svn Basic Tutorial
Svn Basic TutorialSvn Basic Tutorial
Svn Basic Tutorial
 
Angular2
Angular2Angular2
Angular2
 
Angular 2 for Java Developers
Angular 2 for Java DevelopersAngular 2 for Java Developers
Angular 2 for Java Developers
 
RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015RxJS and Reactive Programming - Modern Web UI - May 2015
RxJS and Reactive Programming - Modern Web UI - May 2015
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
 

Similar to Adventures with Angular 2

Similar to Adventures with Angular 2 (20)

Brief introduction to Angular 2.0 & 4.0
Brief introduction to Angular 2.0 & 4.0Brief introduction to Angular 2.0 & 4.0
Brief introduction to Angular 2.0 & 4.0
 
Angular 2 어디까지 왔을까
Angular 2 어디까지 왔을까Angular 2 어디까지 왔을까
Angular 2 어디까지 왔을까
 
Angular, the New Angular JS
Angular, the New Angular JSAngular, the New Angular JS
Angular, the New Angular JS
 
El viaje de Angular1 a Angular2
El viaje de Angular1 a Angular2El viaje de Angular1 a Angular2
El viaje de Angular1 a Angular2
 
What’s New in Angular 15.pptx
What’s New in Angular 15.pptxWhat’s New in Angular 15.pptx
What’s New in Angular 15.pptx
 
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]26 top angular 8 interview questions to know in 2020   [www.full stack.cafe]
26 top angular 8 interview questions to know in 2020 [www.full stack.cafe]
 
Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
 
Myths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsMyths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really Is
 
Web componenet using angular element
Web componenet using angular elementWeb componenet using angular element
Web componenet using angular element
 
The Angular road from 1.x to 2.0
The Angular road from 1.x to 2.0The Angular road from 1.x to 2.0
The Angular road from 1.x to 2.0
 
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр ШевнинAzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
 
Getting to Angular 2
Getting to Angular 2Getting to Angular 2
Getting to Angular 2
 
Angular2 Upgrade
Angular2 UpgradeAngular2 Upgrade
Angular2 Upgrade
 
Angular 2.0
Angular 2.0Angular 2.0
Angular 2.0
 
Angular 2 Examples | Angular CRUD Application | Angular Tutorial | Angular Tr...
Angular 2 Examples | Angular CRUD Application | Angular Tutorial | Angular Tr...Angular 2 Examples | Angular CRUD Application | Angular Tutorial | Angular Tr...
Angular 2 Examples | Angular CRUD Application | Angular Tutorial | Angular Tr...
 
Grails & Angular: unleashing the dynamic duo
Grails & Angular: unleashing the dynamic duoGrails & Angular: unleashing the dynamic duo
Grails & Angular: unleashing the dynamic duo
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet code
 
AngularJS
AngularJSAngularJS
AngularJS
 
Angular
AngularAngular
Angular
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 

More from Dragos Ionita

More from Dragos Ionita (7)

Reactive programming - Observable
Reactive programming - ObservableReactive programming - Observable
Reactive programming - Observable
 
The new way to write a frontend software
The new way to write a frontend softwareThe new way to write a frontend software
The new way to write a frontend software
 
Robotics and Arduino (Arduino UNO)
Robotics and Arduino (Arduino UNO)Robotics and Arduino (Arduino UNO)
Robotics and Arduino (Arduino UNO)
 
Html5 - Awesome APIs
Html5 - Awesome APIsHtml5 - Awesome APIs
Html5 - Awesome APIs
 
Hybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic FrameworkHybrid Mobile Application with Ionic Framework
Hybrid Mobile Application with Ionic Framework
 
Powerful JavaScript Tips and Best Practices
Powerful JavaScript Tips and Best PracticesPowerful JavaScript Tips and Best Practices
Powerful JavaScript Tips and Best Practices
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Recently uploaded (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 

Adventures with Angular 2

  • 1. d Adventures with Angular 2 Dragos Ionita @ adoreme.com
  • 2. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Introduction I build business tools @Adore Me Why Angular2? Why Angular2 Beta.3 in production code? What did I personally learn?
  • 3. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions About me: my journey
  • 4. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 New business tool, very complex backend, no draconic deadline
  • 5. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 We are very good on Angular1 New business tool, very complex backend, no draconic deadline
  • 6. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 We are very good on Angular1 New business tool, very complex backend, no draconic deadline Angular1 has a big community. Angular2 why not?
  • 7. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 We are very good on Angular1 New business tool, very complex backend, no draconic deadline Angular1 has a big community. Angular2 why not? Angular2 is already used by Google
  • 8. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 We are very good on Angular1 New business tool, very complex backend, no draconic deadline Angular1 has a big community. Angular2 why not? Angular2 is already used by Google Angular2 is made by Google
  • 9. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 We are very good on Angular1 New business tool, very complex backend, no draconic deadline Angular1 has a big community. Angular2 why not? Angular2 is already used by Google Angular2 is made by Google When it will be officially released? Will be?
  • 10. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Why Angular2 <framework agnostic>
  • 11. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions First install Typescript • added type of the variable 
 when declaring it. • ECMAScript6/7 > ECMAScript 5 • added public, private, protected • Typescript updates/news • type definitions (.d.ts)
  • 12. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions First install Webpack • Module bundling • Works great • Browsersync • Magic • Where is the documentation? • Gulp/Grunt packages?
  • 13. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions First install Angular2 Router • Many bugs • No Guard support (ACL) • No community
  • 14. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades Beta.3 Try to do a CRUD app first ng2 component first ng2 directive Ooo Observables? see the RXJS documentation why Observables … I love the promises… so .. Observables.toPromise :D
  • 15. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades Beta.8 First single app @ngrx/router First feature: make a grid with data from an API angular2/http … what is this? no http interceptor? how I can do a GET request? but a POST? First form with validators. Wow … NG2 doesn't have a documentation. Typings fixes
  • 16. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades Beta.14 I tried to make a gulp config. I returned on Webpack My first form doesn't work after ng version upgrade The upgrade, added many <Form> improvements Typings fixes
  • 17. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades RC.0 Refactoring application angular2 -> @angular Added some basic automated tests The upgrade, added many <Form> improvements Typings fixes Real features & components: grid component modals loaders authentication & authorization application code
  • 18. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades RC.2 Added animations My business code from forms are deprecated I created a Router Guard (for ngrx/router) I created a Guard directive Typings fixes Business Models Where is the Factory from ng1? Wow … I will create a simple js class.
  • 19. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades RC.4 My tests used deprecated stuff. so … I removed them. Application refactoring @ngrx/router project is abandoned My awesome Guard also should be removed… Install and configure the default router Write a new Guard for this router Typings fixes
  • 20. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades RC.5 ‘directives’ & ‘pipes’ in @component decorator are deprecated Remove template driven forms, use only reactive forms Ng-Modules was added Rewrote the app Authentication module Authorisation module First Business Tool module First Business Tool module Shared/UI module
  • 21. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades 2.0.1 Smooth update … only warnings :) Typings fixes
  • 22. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Timeline upgrades 2.1.1 Started to package internal ng2 libraries with NPM Any important module is now a private NPM package We wrote the typings for our NPM packages Tried to write some tests Added TypeDoc Dev (with dev build) webserver Prod (with prod build) webserver
  • 23. ✦ Introduction ✴ About me ✦ Why Angular2? ✦ First install ✦ Timeline upgrades ✴ Beta.3 ✴ Beta.8 ✴ Beta.14 ✴ RC.0 ✴ RC.2 ✴ RC.4 ✴ RC.5 ✴ 2.0.1 ✴ 2.1.1 ✴ Conclusions Conclusions Beta or not? Definitely yes Why? You are the community You witness the evolution of the framework You learn much faster
  • 24. Thanks for watching! Ionita Dragos Cristian SoftwareEngineer@AdoreMe https://www.linkedin.com/in/ dragos-ionita-8ab20756