SlideShare a Scribd company logo
1 of 31
Download to read offline
ANGULAR FOR
THE ENTERPRISE
How VMware scales modern web
development
JEEYUN LIM
UI Engineer @ VMware
Core Contributor to Clarity
ngGirls mentor
@jeeyunit
linkedin.com/in/jeeyun
A TRIP DOWN MEMORY LANE
1998 2018
20 employees 20,000 employees
A TRIP DOWN MEMORY LANE
C#
2003
VMware’s User Interface
A TRIP DOWN MEMORY LANE
A TRIP DOWN MEMORY LANE
C#
2003
VMware’s User Interface
Windows only
Flash
2012
A TRIP DOWN MEMORY LANE
A TRIP DOWN MEMORY LANE
C#
2003
Flash
2012
HTML5
2016
VMware’s User Interface
Windows only Slow
EOL
A TRIP DOWN MEMORY LANE
A TRIP DOWN MEMORY LANE
C#
2003
Flash
2012
HTML5
2016
VMware’s User Interface
Windows only Slow
EOL
👍
A CASE FOR ANGULAR
Opinionated
TypeScript as first-class citizen
Scaling UX & UI development
Leverage CLI for productivity
A CASE FOR ANGULAR
Opinionated
TypeScript as first-class citizen
Scaling UX & UI development
Leverage CLI for productivity
OPINION IS A GOOD THING
Build tools CLIRouter
HTTP Testing Animation
OPINION IS A GOOD THING
Standardized environment across development teams
Knowledge sharing
Finding help elsewhere is easier too
Spend mental energy and time on complex features
A CASE FOR ANGULAR
Opinionated
TypeScript as first-class citizen
Scaling UX & UI development
Leverage CLI for productivity
TYPESCRIPT AS A FIRST-CLASS CITIZEN
Syntactic sugar for JavaScript
Superset of ES2015:
Arrow functions
Promises
Spread Parameters
… and many more!
Gives us:
Static analysis
Symbol-based navigation
Code completion
Familiarity for backend engineers who are used to typed languages
TypeScript
ES2015
ES5
(JavaScript)
TYPESCRIPT AS A FIRST-CLASS CITIZEN
export class DatagridPropertyStringFilter<T = any> implements ClrDatagridStringFilterInterface<T>
{
private nestedProp: NestedProperty<T>;
constructor(public prop: string, public exact = false) {
this.nestedProp = new NestedProperty(prop);
}
accepts(item: T, search: string): boolean {
const propValue = this.nestedProp.getPropValue(item);
if (typeof propValue === 'undefined') {
return false;
} else if (this.exact) {
return ('' + propValue).toLowerCase() === search;
} else {
return ('' + propValue).toLowerCase().indexOf(search) >= 0;
}
}
}
datagrid-propperty-string-filter.ts
A CASE FOR ANGULAR
Opinionated
TypeScript as first-class citizen
Scaling UX & UI development
Leverage CLI for productivity
CLARITY DESIGN SYSTEM
DESIGN GUIDELINES FOR PLUGINS
DESIGN GUIDELINES FOR PLUGINS
A CASE FOR ANGULAR
Opinionated
TypeScript as first-class citizen
Scaling UX & UI development
Leverage CLI for productivity
ANGULAR CLI - STARTING A NEW PROJECT
$ ng new my-app
The CLI tools are really powerful and convenient. After
generating the project I have basically everything ready.
(tsconfig, lint, karma, protractor, environments etc.)
- VMware UI Engineer
“
ANGULAR SCHEMATICS
Developed by Angular CLI team
Custom scaffolding for the CLI
Transformation pipeline
Generate and modify code in filesystem
Potential changes are staged then committed
ANGULAR SCHEMATICS
File System
(Tree)
Actions

(Rules)
Commit
ANGULAR SCHEMATICS
$ ng add @angular/material
$ ng add @clr/angular
$ ng add @nativescript/schematics
$ ng add priming-schematics
…
ANGULAR SCHEMATICS AND UPDATES
$ ng update @clr/angular
UPDATE MESSAGES
Update Warn Info Error
<clr-dg-column-toggle>
<clr-dg-column-toggle-title clrType="ok">
好!
</clr-dg-column-toggle-title>
<clr-dg-column-toggle-button>全選!</…>
</clr-dg-column-toggle>
my.component.ts
WARNING: Clarity has removed the ok button (clrType="ok")
from the column hide/show panel in datagrid. Any custom
<clr-dg-column-toggle-button> component will now default
to clrType="selectAll" without needing the attribute.
Please remove any custom ok button in the column hide/
show panel, and also remove the clrType attributes for
buttons with clrType="selectAll" (src/app/account/
account.component.html) More info at https://
vmware.github.io/clarity/news/0.13.0-beta.2
ANGULAR FOR THE ENTERPRISE
Opinionated
TypeScript as first-class citizen
Scaling UX & UI development
Leverage CLI for productivity
THANK YOU
@jeeyunit
linkedin.com/in/jeeyun

