SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Name of the Speaker : Naveen Pete
Place: Bengaluru
http://www.unicomlearning.com/2016/DevCon/
DevCon 2016 – Bangalore
Date – 30th Nov – 2nd Dec
Introduction to Angular 2
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Agenda
1. Why Library or Framework?
2. Introducing Angular
3. TypeScript
4. Setting up Angular 2
5. Angular 2 Building Blocks
6. Code Walk-thru & Demo
7. Q & A
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
1. Why Library or Framework?
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Web BrowserWeb Server
URL Request to server
Response with Web page & Assets
User clicks on link, new Request
Response with Web page & Assets
HTML JavaScript
Browser loads up
entire web page
HTML JavaScript
Browser loads up
entire web page
Traditional Page Refresh
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Data Binding
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Benefits of Library or Framework
• Abstracts complexities of development
• Increases developer productivity
• Moving the application code forward in the stack
▫ Reduces server load, thus reducing cost
▫ Crowd-sourcing of computational power
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
2. Introducing Angular
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Introducing Angular
• Developed in 2009 by Misko Hevery
• Structural framework for building dynamic web apps
• Front-end SPA, RIA framework
• Build modular, maintainable and testable apps
• Current Release Versions
▫ Angular 1.5.9
▫ Angular 2.2
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Angular Benefits
• Build responsive apps for different platforms
• Helps you organize your code
• Data Binding and Dependency Injection eliminates much of the
manual code
• Decouple DOM manipulation from app logic
▫ Improves testability
• Decouple client side of an app from the server side
▫ Allows reuse
▫ Allows parallel development
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Responsive Page using Angular (or any other framework)
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Two-Way Data Binding
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
3. TypeScript
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
TypeScript
• Superset of JavaScript
• Chosen as main language by Angular 2
• By far most documentation & example-base uses TypeScript
• Why TypeScript?
▫ Strong Typing
 reduces compile-time errors, provides IDE support
▫ Next Gen JS Features
 Modules, Classes, Import, Export, …
▫ Missing JS Features
 Interfaces, Generics, …
