SlideShare a Scribd company logo
1 of 41
Download to read offline
ROME 27-28 March 2015
AngularJS 2.0:
A natural evolvement or a new
beginning
Boyan Mihaylov
@bmihaylov
ROME 27-28 March 2015
Agenda
• How It All Started
• The Changing Web
• JavaScript Evolution
• Angular 2.0
• What Is The Future
• Q&A
ROME 27-28 March 2015
About me
• 7+ years professional experience
• Find-the-right-tool mindset
• Conference & university speaker
• Like sharing and discussions
• Improv actor
ROME 27-28 March 2015
How It All Started
• Started by Miško Hevery and Adam Abrons in 2009
• First name was GetAngular
• Intended as an end-to-end tool for web designers
Miško HeveryAdam Abrons
ROME 27-28 March 2015
Google Takes Over
• Miško started working on a project in Google
Google
Web
Toolkit
6
months
17 000
lines of code
Angular
JS3
weeks
1 500
lines of code
ROME 27-28 March 2015
Google Trends 2011-2015
ROME 27-28 March 2015
LinkedIn Skills Search
0
20 000
40 000
60 000
80 000
100 000
120 000
140 000
AngularJS Backbone.js Knockout.js Ember.js
ROME 27-28 March 2015
Key Principles
D.R.Y.Structure Testability
ROME 27-28 March 2015
Model-View-Something
• Model-View-*
• Controller, Presenter, ViewModel, …
Controller
ServiceServiceService
Model
manipulate
fetch
data
View
data bind
interact
update
ROME 27-28 March 2015
Example #1: Controllers
var app = angular.module('Codemotion', []);
app.factory('Attendees', function($http) {
return {
getAll: function() {
return $http.get('/api/attendees');
}
};
});
app.controller('WelcomeCtrl', function($scope, Attendees) {
Attendees.getAll().success(function (attendees) {
$scope.attendees = attendees;
});
});
index.js
ROME 27-28 March 2015
Example #1: Controllers
…
<ul ng-controller="WelcomeCtrl">
<li ng-repeat="attendee in attendees">
{{attendee.name}}, {{attendee.company}}
</li>
</ul>
…
index.html
ROME 27-28 March 2015
Scopes
$rootScope
$isolatedScopeA $isolatedScopeB $scopeA
$scopeA1 $scopeA2
$scopeA11 $scopeA12
ROME 27-28 March 2015
Components
• Are called directives
• Hardcoded vs. external template
• Isolated vs. child scope
• Can be rendered in 4 ways
• Custom HTML tag
• Attribute
• Class
• Comment
ROME 27-28 March 2015
Example #2: Directives
index.js
var app = angular.module('Codemotion', []);
app.directive('welcome', function() {
return {
restrict: 'EA',
scope: { to: '@' },
template: '<h1>Welcome to {{to}}!</h1>'
};
});
…
<welcome to="Rome"></welcome>
…
index.html
ROME 27-28 March 2015
The Changing Web
Change is the law of life. And those who
look only to the past or present are
certain to miss the future.
John F. Kennedy
ROME 27-28 March 2015
The Changing Web
http://solutions.wolterskluwer.com/blog/2011/09/call-my-agent-evolution-in-information-retrieval/webtimeline/
ROME 27-28 March 2015
The Changing Web
Mobile, mobile,mobile Evergreen browsers
ROME 27-28 March 2015
WebComponents.org
• A standard for web components
• Encapsulation and reusability
• Specifications
• Create custom HTML elements
• Import of one HTML documents into another
• Define templates (HTML fragments)
• Shadow DOM for betterencapsulation
ROME 27-28 March 2015
JavaScript Evolution
• Both in the browser and on the server
• Tons of frameworks and libraries
Drinking game for web developers
1. Think of a random noun
2. Google "[noun].js"
3. If a library with that name exists – drink
ROME 27-28 March 2015
JavaScript Evolution
• Current version is ECMAScript 5
• Coding trends
• Pass callbacks around
• Create classes
• Encapsulate in modules
ROME 27-28 March 2015
JavaScript.next
• Next version is ECMAScript 6
• What you wished is what you get
• Classes
• Arrow functions (lambdas)
• Module system
• …and many, many others
ROME 27-28 March 2015
Example #3: ES6
class Conference {
constructor(name) {
this.name = name;
this.attendees = [];
}
accept(attendee) {
this.attendees.push(attendee);
}
welcomeAll() {
this.attendees.forEach((name) => {
console.log(`${this.name} welcomes
${name}`);
});
}
}
ES6
function Conference(name) {
this.name = name;
this.attendees = [];
}
Conference.prototype.accept =
function(attendee) {
this.attendees.push(attendee);
};
Conference.prototype.welcomeAll =
function() {
this.attendees.forEach(function(name) {
console.log(this.name + ' welcomes ' +
name);
});
};
ES5
var codemotion = new Conference('Codemotion');
codemotion.accept('Andrea');
codemotion.accept('Felipe');
codemotion.welcomeAll();
ROME 27-28 March 2015
ES6 Today
• Expected date of ES6 – the end of 2015
• By evergreenbrowsers
BUT, you can use it today!
ROME 27-28 March 2015
AngularJS 2.0
AngularJS 1.x is built for current
browsers while AngularJS 2.0 is being
built for the browsers of the future.
Igor Minaz, AngularJS Team
ROME 27-28 March 2015
http://angular.io
ROME 27-28 March 2015
The New Script
• Angular 2.0 applications are written in ES6
• ES5 is still usable,if one misses it
• New features on top of ES6
• Metadata annotations
• Type system
ROME 27-28 March 2015
The New Script
• ES6 + Annotations + Types = AtScript
• Microsoft + Google = TypeScript + AtScript
Annotations
Types
ES6
ES5
ROME 27-28 March 2015
Example #4: TypeScript
index.js (ES5)
app.directive('welcome', function() {
return {
scope: { to: '@' },
template: '<h1>Welcome to {{to}}!</h1>'
};
});
…
<welcome to="Rome"></welcome>
…
index.html
@Component({ selector: 'welcome' })
@Template({
inline: '<h1>Welcome to {{to}}</h1>'
})
class WelcomeComponent {
constructor(element: NgElememt) {
this.to = element.getAttribute('to');
}
}
index.js (ES6)
ROME 27-28 March 2015
Change Detection
Conference App Components
ConferenceApp
SearchBar
SpeakerList
Speaker
Pager
Speaker Speaker
ROME 27-28 March 2015
Change Detection
• A change detector class for every component
• It happens behind the scene
• The change detection graph is a tree
• No more two-way bindings
• Support for immutable objects
ROME 27-28 March 2015
Change Detection
Any performance benefits?
3-10x
ROME 27-28 March 2015
Templating
• Simpler definition of directives
• Decorator
• Template
• Component
• Integration with other component frameworks via
WebComponents.org
• Allow IDEs to identify and validate templates
ROME 27-28 March 2015
Example #5: Templating
@Component({ selector: 'conference' })
@Template({
url: 'conference.html',
directives: [Foreach]
})
class ConferenceApp {
constructor() {
this.speakers = [];
}
addSpeaker(speaker) {
this.speakers.push(speaker);
}
view(speaker) {
console.log(`View ${speaker.name}`);
}
}
conference.js
…
<conference></conference>
…
index.html
ROME 27-28 March 2015
Example #5: Templating
conference.html
<ul>
<li *foreach="#speaker of speakers">
<img [src]="speaker.image">
<h3>{{speaker.name}}</h3>
<p>{{speaker.bio}}</p>
<button (click)="view(speaker)">view</button>
</li>
</ul>
ng-repeat
Property
binding
Event
binding
ROME 27-28 March 2015
Play Today
http://bit.ly/angular2-play
ROME 27-28 March 2015
Providers, factories, services, …?
• They are all gone!
• Replaced by (ES6) classes
• Simpler definition
• Dependencyinjection is still available
ROME 27-28 March 2015
The New Direction
ES6
(TypeScript)
Web
Components
IDE
Support
Better
Performance
Modularity
ROME 27-28 March 2015
What Is The Future
[…] we also know that Angular can be
significantly simpler […]
Igor Minaz, AngularJS Team
ROME 27-28 March 2015
Angular Evolution
• From a side project
• To an internal tool at Google
• To a tool for everyone
• To a …
ROME 27-28 March 2015
Final Words
• Angular 2.0 feels like a new framework
• Many of the old concepts are removed
• Once you learn it, you can apply it everywhere
• Integration (web components)
• Community-driven projects should be rewritten
ROME 27-28 March 2015
Grazie!
http://bit.ly/cdm-angular2
Rate meGet in touch
hey@boyan.in
@bmihaylov