More Related Content

What's hot

Visual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & TricksVisual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & TricksAmal Dev
 
Anton Sakharov: The risks you take when develop cross-platform apps using HT...
 Anton Sakharov: The risks you take when develop cross-platform apps using HT... Anton Sakharov: The risks you take when develop cross-platform apps using HT...
Anton Sakharov: The risks you take when develop cross-platform apps using HT...Mobile Trends
 
Overview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin ArchitectureOverview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin ArchitectureKhairi Aiman
 
Dev ops con 2015 radical agility with autonomous teams and microservices in...
Dev ops con 2015   radical agility with autonomous teams and microservices in...Dev ops con 2015   radical agility with autonomous teams and microservices in...
Dev ops con 2015 radical agility with autonomous teams and microservices in...Jan Löffler
 
GWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelierGWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelierflorentpellet
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
Angular coding: from project management to web and mobile deploy
Angular coding: from project management to web and mobile deployAngular coding: from project management to web and mobile deploy
Angular coding: from project management to web and mobile deployCorley S.r.l.
 
Android Apps Using C# With Visual Studio And Xamarin
Android Apps Using C# With Visual Studio And XamarinAndroid Apps Using C# With Visual Studio And Xamarin
Android Apps Using C# With Visual Studio And XamarinAmal Dev
 
Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"Daniel Bryant
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product LifecycleOlyaSurits
 
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...Henning Jacobs
 
Kubernetes on AWS at Europe's Leading Online Fashion Platform
Kubernetes on AWS at Europe's Leading Online Fashion PlatformKubernetes on AWS at Europe's Leading Online Fashion Platform
Kubernetes on AWS at Europe's Leading Online Fashion PlatformHenning Jacobs
 
Writing Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJSWriting Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJSColin Vernon
 
Python at Zalando Technology @ Python Users Berlin Meetup September 2015
Python at Zalando Technology @ Python Users Berlin Meetup September 2015Python at Zalando Technology @ Python Users Berlin Meetup September 2015
Python at Zalando Technology @ Python Users Berlin Meetup September 2015Henning Jacobs
 
Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...
Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...
Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...Mobile Trends
 
"workstation up" - Docker Development at Flow
"workstation up" - Docker Development at Flow "workstation up" - Docker Development at Flow
"workstation up" - Docker Development at Flow Mike Roth
 
Collibra wrojug-ontrack-20100424
Collibra wrojug-ontrack-20100424Collibra wrojug-ontrack-20100424
Collibra wrojug-ontrack-20100424Damien Coraboeuf
 

What's hot (19)

Visual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & TricksVisual studio 2017 - Tips & Tricks
Visual studio 2017 - Tips & Tricks
 
Anton Sakharov: The risks you take when develop cross-platform apps using HT...
 Anton Sakharov: The risks you take when develop cross-platform apps using HT... Anton Sakharov: The risks you take when develop cross-platform apps using HT...
Anton Sakharov: The risks you take when develop cross-platform apps using HT...
 
Overview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin ArchitectureOverview to Xamarin : Understanding Xamarin Architecture
Overview to Xamarin : Understanding Xamarin Architecture
 
Dev ops con 2015 radical agility with autonomous teams and microservices in...
Dev ops con 2015   radical agility with autonomous teams and microservices in...Dev ops con 2015   radical agility with autonomous teams and microservices in...
Dev ops con 2015 radical agility with autonomous teams and microservices in...
 
GWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelierGWAB Lyon - Legacy code atelier
GWAB Lyon - Legacy code atelier
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Angular coding: from project management to web and mobile deploy
Angular coding: from project management to web and mobile deployAngular coding: from project management to web and mobile deploy
Angular coding: from project management to web and mobile deploy
 
Android Apps Using C# With Visual Studio And Xamarin
Android Apps Using C# With Visual Studio And XamarinAndroid Apps Using C# With Visual Studio And Xamarin
Android Apps Using C# With Visual Studio And Xamarin
 
Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product Lifecycle
 
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
STUPS by Zalando @WHD.local Frankfurt: STUPS.io - an Open Source Cloud Framew...
 
Kubernetes on AWS at Europe's Leading Online Fashion Platform
Kubernetes on AWS at Europe's Leading Online Fashion PlatformKubernetes on AWS at Europe's Leading Online Fashion Platform
Kubernetes on AWS at Europe's Leading Online Fashion Platform
 
Writing Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJSWriting Once: Multi-client code sharing in ReactJS
Writing Once: Multi-client code sharing in ReactJS
 