Install TypeScript
[sudo] npm install –g typescript
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
4. Setting up Angular 2
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Setting up Angular
• Install Node (https://nodejs.org/en/)
• Install TypeScript – This is optional
• Install Angular CLI (https://cli.angular.io/)
• Create new Angular App
• Start the app
▫ ng serve
 Starts up development server
 Builds the app
> npm install –g typescript
> npm install –g angular-cli
> ng new first-app
> cd first-app
> ng serve
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
5. Angular 2 Building Blocks
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Module
ServiceComponentTemplate
Server
Directive
Pipe
Browser /
View
Router
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Module (NgModule)
• A block of highly related classes
• Organizes an application into cohesive blocks of functionality
• Every app has at least one module, called AppModule
@NgModule({
imports: [module1, module2, ...],
declarations: [
component(s), directive(s), pipe(s), ...
],
exports: [class1, class2, ...],
providers: [service1, service2, ...]
})
export class AppModule{ }
AppModule
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Component
• Encapsulates the template, data and the behavior of a view
• Every app has at least one component, called AppComponent
• Completely decoupled from the DOM
@Component({
selector: ‘rating’,
templateUrl: ‘./rating.component.html’,
styleUrls: [‘./rating.component.css’]
})
export class RatingComponent {
averageRating: number;
setRating(value) {
...
}
}
Creating Component
> ng g c product
AppComponent
HeaderComponent
RecipesComponent
ShoppingListComponent
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Template & Data Binding
• Defines component’s view
• Uses HTML and Angular’s template elements & attributes
• Data Binding
▫ Interpolation
 <h1>{{hero.name}}</h1>
▫ Property binding
 <img [src]=“heroImageUrl”>
▫ Event binding
 <li (click)=“selectHero(hero)”></li>
▫ Two-way data binding
 <input [(ngModel)]="hero.name">
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Template & Data Binding
Examples:
ShoppingListComponent
RecipeItemComponent
RecipeDetailComponent
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Directive
• Helps you to extend HTML to support dynamic behavior
• Transforms the DOM according to instructions given
• Can be built-in or custom
• Two kinds
▫ Structural – alter the layout. E.g. *ngFor, *ngIf
▫ Attribute – alter the appearance or behavior. E.g. ngModel, ngClass
@Directive({
selector: '[appRating]‘
})
export class RatingDirective {
...
}
Creating Custom
Directive
> ng g d rating
ShoppingListComponent
ShoppingListAddComponent
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Service
• Allows organizing and sharing code across an app
▫ AJAX calls
▫ Business rules
▫ Calculations
▫ Share data between components
@Injectable()
export class ProductService {
...
}
Creating Service
> ng g s product
RecipeService
ShoppingListService
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Dependency Injection
• Dependency: An object that can be used (a service)
• Injection: Passing of a dependency to a dependent object so that it
can use it. The client does not need to build the object
• Angular 2 uses constructor injection
@Component({
selector: 'rb-recipe-list',
templateUrl: './recipe-list.component.html‘,
providers: [RecipeService]
})
export class RecipeListComponent implements OnInit {
constructor(private recipeService: RecipeService) { }
}
RecipeListComponent
ShoppingListComponent
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Pipe
• Transforms displayed values within a template
• Does not modify underlying data
• Built-in pipes
▫ CurrencyPipe, DatePipe, JsonPipe, LowerCasePipe, UpperCasePipe
Creating Custom Pipe
> ng g p my-currency
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Router
• Enables navigation from one view to the next as users perform application tasks
• Maps a URL path to a component
• Steps
▫ Define array of routes using ‘Routes’
▫ Register routes with router module using ‘Router.forRoot()’
▫ Add the resulting module to ‘imports’ array of ‘AppModule’
▫ Add <router-outlet> element to the template
▫ Use ‘routerLink’ attribute directive in <a> tag to navigate to a specific route
 <a [routerLink]="['/recipes']">Recipes</a>
app.routing.ts
app.module.ts
app.component.html
header.component.html
recipe-item.component.html
recipe-detail.component.ts
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Server Communication – Angular Http Client
• Communicates with remote servers using HTTP protocol
• Uses browser’s XmlHttpRequest object
• Methods
▫ get()
▫ post()
▫ put()
▫ delete()
• Methods return Observable<Response>
RecipeService
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
6. Code Walk-thru & Demo
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
Recipe Book App
AppComponent
(rb-root)
HeaderComponent
(rb-header)
RecipesComponent
(rb-recipes)
RecipeListComponent
(rb-recipe-list)
RecipeItemComponent
(rb-recipe-item)
RecipeStartComponent
(rb-recipe-start)
RecipeDetailComponent
(rb-recipe-detail)
RecipeEditComponent
(rb-recipe-edit)
ShoppingListComponent
(rb-shopping-list)
ShoppingListAddComponent
(rb-shopping-list-add)
https://github.com/naveen-pete/ng-2 (Project: recipe-book)
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/
7. Q & A
World Conference Next Generation
Testing 2015
Speaker Name: Naveen Pete
Linked In: https://www.linkedin.com/in/naveen-pete
Organized by
UNICOM Trainings & Seminars Pvt. Ltd.
contact@unicomlearning.com
DevCon 2016 – Bangalore
http://www.unicomlearning.com/2016/DevCon/

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2Dhyego Fernando
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type scriptRavi Mone
 
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 2Maurice De Beijer [MVP]
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkCodemotion
 
Express: A Jump-Start
Express: A Jump-StartExpress: A Jump-Start
Express: A Jump-StartNaveen Pete
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersQuick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersPaweł Żurowski
 
Angular js 2
Angular js 2Angular js 2
Angular js 2Ran Wahle
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core conceptsCodemotion
 
Commit University - Exploring Angular 2
Commit University - Exploring Angular 2Commit University - Exploring Angular 2
Commit University - Exploring Angular 2Commit University
 
Angular 2 Crash Course
Angular  2 Crash CourseAngular  2 Crash Course
Angular 2 Crash CourseElisha Kramer
 
Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2 Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2 Ross Dederer
 
The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5Johannes Weber
 
Async patterns in javascript
Async patterns in javascriptAsync patterns in javascript
Async patterns in javascriptRan Wahle
 
Angular 2: What's New?
Angular 2: What's New?Angular 2: What's New?
Angular 2: What's New?jbandi
 
Angular 2... so can I use it now??
Angular 2... so can I use it now??Angular 2... so can I use it now??
Angular 2... so can I use it now??Laurent Duveau
 
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üllerSebastian Holstein
 

Was ist angesagt? (20)

Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type script
 
AngularJS2 / TypeScript / CLI
AngularJS2 / TypeScript / CLIAngularJS2 / TypeScript / CLI
AngularJS2 / TypeScript / CLI
 
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
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
 
Express: A Jump-Start
Express: A Jump-StartExpress: A Jump-Start
Express: A Jump-Start
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developersQuick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developers
 
Angular js 2
Angular js 2Angular js 2
Angular js 2
 
Angular 2: core concepts
Angular 2: core conceptsAngular 2: core concepts
Angular 2: core concepts
 
Commit University - Exploring Angular 2
Commit University - Exploring Angular 2Commit University - Exploring Angular 2
Commit University - Exploring Angular 2
 
Angular 2 Crash Course
Angular  2 Crash CourseAngular  2 Crash Course
Angular 2 Crash Course
 
Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2 Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2
 
The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5
 
Angular 2
Angular 2Angular 2
Angular 2
 
Async patterns in javascript
Async patterns in javascriptAsync patterns in javascript
Async patterns in javascript
 
Angular 2
Angular 2Angular 2
Angular 2
 
Angular 2: What's New?
Angular 2: What's New?Angular 2: What's New?
Angular 2: What's New?
 
Angular 2... so can I use it now??
Angular 2... so can I use it now??Angular 2... so can I use it now??
Angular 2... so can I use it now??
 
An Overview of Angular 4
An Overview of Angular 4 An Overview of Angular 4
An Overview of Angular 4
 
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
 

Ähnlich wie Introduction to Angular 2

Angular, the New Angular JS
Angular, the New Angular JSAngular, the New Angular JS
Angular, the New Angular JSKenzan
 
Angular4 getting started
Angular4 getting startedAngular4 getting started
Angular4 getting startedTejinderMakkar
 
Angular for rookies MS TechDays 2017
Angular for rookies MS TechDays 2017Angular for rookies MS TechDays 2017
Angular for rookies MS TechDays 2017Erik van Appeldoorn
 
Overview of the AngularJS framework
Overview of the AngularJS framework Overview of the AngularJS framework
Overview of the AngularJS framework Yakov Fain
 
AngularJS: Service, factory & provider
AngularJS: Service, factory & providerAngularJS: Service, factory & provider
AngularJS: Service, factory & providerCorley S.r.l.
 
Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016Luciano Murruni
 
Angular 6 Form Validation with Material
Angular 6 Form Validation with MaterialAngular 6 Form Validation with Material
Angular 6 Form Validation with MaterialMalika Munaweera
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to AngularjsGaurav Agrawal
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017Matt Raible
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.jsDev_Events
 
Angular meetup 2 2019-08-29
Angular meetup 2   2019-08-29Angular meetup 2   2019-08-29
Angular meetup 2 2019-08-29Nitin Bhojwani
 
Angular - Chapter 1 - Introduction
 Angular - Chapter 1 - Introduction Angular - Chapter 1 - Introduction
Angular - Chapter 1 - IntroductionWebStackAcademy
 
Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0Pece Nikolovski
 

Ähnlich wie Introduction to Angular 2 (20)

Angular 2.0
Angular  2.0Angular  2.0
Angular 2.0
 
Angular, the New Angular JS
Angular, the New Angular JSAngular, the New Angular JS
Angular, the New Angular JS
 
Angular4 getting started
Angular4 getting startedAngular4 getting started
Angular4 getting started
 
Angular for rookies MS TechDays 2017
Angular for rookies MS TechDays 2017Angular for rookies MS TechDays 2017
Angular for rookies MS TechDays 2017
 
Overview of the AngularJS framework
Overview of the AngularJS framework Overview of the AngularJS framework
Overview of the AngularJS framework
 
Angular js 2.0 beta
Angular js 2.0 betaAngular js 2.0 beta
Angular js 2.0 beta
 
Angular
AngularAngular
Angular
 
AngularJS: Service, factory & provider
AngularJS: Service, factory & providerAngularJS: Service, factory & provider
AngularJS: Service, factory & provider
 
Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016
 
mean stack
mean stackmean stack
mean stack
 
Angular IO
Angular IOAngular IO
Angular IO
 
Angular 6 Form Validation with Material
Angular 6 Form Validation with MaterialAngular 6 Form Validation with Material
Angular 6 Form Validation with Material
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to Angularjs
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.js
 
Angular meetup 2 2019-08-29
Angular meetup 2   2019-08-29Angular meetup 2   2019-08-29
Angular meetup 2 2019-08-29
 
Angular Js Basics
Angular Js BasicsAngular Js Basics
Angular Js Basics
 
Angular - Chapter 1 - Introduction
 Angular - Chapter 1 - Introduction Angular - Chapter 1 - Introduction
Angular - Chapter 1 - Introduction
 
Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0Consuming Restful APIs using Swagger v2.0
Consuming Restful APIs using Swagger v2.0
 
Angular js workshop
Angular js workshopAngular js workshop
Angular js workshop
 

Kürzlich hochgeladen

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
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...Shane Coughlan
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
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...SelfMade bd
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%+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
 
%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 masabamasaba
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
%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 midrandmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
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...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
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...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+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...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%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
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%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
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

Introduction to Angular 2

  • 1. Name of the Speaker : Naveen Pete Place: Bengaluru http://www.unicomlearning.com/2016/DevCon/ DevCon 2016 – Bangalore Date – 30th Nov – 2nd Dec Introduction to Angular 2
  • 2. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Agenda 1. Why Library or Framework? 2. Introducing Angular 3. TypeScript 4. Setting up Angular 2 5. Angular 2 Building Blocks 6. Code Walk-thru & Demo 7. Q & A
  • 3. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 1. Why Library or Framework?
  • 4. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Web BrowserWeb Server URL Request to server Response with Web page & Assets User clicks on link, new Request Response with Web page & Assets HTML JavaScript Browser loads up entire web page HTML JavaScript Browser loads up entire web page Traditional Page Refresh
  • 5. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Data Binding
  • 6. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Benefits of Library or Framework • Abstracts complexities of development • Increases developer productivity • Moving the application code forward in the stack ▫ Reduces server load, thus reducing cost ▫ Crowd-sourcing of computational power
  • 7. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 2. Introducing Angular
  • 8. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Introducing Angular • Developed in 2009 by Misko Hevery • Structural framework for building dynamic web apps • Front-end SPA, RIA framework • Build modular, maintainable and testable apps • Current Release Versions ▫ Angular 1.5.9 ▫ Angular 2.2
  • 9. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Angular Benefits • Build responsive apps for different platforms • Helps you organize your code • Data Binding and Dependency Injection eliminates much of the manual code • Decouple DOM manipulation from app logic ▫ Improves testability • Decouple client side of an app from the server side ▫ Allows reuse ▫ Allows parallel development
  • 10. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Responsive Page using Angular (or any other framework)
  • 11. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Two-Way Data Binding
  • 12. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 3. TypeScript
  • 13. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ TypeScript • Superset of JavaScript • Chosen as main language by Angular 2 • By far most documentation & example-base uses TypeScript • Why TypeScript? ▫ Strong Typing  reduces compile-time errors, provides IDE support ▫ Next Gen JS Features  Modules, Classes, Import, Export, … ▫ Missing JS Features  Interfaces, Generics, … Install TypeScript [sudo] npm install –g typescript
  • 14. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 4. Setting up Angular 2
  • 15. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Setting up Angular • Install Node (https://nodejs.org/en/) • Install TypeScript – This is optional • Install Angular CLI (https://cli.angular.io/) • Create new Angular App • Start the app ▫ ng serve  Starts up development server  Builds the app > npm install –g typescript > npm install –g angular-cli > ng new first-app > cd first-app > ng serve
  • 16. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 5. Angular 2 Building Blocks
  • 17. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Module ServiceComponentTemplate Server Directive Pipe Browser / View Router
  • 18. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Module (NgModule) • A block of highly related classes • Organizes an application into cohesive blocks of functionality • Every app has at least one module, called AppModule @NgModule({ imports: [module1, module2, ...], declarations: [ component(s), directive(s), pipe(s), ... ], exports: [class1, class2, ...], providers: [service1, service2, ...] }) export class AppModule{ } AppModule
  • 19. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Component • Encapsulates the template, data and the behavior of a view • Every app has at least one component, called AppComponent • Completely decoupled from the DOM @Component({ selector: ‘rating’, templateUrl: ‘./rating.component.html’, styleUrls: [‘./rating.component.css’] }) export class RatingComponent { averageRating: number; setRating(value) { ... } } Creating Component > ng g c product AppComponent HeaderComponent RecipesComponent ShoppingListComponent
  • 20. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Template & Data Binding • Defines component’s view • Uses HTML and Angular’s template elements & attributes • Data Binding ▫ Interpolation  <h1>{{hero.name}}</h1> ▫ Property binding  <img [src]=“heroImageUrl”> ▫ Event binding  <li (click)=“selectHero(hero)”></li> ▫ Two-way data binding  <input [(ngModel)]="hero.name">
  • 21. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Template & Data Binding Examples: ShoppingListComponent RecipeItemComponent RecipeDetailComponent
  • 22. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Directive • Helps you to extend HTML to support dynamic behavior • Transforms the DOM according to instructions given • Can be built-in or custom • Two kinds ▫ Structural – alter the layout. E.g. *ngFor, *ngIf ▫ Attribute – alter the appearance or behavior. E.g. ngModel, ngClass @Directive({ selector: '[appRating]‘ }) export class RatingDirective { ... } Creating Custom Directive > ng g d rating ShoppingListComponent ShoppingListAddComponent
  • 23. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Service • Allows organizing and sharing code across an app ▫ AJAX calls ▫ Business rules ▫ Calculations ▫ Share data between components @Injectable() export class ProductService { ... } Creating Service > ng g s product RecipeService ShoppingListService
  • 24. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Dependency Injection • Dependency: An object that can be used (a service) • Injection: Passing of a dependency to a dependent object so that it can use it. The client does not need to build the object • Angular 2 uses constructor injection @Component({ selector: 'rb-recipe-list', templateUrl: './recipe-list.component.html‘, providers: [RecipeService] }) export class RecipeListComponent implements OnInit { constructor(private recipeService: RecipeService) { } } RecipeListComponent ShoppingListComponent
  • 25. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Pipe • Transforms displayed values within a template • Does not modify underlying data • Built-in pipes ▫ CurrencyPipe, DatePipe, JsonPipe, LowerCasePipe, UpperCasePipe Creating Custom Pipe > ng g p my-currency
  • 26. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Router • Enables navigation from one view to the next as users perform application tasks • Maps a URL path to a component • Steps ▫ Define array of routes using ‘Routes’ ▫ Register routes with router module using ‘Router.forRoot()’ ▫ Add the resulting module to ‘imports’ array of ‘AppModule’ ▫ Add <router-outlet> element to the template ▫ Use ‘routerLink’ attribute directive in <a> tag to navigate to a specific route  <a [routerLink]="['/recipes']">Recipes</a> app.routing.ts app.module.ts app.component.html header.component.html recipe-item.component.html recipe-detail.component.ts
  • 27. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Server Communication – Angular Http Client • Communicates with remote servers using HTTP protocol • Uses browser’s XmlHttpRequest object • Methods ▫ get() ▫ post() ▫ put() ▫ delete() • Methods return Observable<Response> RecipeService
  • 28. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 6. Code Walk-thru & Demo
  • 29. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ Recipe Book App AppComponent (rb-root) HeaderComponent (rb-header) RecipesComponent (rb-recipes) RecipeListComponent (rb-recipe-list) RecipeItemComponent (rb-recipe-item) RecipeStartComponent (rb-recipe-start) RecipeDetailComponent (rb-recipe-detail) RecipeEditComponent (rb-recipe-edit) ShoppingListComponent (rb-shopping-list) ShoppingListAddComponent (rb-shopping-list-add) https://github.com/naveen-pete/ng-2 (Project: recipe-book)
  • 30. DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/ 7. Q & A
  • 31. World Conference Next Generation Testing 2015 Speaker Name: Naveen Pete Linked In: https://www.linkedin.com/in/naveen-pete Organized by UNICOM Trainings & Seminars Pvt. Ltd. contact@unicomlearning.com DevCon 2016 – Bangalore http://www.unicomlearning.com/2016/DevCon/