More Related Content

What's hot

Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2Dor Moshe
 
Angular 2 + TypeScript = true. Let's Play!
Angular 2 + TypeScript = true. Let's Play!Angular 2 + TypeScript = true. Let's Play!
Angular 2 + TypeScript = true. Let's Play!Sirar Salih
 
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
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2Dawid Myslak
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training Patrick Schroeder
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type scriptRavi Mone
 
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
 
Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2Knoldus Inc.
 
Dive into Angular, part 4: Angular 2.0
Dive into Angular, part 4: Angular 2.0Dive into Angular, part 4: Angular 2.0
Dive into Angular, part 4: Angular 2.0Oleksii Prohonnyi
 
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Codemotion
 
Angular 4 and TypeScript
Angular 4 and TypeScriptAngular 4 and TypeScript
Angular 4 and TypeScriptAhmed El-Kady
 
Angular js 2
Angular js 2Angular js 2
Angular js 2Ran Wahle
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2Ron Heft
 
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]
 
Angular 4 Introduction Tutorial
Angular 4 Introduction TutorialAngular 4 Introduction Tutorial
Angular 4 Introduction TutorialScott Lee
 
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
 

What's hot (20)

Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
 
Angular 2 + TypeScript = true. Let's Play!
Angular 2 + TypeScript = true. Let's Play!Angular 2 + TypeScript = true. Let's Play!
Angular 2 + TypeScript = true. Let's Play!
 
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 5
Angular 5Angular 5
Angular 5
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
 