Python at Zalando Technology @ Python Users Berlin Meetup September 2015
Python at Zalando Technology @ Python Users Berlin Meetup September 2015Python at Zalando Technology @ Python Users Berlin Meetup September 2015
Python at Zalando Technology @ Python Users Berlin Meetup September 2015
 
React Native.pptx (2)
React Native.pptx (2)React Native.pptx (2)
React Native.pptx (2)
 
Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...
Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...
Alexander Shitikov: Cross Platform Mobile Development. Business Logic for mob...
 
"workstation up" - Docker Development at Flow
"workstation up" - Docker Development at Flow "workstation up" - Docker Development at Flow
"workstation up" - Docker Development at Flow
 
Collibra wrojug-ontrack-20100424
Collibra wrojug-ontrack-20100424Collibra wrojug-ontrack-20100424
Collibra wrojug-ontrack-20100424
 
eGo meetup - Xamarin
eGo meetup - XamarineGo meetup - Xamarin
eGo meetup - Xamarin
 

Similar to Angular for the Enterprise - ngAtlanta 2019

KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplanesparkfabrik
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanGiulio Roggero
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience reportYan Cui
 
The Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark SideThe Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark SideAggregage
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Yan Cui
 
The future of paas is serverless
The future of paas is serverlessThe future of paas is serverless
The future of paas is serverlessYan Cui
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Yan Cui
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCAdrian Cockcroft
 
How to build a social network on Serverless (AWS Community Summit)
How to build a social network on Serverless (AWS Community Summit)How to build a social network on Serverless (AWS Community Summit)
How to build a social network on Serverless (AWS Community Summit)Yan Cui
 
How to build a social network on serverless | Yan Cui
How to build a social network on serverless | Yan CuiHow to build a social network on serverless | Yan Cui
How to build a social network on serverless | Yan CuiAWSCOMSUM
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Acquia Platform Updates: New Features and Capabilities
 Acquia Platform Updates: New Features and Capabilities Acquia Platform Updates: New Features and Capabilities
Acquia Platform Updates: New Features and CapabilitiesRachel Wandishin
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...VISEO
 
Build reactive systems on lambda
Build reactive systems on lambdaBuild reactive systems on lambda
Build reactive systems on lambdaYan Cui
 
Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Melania Andrisan (Danciu)
 
Red Hat Summit - What are your digital foundations?
Red Hat Summit - What are your digital foundations?Red Hat Summit - What are your digital foundations?
Red Hat Summit - What are your digital foundations?Eric D. Schabell
 
Angular - Chapter 1 - Introduction
 Angular - Chapter 1 - Introduction Angular - Chapter 1 - Introduction
Angular - Chapter 1 - IntroductionWebStackAcademy
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinLeanIX GmbH
 
Acquia Platform Update: New Features and Capabilities
Acquia Platform Update: New Features and CapabilitiesAcquia Platform Update: New Features and Capabilities
Acquia Platform Update: New Features and CapabilitiesAcquia
 

Similar to Angular for the Enterprise - ngAtlanta 2019 (20)

KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, Milan
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience report
 
The Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark SideThe Modern Tech Stack: Microservices - The Dark Side
The Modern Tech Stack: Microservices - The Dark Side
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 
The future of paas is serverless
The future of paas is serverlessThe future of paas is serverless
The future of paas is serverless
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
Microxchg Microservices
Microxchg MicroservicesMicroxchg Microservices
Microxchg Microservices
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCC
 
How to build a social network on Serverless (AWS Community Summit)
How to build a social network on Serverless (AWS Community Summit)How to build a social network on Serverless (AWS Community Summit)
How to build a social network on Serverless (AWS Community Summit)
 
How to build a social network on serverless | Yan Cui
How to build a social network on serverless | Yan CuiHow to build a social network on serverless | Yan Cui
How to build a social network on serverless | Yan Cui
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Acquia Platform Updates: New Features and Capabilities
 Acquia Platform Updates: New Features and Capabilities Acquia Platform Updates: New Features and Capabilities
Acquia Platform Updates: New Features and Capabilities
 
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
 
Build reactive systems on lambda
Build reactive systems on lambdaBuild reactive systems on lambda
Build reactive systems on lambda
 
Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017
 
Red Hat Summit - What are your digital foundations?
Red Hat Summit - What are your digital foundations?Red Hat Summit - What are your digital foundations?
Red Hat Summit - What are your digital foundations?
 
Angular - Chapter 1 - Introduction
 Angular - Chapter 1 - Introduction Angular - Chapter 1 - Introduction
Angular - Chapter 1 - Introduction
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
 
