Konstantin Malikov
Angular & .net developer. Participating in growing Angular Community. Sharing knowledges. https://www.linkedin.com/in/konstantin-malikov-56b1681a2/
Angular | .NET
Angular Workshop
Angular Minsk
Participant
Community 👍
📣 1.5M+ devs (angular.io hits)
📣 4M+ npm downloads per month
📣 gitter channel (gitter.im/angular/angular)
📣 stackoverflow (˜160K answered questions)
📣 760 meetup groups in 379 cities in 66 countries
statistics from frontendwatch.com
Community
+
Collaborators and GDE
Community
+ a lot of great examples
Community
Angular Team (w/o collaborators)
Angular 9 release date
"angularCompilerOptions": {
"enableIvy": true
}Angular Ivy by default
Pipelining
from Renderer2
to Ivy
Backward compatable
Default "serve" behavior
ng serve --aot
NgModule updates
entryComponents no more needed
NgModule updates
optional modules?
Bundle size
i18n
npm i @angular/localize
ng serve --configuration=fr
ng build --configuration=production,es,
// or with all locales
ng build --prod --localize"scripts": {
...
"dev:ssr": "ng run angular-universal-v9:serve-ssr",
"serve:ssr": "node dist/angular-universal-v9/server/main.js",
"build:ssr": "ng build --prod && ng run angular-universal-v9:server:production",
"prerender": "ng run angular-universal-v9:prerender"
}Universal
Universal
Live angular universal development
Angular static prerender
npm run dev:ssrng run <app_name>:prerenderDependency Injection
@Injectable({
// we declare that this
// service should be created
// by the root application injector.
providedIn: 'root'
})
export class HeroService {
getHeroes() { return HEROES; }
}Dependency Injection
@Injectable({
// we declare that this
// service should be created
// by the root application injector.
providedIn: 'platform'
})
export class HeroService {
getHeroes() { return HEROES; }
}Dependency Injection
@Injectable({
// we declare that this
// service should be created
// by the root application injector.
providedIn: 'any'
})
export class HeroService {
getHeroes() { return HEROES; }
}JS Instructions
TS & HTML CODE
JS INSTRUCTIONS
Main Goals
Reach better build times
Reach better build sizes
Unlock new potential features
• higher order components
• lazy loading of component
• CD w/o zone.js
Angular Ecosystem
When SPA approach doesn't work
💢 Components for CMS-based pages
💢 Migration of Legacy Apps
💢 Dynamical Components for UI integration
💢 Widget libraries
Live Coding #1
LAZY LOADED COMPONENTS
Live Coding #2
HanSolo Component Bundle
+
=
New Improved Elements
Live Coding #3
Angular Elements 9-rc7
Live Coding #4
Angular Component w/ HTMLElement
Angular Potential Use Case
Payment Form w/ Product
Angular Potential Use Case
Leave a Review
Angular Potential Use Case
Chat Widget
Angular Potential Use Case
Booking / Calendar
Angular Potential Use Case
Contact Form
By Konstantin Malikov
Angular Future With Ivy
Angular & .net developer. Participating in growing Angular Community. Sharing knowledges. https://www.linkedin.com/in/konstantin-malikov-56b1681a2/