Angular2 with type script
Angular2 with type scriptAngular2 with type script
Angular2 with type script
 
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
 
Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2
 
React js
React jsReact js
React js
 
Dive into Angular, part 4: Angular 2.0
Dive into Angular, part 4: Angular 2.0Dive into Angular, part 4: Angular 2.0
Dive into Angular, part 4: Angular 2.0
 
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016
Understanding Angular 2 - Shmuela Jacobs - Codemotion Milan 2016
 
Angular 2
Angular 2Angular 2
Angular 2
 
Angular 4 and TypeScript
Angular 4 and TypeScriptAngular 4 and TypeScript
Angular 4 and TypeScript
 
Angular js 2
Angular js 2Angular js 2
Angular js 2
 
Angular 4
Angular 4Angular 4
Angular 4
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2
 
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
 
Angular 4 Introduction Tutorial
Angular 4 Introduction TutorialAngular 4 Introduction Tutorial
Angular 4 Introduction Tutorial
 
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
 

Viewers also liked

The Art of Angular in 2016 - vJUG24
The Art of Angular in 2016 - vJUG24The Art of Angular in 2016 - vJUG24
The Art of Angular in 2016 - vJUG24Matt Raible
 
What's New in JHipsterLand - DevNexus 2017
What's New in JHipsterLand - DevNexus 2017What's New in JHipsterLand - DevNexus 2017
What's New in JHipsterLand - DevNexus 2017Matt Raible
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Horacio Gonzalez
 
Tech talk polymer
Tech talk polymerTech talk polymer
Tech talk polymerYanuar W
 
Chrome Dev Summit Highlights (NYC GDG Dec 2013)
Chrome Dev Summit Highlights (NYC GDG Dec 2013)Chrome Dev Summit Highlights (NYC GDG Dec 2013)
Chrome Dev Summit Highlights (NYC GDG Dec 2013)Nitya Narasimhan
 
Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Nitya Narasimhan
 
The Beautiful Simplicity of ES2015
The Beautiful Simplicity of ES2015The Beautiful Simplicity of ES2015
The Beautiful Simplicity of ES2015Brandon Belvin
 
Apresentação Google I/O Extended Vitória
Apresentação Google I/O Extended VitóriaApresentação Google I/O Extended Vitória
Apresentação Google I/O Extended VitóriaFabiano Monte
 
Polymer and Firebase: Componentizing the Web in Realtime
Polymer and Firebase: Componentizing the Web in RealtimePolymer and Firebase: Componentizing the Web in Realtime
Polymer and Firebase: Componentizing the Web in RealtimeJuarez Filho
 