Acquia Platform Update: New Features and Capabilities
Acquia Platform Update: New Features and CapabilitiesAcquia Platform Update: New Features and Capabilities
Acquia Platform Update: New Features and Capabilities
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Angular for the Enterprise - ngAtlanta 2019

  • 1. ANGULAR FOR THE ENTERPRISE How VMware scales modern web development
  • 2. JEEYUN LIM UI Engineer @ VMware Core Contributor to Clarity ngGirls mentor @jeeyunit linkedin.com/in/jeeyun
  • 3.
  • 4. A TRIP DOWN MEMORY LANE 1998 2018 20 employees 20,000 employees
  • 5. A TRIP DOWN MEMORY LANE C# 2003 VMware’s User Interface
  • 6. A TRIP DOWN MEMORY LANE
  • 7. A TRIP DOWN MEMORY LANE C# 2003 VMware’s User Interface Windows only Flash 2012
  • 8. A TRIP DOWN MEMORY LANE
  • 9. A TRIP DOWN MEMORY LANE C# 2003 Flash 2012 HTML5 2016 VMware’s User Interface Windows only Slow EOL
  • 10. A TRIP DOWN MEMORY LANE
  • 11. A TRIP DOWN MEMORY LANE C# 2003 Flash 2012 HTML5 2016 VMware’s User Interface Windows only Slow EOL 👍
  • 12. A CASE FOR ANGULAR Opinionated TypeScript as first-class citizen Scaling UX & UI development Leverage CLI for productivity
  • 13. A CASE FOR ANGULAR Opinionated TypeScript as first-class citizen Scaling UX & UI development Leverage CLI for productivity
  • 14. OPINION IS A GOOD THING Build tools CLIRouter HTTP Testing Animation
  • 15. OPINION IS A GOOD THING Standardized environment across development teams Knowledge sharing Finding help elsewhere is easier too Spend mental energy and time on complex features
  • 16. A CASE FOR ANGULAR Opinionated TypeScript as first-class citizen Scaling UX & UI development Leverage CLI for productivity
  • 17. TYPESCRIPT AS A FIRST-CLASS CITIZEN Syntactic sugar for JavaScript Superset of ES2015: Arrow functions Promises Spread Parameters … and many more! Gives us: Static analysis Symbol-based navigation Code completion Familiarity for backend engineers who are used to typed languages TypeScript ES2015 ES5 (JavaScript)
  • 18. TYPESCRIPT AS A FIRST-CLASS CITIZEN export class DatagridPropertyStringFilter<T = any> implements ClrDatagridStringFilterInterface<T> { private nestedProp: NestedProperty<T>; constructor(public prop: string, public exact = false) { this.nestedProp = new NestedProperty(prop); } accepts(item: T, search: string): boolean { const propValue = this.nestedProp.getPropValue(item); if (typeof propValue === 'undefined') { return false; } else if (this.exact) { return ('' + propValue).toLowerCase() === search; } else { return ('' + propValue).toLowerCase().indexOf(search) >= 0; } } } datagrid-propperty-string-filter.ts
  • 19. A CASE FOR ANGULAR Opinionated TypeScript as first-class citizen Scaling UX & UI development Leverage CLI for productivity
  • 23. A CASE FOR ANGULAR Opinionated TypeScript as first-class citizen Scaling UX & UI development Leverage CLI for productivity
  • 24. ANGULAR CLI - STARTING A NEW PROJECT $ ng new my-app The CLI tools are really powerful and convenient. After generating the project I have basically everything ready. (tsconfig, lint, karma, protractor, environments etc.) - VMware UI Engineer “
  • 25. ANGULAR SCHEMATICS Developed by Angular CLI team Custom scaffolding for the CLI Transformation pipeline Generate and modify code in filesystem Potential changes are staged then committed
  • 27. ANGULAR SCHEMATICS $ ng add @angular/material $ ng add @clr/angular $ ng add @nativescript/schematics $ ng add priming-schematics …
  • 28. ANGULAR SCHEMATICS AND UPDATES $ ng update @clr/angular UPDATE MESSAGES Update Warn Info Error
  • 29. <clr-dg-column-toggle> <clr-dg-column-toggle-title clrType="ok"> 好! </clr-dg-column-toggle-title> <clr-dg-column-toggle-button>全選!</…> </clr-dg-column-toggle> my.component.ts WARNING: Clarity has removed the ok button (clrType="ok") from the column hide/show panel in datagrid. Any custom <clr-dg-column-toggle-button> component will now default to clrType="selectAll" without needing the attribute. Please remove any custom ok button in the column hide/ show panel, and also remove the clrType attributes for buttons with clrType="selectAll" (src/app/account/ account.component.html) More info at https:// vmware.github.io/clarity/news/0.13.0-beta.2
  • 30. ANGULAR FOR THE ENTERPRISE Opinionated TypeScript as first-class citizen Scaling UX & UI development Leverage CLI for productivity