SlideShare a Scribd company logo
1 of 12
A Real World Case Study
David Carter and Matt Tester
A bit of history…
• jQuery – lots of fun but things got pretty messy in the end
• Knockout – fantastic at first but still didn’t solve a lot of our issues
• Kendo UI – fell for what promised to be a great framework but really never
delivered
• Now, AngularJS and Asp.Net Web API / Node
MVC
Overview
Routing & View Composition
• Don’t use the default router
• Angular ui-router – state engine
• Ideally every view/state in your app should be reachable via a URL
• Nice place to put authorization in your app
• Pages can easily be composed of multiple views and controllers
• Allows you to instantiate data before view is rendered
Customer Page States
customers
customer/{id}
customer/{id}/
details
customer/{id}}/
contacts
customer/{id}/
correspondence
customer/{id}/
reports
customers/add
Communicating with the Server
• $http – low level service for http communications
• Better - $Resource - supports action methods: get, save, query, remove,
delete
• Best – RestAngular
 Great for working with a RESTful API
 Returns promises – perfect for ui-router
 Supports self-linking elements
 Supports nested RESTful resources
Views & Directives
• Makes HTML readable
• Great for abstraction
• Great for use with layout frameworks, e.g. Bootstrap
• Complicated, should not be taken lightly!
Scope
Likes
• It covers all the bases (routing, dependency injection, MVVM, etc)
• Feels like we don’t have to roll anything ourselves
• Good code re-use with directives
• Semantic HTML
• Good community
• Good docs and resources
• Don’t have to write a lot of code
Dislikes
• Feels way to complicated in places (scope & directives)
• Not opinionated enough, lots of ways to do things (e.g. factory vs service)
• Steep learning curve (take that into account)
• Can tend to hide mistakes
• Can be difficult to debug
• Lack of 3rd party components
Should YOU use it for your next
project?
• Can you factor in plenty of time for the learning curve?
• Can you wait for Angular 2.0 to come out?

More Related Content

What's hot

Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 

What's hot (20)

Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Azure Application insights - An Introduction
Azure Application insights - An IntroductionAzure Application insights - An Introduction
Azure Application insights - An Introduction
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
Introduction to Google Cloud Platform and APIs
Introduction to Google Cloud Platform and APIsIntroduction to Google Cloud Platform and APIs
Introduction to Google Cloud Platform and APIs
 
Azure dev ops
Azure dev opsAzure dev ops
Azure dev ops
 
DevOps seminar ppt
DevOps seminar ppt DevOps seminar ppt
DevOps seminar ppt
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Internet of things (IoT)
Internet of things (IoT)Internet of things (IoT)
Internet of things (IoT)
 
Designing the Internet of Things
Designing the Internet of ThingsDesigning the Internet of Things
Designing the Internet of Things
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
Why OutSystems
Why OutSystemsWhy OutSystems
Why OutSystems
 
iot seminar topic
iot seminar topic iot seminar topic
iot seminar topic
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 

Similar to Angular - a real world case study

Harshita_Sinha_2.2_years_exp_.NET_MVC_Developer
Harshita_Sinha_2.2_years_exp_.NET_MVC_DeveloperHarshita_Sinha_2.2_years_exp_.NET_MVC_Developer
Harshita_Sinha_2.2_years_exp_.NET_MVC_Developer
harshita sinha
 
Lightweight webdev
Lightweight webdevLightweight webdev
Lightweight webdev
damianofusco
 

Similar to Angular - a real world case study (20)

Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
REST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookREST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical Look
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdfWessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Fast Track introduction to ASP.NET MVC
Fast Track introduction to ASP.NET MVCFast Track introduction to ASP.NET MVC
Fast Track introduction to ASP.NET MVC
 
Integrating AngularJS into the Campus CMS
Integrating AngularJS into the Campus CMSIntegrating AngularJS into the Campus CMS
Integrating AngularJS into the Campus CMS
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
 
React.js at Cortex
React.js at CortexReact.js at Cortex
React.js at Cortex
 
Harshita_Sinha_2.2_years_exp_.NET_MVC_Developer
Harshita_Sinha_2.2_years_exp_.NET_MVC_DeveloperHarshita_Sinha_2.2_years_exp_.NET_MVC_Developer
Harshita_Sinha_2.2_years_exp_.NET_MVC_Developer
 
AngularJS One Day Workshop
AngularJS One Day WorkshopAngularJS One Day Workshop
AngularJS One Day Workshop
 
Lightweight webdev
Lightweight webdevLightweight webdev
Lightweight webdev
 
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's PerspectiveAPI Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
 
Oracle JET and React Frontends.pptx
Oracle JET and React Frontends.pptxOracle JET and React Frontends.pptx
Oracle JET and React Frontends.pptx
 
A night at the spa
A night at the spaA night at the spa
A night at the spa
 
Sitecore mvc
Sitecore mvcSitecore mvc
Sitecore mvc
 
Angular js
Angular jsAngular js
Angular js
 
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)
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Angular - a real world case study

  • 1. A Real World Case Study David Carter and Matt Tester
  • 2. A bit of history… • jQuery – lots of fun but things got pretty messy in the end • Knockout – fantastic at first but still didn’t solve a lot of our issues • Kendo UI – fell for what promised to be a great framework but really never delivered • Now, AngularJS and Asp.Net Web API / Node MVC
  • 4. Routing & View Composition • Don’t use the default router • Angular ui-router – state engine • Ideally every view/state in your app should be reachable via a URL • Nice place to put authorization in your app • Pages can easily be composed of multiple views and controllers • Allows you to instantiate data before view is rendered
  • 5.
  • 7. Communicating with the Server • $http – low level service for http communications • Better - $Resource - supports action methods: get, save, query, remove, delete • Best – RestAngular  Great for working with a RESTful API  Returns promises – perfect for ui-router  Supports self-linking elements  Supports nested RESTful resources
  • 8. Views & Directives • Makes HTML readable • Great for abstraction • Great for use with layout frameworks, e.g. Bootstrap • Complicated, should not be taken lightly!
  • 10. Likes • It covers all the bases (routing, dependency injection, MVVM, etc) • Feels like we don’t have to roll anything ourselves • Good code re-use with directives • Semantic HTML • Good community • Good docs and resources • Don’t have to write a lot of code
  • 11. Dislikes • Feels way to complicated in places (scope & directives) • Not opinionated enough, lots of ways to do things (e.g. factory vs service) • Steep learning curve (take that into account) • Can tend to hide mistakes • Can be difficult to debug • Lack of 3rd party components
  • 12. Should YOU use it for your next project? • Can you factor in plenty of time for the learning curve? • Can you wait for Angular 2.0 to come out?