Um salve para evolução! construindo uma nova web com polymer
Um salve para evolução! construindo uma nova web com  polymerUm salve para evolução! construindo uma nova web com  polymer
Um salve para evolução! construindo uma nova web com polymerMarcus Silva
 
Material Design - do smartphone ao desktop
Material Design - do smartphone ao desktopMaterial Design - do smartphone ao desktop
Material Design - do smartphone ao desktopHillary Sousa
 
Polymer Elements: Tudo que você precisa saber para criar a web
Polymer Elements: Tudo que você precisa saber para criar a webPolymer Elements: Tudo que você precisa saber para criar a web
Polymer Elements: Tudo que você precisa saber para criar a webBeto Muniz
 
WebApps com Web Components
WebApps com Web ComponentsWebApps com Web Components
WebApps com Web ComponentsBeto Muniz
 
Angular 2 overview workshop
Angular 2 overview workshopAngular 2 overview workshop
Angular 2 overview workshopDenis Gorbunov
 

Viewers also liked (20)

The Art of Angular in 2016 - vJUG24
The Art of Angular in 2016 - vJUG24The Art of Angular in 2016 - vJUG24
The Art of Angular in 2016 - vJUG24
 
What's New in JHipsterLand - DevNexus 2017
What's New in JHipsterLand - DevNexus 2017What's New in JHipsterLand - DevNexus 2017
What's New in JHipsterLand - DevNexus 2017
 
Workshop de Web Components
Workshop de Web ComponentsWorkshop de Web Components
Workshop de Web Components
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
 
Polymer Starter Kit
Polymer Starter KitPolymer Starter Kit
Polymer Starter Kit
 
Tech talk polymer
Tech talk polymerTech talk polymer
Tech talk polymer
 
Chrome Dev Summit Highlights (NYC GDG Dec 2013)
Chrome Dev Summit Highlights (NYC GDG Dec 2013)Chrome Dev Summit Highlights (NYC GDG Dec 2013)
Chrome Dev Summit Highlights (NYC GDG Dec 2013)
 
Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)Introduction To Dart (GDG NY Jan 2014 Meetup)
Introduction To Dart (GDG NY Jan 2014 Meetup)
 
The Beautiful Simplicity of ES2015
The Beautiful Simplicity of ES2015The Beautiful Simplicity of ES2015
The Beautiful Simplicity of ES2015
 
Material design
Material designMaterial design
Material design
 
Web components
Web componentsWeb components
Web components
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Apresentação Google I/O Extended Vitória
Apresentação Google I/O Extended VitóriaApresentação Google I/O Extended Vitória
Apresentação Google I/O Extended Vitória
 
Polymer and Firebase: Componentizing the Web in Realtime
Polymer and Firebase: Componentizing the Web in RealtimePolymer and Firebase: Componentizing the Web in Realtime
Polymer and Firebase: Componentizing the Web in Realtime
 
Um salve para evolução! construindo uma nova web com polymer
Um salve para evolução! construindo uma nova web com  polymerUm salve para evolução! construindo uma nova web com  polymer
Um salve para evolução! construindo uma nova web com polymer
 
Material Design - do smartphone ao desktop
Material Design - do smartphone ao desktopMaterial Design - do smartphone ao desktop
Material Design - do smartphone ao desktop
 
Polymer Elements: Tudo que você precisa saber para criar a web
Polymer Elements: Tudo que você precisa saber para criar a webPolymer Elements: Tudo que você precisa saber para criar a web
Polymer Elements: Tudo que você precisa saber para criar a web
 
Angular js gtg-27feb2013
Angular js gtg-27feb2013Angular js gtg-27feb2013
Angular js gtg-27feb2013
 
WebApps com Web Components
WebApps com Web ComponentsWebApps com Web Components
WebApps com Web Components
 
Angular 2 overview workshop
Angular 2 overview workshopAngular 2 overview workshop
Angular 2 overview workshop
 

Similar to AngularJS 2.0: A natural evolvement or a new beginning - Boyan Mihaylov - Codemotion Rome 2015

Introducing the New DSpace User Interface
Introducing the New DSpace User InterfaceIntroducing the New DSpace User Interface
Introducing the New DSpace User InterfaceTim Donohue
 
JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015
JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015
JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015Codemotion
 
JavaScript Power Tools 2015
JavaScript Power Tools 2015JavaScript Power Tools 2015
JavaScript Power Tools 2015Marcello Teodori
 
Fun with Functional JavaScript - Kuba Waliński - Codemotion Rome 2015
Fun with Functional JavaScript  - Kuba Waliński - Codemotion Rome 2015Fun with Functional JavaScript  - Kuba Waliński - Codemotion Rome 2015
Fun with Functional JavaScript - Kuba Waliński - Codemotion Rome 2015Codemotion
 
Feature Bits at LSSC10
Feature  Bits at LSSC10Feature  Bits at LSSC10
Feature Bits at LSSC10Erik Sowa
 
Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0Matt Warren
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryAlek Davis
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshopbtopro
 
Sitecore Helix/Habitat Architecture and Ecosystem
Sitecore Helix/Habitat Architecture and EcosystemSitecore Helix/Habitat Architecture and Ecosystem
Sitecore Helix/Habitat Architecture and EcosystemMohamed Krimi
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryAlek Davis
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIsGiuseppe Marchi
 
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...Sébastien Levert
 
Getting started with html5
Getting started with html5Getting started with html5
Getting started with html5Suresh Kumar
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN StackTroy Miles
 
Salvatore Laisa - Da Angular a React - Un viaggio inaspettato
Salvatore Laisa - Da Angular a React - Un viaggio inaspettatoSalvatore Laisa - Da Angular a React - Un viaggio inaspettato
Salvatore Laisa - Da Angular a React - Un viaggio inaspettatoCodemotion
 

Similar to AngularJS 2.0: A natural evolvement or a new beginning - Boyan Mihaylov - Codemotion Rome 2015 (20)

Introducing the New DSpace User Interface
Introducing the New DSpace User InterfaceIntroducing the New DSpace User Interface
Introducing the New DSpace User Interface
 
JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015
JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015
JavaScript Power Tools 2015 - Marcello Teodori - Codemotion Rome 2015
 
JavaScript Power Tools 2015
JavaScript Power Tools 2015JavaScript Power Tools 2015
JavaScript Power Tools 2015
 
Fun with Functional JavaScript - Kuba Waliński - Codemotion Rome 2015
Fun with Functional JavaScript  - Kuba Waliński - Codemotion Rome 2015Fun with Functional JavaScript  - Kuba Waliński - Codemotion Rome 2015
Fun with Functional JavaScript - Kuba Waliński - Codemotion Rome 2015
 
Feature Bits at LSSC10
Feature  Bits at LSSC10Feature  Bits at LSSC10
Feature Bits at LSSC10
 
Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0Microsoft & open source a 'brave new world' - CORESTART 2.0
Microsoft & open source a 'brave new world' - CORESTART 2.0
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQuery
 
PnP Monthly Community Call - April 2018
PnP Monthly Community Call - April 2018PnP Monthly Community Call - April 2018
PnP Monthly Community Call - April 2018
 
Open Apereo - Web components workshop
Open Apereo - Web components workshopOpen Apereo - Web components workshop
Open Apereo - Web components workshop
 
Sitecore Helix/Habitat Architecture and Ecosystem
Sitecore Helix/Habitat Architecture and EcosystemSitecore Helix/Habitat Architecture and Ecosystem
Sitecore Helix/Habitat Architecture and Ecosystem
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQuery
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIs
 
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
SharePoint Wednesday Port Elisabeth - Introduction to AngularJS with the Micr...
 
Getting started with html5
Getting started with html5Getting started with html5
Getting started with html5
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN Stack
 
Salvatore Laisa - Da Angular a React - Un viaggio inaspettato
Salvatore Laisa - Da Angular a React - Un viaggio inaspettatoSalvatore Laisa - Da Angular a React - Un viaggio inaspettato
Salvatore Laisa - Da Angular a React - Un viaggio inaspettato
 

More from Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Recently uploaded

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

AngularJS 2.0: A natural evolvement or a new beginning - Boyan Mihaylov - Codemotion Rome 2015

  • 1. ROME 27-28 March 2015 AngularJS 2.0: A natural evolvement or a new beginning Boyan Mihaylov @bmihaylov
  • 2. ROME 27-28 March 2015 Agenda • How It All Started • The Changing Web • JavaScript Evolution • Angular 2.0 • What Is The Future • Q&A
  • 3. ROME 27-28 March 2015 About me • 7+ years professional experience • Find-the-right-tool mindset • Conference & university speaker • Like sharing and discussions • Improv actor
  • 4. ROME 27-28 March 2015 How It All Started • Started by Miško Hevery and Adam Abrons in 2009 • First name was GetAngular • Intended as an end-to-end tool for web designers Miško HeveryAdam Abrons
  • 5. ROME 27-28 March 2015 Google Takes Over • Miško started working on a project in Google Google Web Toolkit 6 months 17 000 lines of code Angular JS3 weeks 1 500 lines of code
  • 6. ROME 27-28 March 2015 Google Trends 2011-2015
  • 7. ROME 27-28 March 2015 LinkedIn Skills Search 0 20 000 40 000 60 000 80 000 100 000 120 000 140 000 AngularJS Backbone.js Knockout.js Ember.js
  • 8. ROME 27-28 March 2015 Key Principles D.R.Y.Structure Testability
  • 9. ROME 27-28 March 2015 Model-View-Something • Model-View-* • Controller, Presenter, ViewModel, … Controller ServiceServiceService Model manipulate fetch data View data bind interact update
  • 10. ROME 27-28 March 2015 Example #1: Controllers var app = angular.module('Codemotion', []); app.factory('Attendees', function($http) { return { getAll: function() { return $http.get('/api/attendees'); } }; }); app.controller('WelcomeCtrl', function($scope, Attendees) { Attendees.getAll().success(function (attendees) { $scope.attendees = attendees; }); }); index.js
  • 11. ROME 27-28 March 2015 Example #1: Controllers … <ul ng-controller="WelcomeCtrl"> <li ng-repeat="attendee in attendees"> {{attendee.name}}, {{attendee.company}} </li> </ul> … index.html
  • 12. ROME 27-28 March 2015 Scopes $rootScope $isolatedScopeA $isolatedScopeB $scopeA $scopeA1 $scopeA2 $scopeA11 $scopeA12
  • 13. ROME 27-28 March 2015 Components • Are called directives • Hardcoded vs. external template • Isolated vs. child scope • Can be rendered in 4 ways • Custom HTML tag • Attribute • Class • Comment
  • 14. ROME 27-28 March 2015 Example #2: Directives index.js var app = angular.module('Codemotion', []); app.directive('welcome', function() { return { restrict: 'EA', scope: { to: '@' }, template: '<h1>Welcome to {{to}}!</h1>' }; }); … <welcome to="Rome"></welcome> … index.html
  • 15. ROME 27-28 March 2015 The Changing Web Change is the law of life. And those who look only to the past or present are certain to miss the future. John F. Kennedy
  • 16. ROME 27-28 March 2015 The Changing Web http://solutions.wolterskluwer.com/blog/2011/09/call-my-agent-evolution-in-information-retrieval/webtimeline/
  • 17. ROME 27-28 March 2015 The Changing Web Mobile, mobile,mobile Evergreen browsers
  • 18. ROME 27-28 March 2015 WebComponents.org • A standard for web components • Encapsulation and reusability • Specifications • Create custom HTML elements • Import of one HTML documents into another • Define templates (HTML fragments) • Shadow DOM for betterencapsulation
  • 19. ROME 27-28 March 2015 JavaScript Evolution • Both in the browser and on the server • Tons of frameworks and libraries Drinking game for web developers 1. Think of a random noun 2. Google "[noun].js" 3. If a library with that name exists – drink
  • 20. ROME 27-28 March 2015 JavaScript Evolution • Current version is ECMAScript 5 • Coding trends • Pass callbacks around • Create classes • Encapsulate in modules
  • 21. ROME 27-28 March 2015 JavaScript.next • Next version is ECMAScript 6 • What you wished is what you get • Classes • Arrow functions (lambdas) • Module system • …and many, many others
  • 22. ROME 27-28 March 2015 Example #3: ES6 class Conference { constructor(name) { this.name = name; this.attendees = []; } accept(attendee) { this.attendees.push(attendee); } welcomeAll() { this.attendees.forEach((name) => { console.log(`${this.name} welcomes ${name}`); }); } } ES6 function Conference(name) { this.name = name; this.attendees = []; } Conference.prototype.accept = function(attendee) { this.attendees.push(attendee); }; Conference.prototype.welcomeAll = function() { this.attendees.forEach(function(name) { console.log(this.name + ' welcomes ' + name); }); }; ES5 var codemotion = new Conference('Codemotion'); codemotion.accept('Andrea'); codemotion.accept('Felipe'); codemotion.welcomeAll();
  • 23. ROME 27-28 March 2015 ES6 Today • Expected date of ES6 – the end of 2015 • By evergreenbrowsers BUT, you can use it today!
  • 24. ROME 27-28 March 2015 AngularJS 2.0 AngularJS 1.x is built for current browsers while AngularJS 2.0 is being built for the browsers of the future. Igor Minaz, AngularJS Team
  • 25. ROME 27-28 March 2015 http://angular.io
  • 26. ROME 27-28 March 2015 The New Script • Angular 2.0 applications are written in ES6 • ES5 is still usable,if one misses it • New features on top of ES6 • Metadata annotations • Type system
  • 27. ROME 27-28 March 2015 The New Script • ES6 + Annotations + Types = AtScript • Microsoft + Google = TypeScript + AtScript Annotations Types ES6 ES5
  • 28. ROME 27-28 March 2015 Example #4: TypeScript index.js (ES5) app.directive('welcome', function() { return { scope: { to: '@' }, template: '<h1>Welcome to {{to}}!</h1>' }; }); … <welcome to="Rome"></welcome> … index.html @Component({ selector: 'welcome' }) @Template({ inline: '<h1>Welcome to {{to}}</h1>' }) class WelcomeComponent { constructor(element: NgElememt) { this.to = element.getAttribute('to'); } } index.js (ES6)
  • 29. ROME 27-28 March 2015 Change Detection Conference App Components ConferenceApp SearchBar SpeakerList Speaker Pager Speaker Speaker
  • 30. ROME 27-28 March 2015 Change Detection • A change detector class for every component • It happens behind the scene • The change detection graph is a tree • No more two-way bindings • Support for immutable objects
  • 31. ROME 27-28 March 2015 Change Detection Any performance benefits? 3-10x
  • 32. ROME 27-28 March 2015 Templating • Simpler definition of directives • Decorator • Template • Component • Integration with other component frameworks via WebComponents.org • Allow IDEs to identify and validate templates
  • 33. ROME 27-28 March 2015 Example #5: Templating @Component({ selector: 'conference' }) @Template({ url: 'conference.html', directives: [Foreach] }) class ConferenceApp { constructor() { this.speakers = []; } addSpeaker(speaker) { this.speakers.push(speaker); } view(speaker) { console.log(`View ${speaker.name}`); } } conference.js … <conference></conference> … index.html
  • 34. ROME 27-28 March 2015 Example #5: Templating conference.html <ul> <li *foreach="#speaker of speakers"> <img [src]="speaker.image"> <h3>{{speaker.name}}</h3> <p>{{speaker.bio}}</p> <button (click)="view(speaker)">view</button> </li> </ul> ng-repeat Property binding Event binding
  • 35. ROME 27-28 March 2015 Play Today http://bit.ly/angular2-play
  • 36. ROME 27-28 March 2015 Providers, factories, services, …? • They are all gone! • Replaced by (ES6) classes • Simpler definition • Dependencyinjection is still available
  • 37. ROME 27-28 March 2015 The New Direction ES6 (TypeScript) Web Components IDE Support Better Performance Modularity
  • 38. ROME 27-28 March 2015 What Is The Future […] we also know that Angular can be significantly simpler […] Igor Minaz, AngularJS Team
  • 39. ROME 27-28 March 2015 Angular Evolution • From a side project • To an internal tool at Google • To a tool for everyone • To a …
  • 40. ROME 27-28 March 2015 Final Words • Angular 2.0 feels like a new framework • Many of the old concepts are removed • Once you learn it, you can apply it everywhere • Integration (web components) • Community-driven projects should be rewritten
  • 41. ROME 27-28 March 2015 Grazie! http://bit.ly/cdm-angular2 Rate meGet in touch hey@boyan.in @bmihaylov