SlideShare a Scribd company logo
1 of 30
Download to read offline
itcampro@ itcamp13# Premium conference on Microsoft technologies
SPA Made Breezy
Tiberiu Covaci, @tibor19
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileHuge thanks to our sponsors!
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
Single Page Applications
Made with Breeze.js
Tibi Covaci, @tibor19
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileWho am I
• Tiberiu ’Tibi’ Covaci
• Software engineer, 20 years experience
• MCT since 2004, teaching .NET
• Senior Trainer & Mentor in Romania
• Microsoft MVP for Windows Azure
• Father & Geek
• Twitter: @tibor19 / #itcamp13
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileAgenda
• What is SPA
• Technologies
• Demo
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileSingle Page Application
Rich Client App in HTML/JavaScript
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileWhy SPA?
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileOne ASP.NET
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileHybrid is the norm
ASP.NET Web
Form
ASP.NET
MVC Page
ASP.Net
MVC Page
SPA
No one pattern is the best Evolution, not revolution
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileKnockout
• JavaScript MVVM framework
• Independent library
• Works well with other frameworks
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileKnockout
• Declarative bindings
• Automatic refresh
• Dependency tracking
• Support for templating
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileKnockout observables
• Observable properties
• Observable arrays
• Computed(dependent) observables
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileKnockout bindings
• Controlling text and appearance
• Control flow
• Form field bindings
• Rendering templates
• Custom bindings
itcampro@ itcamp13# Premium conference on Microsoft technologies
Demo
itcampro@ itcamp13# Premium conference on Microsoft technologies
learn more at
knockoutjs.com
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileDurandal
• Clean MV* Architecture
• JS & HTML Modularity
• Simple App Lifecycle
• Eventing, Modals, Message Boxes, etc.
• Navigation & Screen State Management
• Consistent Async Programming w/ Promises
• App Bundling and Optimization
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileDurandal
• Use any Backend Technology
• Built on top of jQuery, Knockout & RequireJS
• Integrates with other libraries such as
SammyJS & Bootstrap
• Make jQuery & Bootstrap widgets
templatable and bindable (or build your own
widgets).
itcampro@ itcamp13# Premium conference on Microsoft technologies
Demo
itcampro@ itcamp13# Premium conference on Microsoft technologies
learn more at
durandaljs.com
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileRich data
Caching
Validation
Client Queries
Batch Save
Change Tracking
Roll Your
Own
itcampro@ itcamp13# Premium conference on Microsoft technologies
Free
Open Source (GitHub)
MIT License
itcampro@ itcamp13# Premium conference on Microsoft technologies
Technical Support
Professional Services
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
Demo
itcampro@ itcamp13# Premium conference on Microsoft technologies
learn more at
breezejs.com
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileSummary
• SPA is a good alternative
• KO and data binding makes code cleaner
• Durandal makes the MV* easy
• SPA is Breezy with KO and Durandal
itcampro@ itcamp13# Premium conference on Microsoft technologies
Thank you
Thanks to IdeaBlade
Ward Bell
Marcel Good
itcampro@ itcamp13# Premium conference on Microsoft technologies
Q & A

More Related Content

More from ITCamp

ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp
 

More from ITCamp (20)

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
 

Recently uploaded

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
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
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
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
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 

ITCamp 2013 - Tiberiu Covaci - SPA Made Breezy

  • 1. itcampro@ itcamp13# Premium conference on Microsoft technologies SPA Made Breezy Tiberiu Covaci, @tibor19
  • 2. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileHuge thanks to our sponsors!
  • 3. itcampro@ itcamp13# Premium conference on Microsoft technologies
  • 4. itcampro@ itcamp13# Premium conference on Microsoft technologies
  • 5. itcampro@ itcamp13# Premium conference on Microsoft technologies Single Page Applications Made with Breeze.js Tibi Covaci, @tibor19
  • 6. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileWho am I • Tiberiu ’Tibi’ Covaci • Software engineer, 20 years experience • MCT since 2004, teaching .NET • Senior Trainer & Mentor in Romania • Microsoft MVP for Windows Azure • Father & Geek • Twitter: @tibor19 / #itcamp13
  • 7. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileAgenda • What is SPA • Technologies • Demo
  • 8. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileSingle Page Application Rich Client App in HTML/JavaScript
  • 9. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileWhy SPA?
  • 10. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileOne ASP.NET
  • 11. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileHybrid is the norm ASP.NET Web Form ASP.NET MVC Page ASP.Net MVC Page SPA No one pattern is the best Evolution, not revolution
  • 12. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileKnockout • JavaScript MVVM framework • Independent library • Works well with other frameworks
  • 13. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileKnockout • Declarative bindings • Automatic refresh • Dependency tracking • Support for templating
  • 14. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileKnockout observables • Observable properties • Observable arrays • Computed(dependent) observables
  • 15. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileKnockout bindings • Controlling text and appearance • Control flow • Form field bindings • Rendering templates • Custom bindings
  • 16. itcampro@ itcamp13# Premium conference on Microsoft technologies Demo
  • 17. itcampro@ itcamp13# Premium conference on Microsoft technologies learn more at knockoutjs.com
  • 18. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileDurandal • Clean MV* Architecture • JS & HTML Modularity • Simple App Lifecycle • Eventing, Modals, Message Boxes, etc. • Navigation & Screen State Management • Consistent Async Programming w/ Promises • App Bundling and Optimization
  • 19. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileDurandal • Use any Backend Technology • Built on top of jQuery, Knockout & RequireJS • Integrates with other libraries such as SammyJS & Bootstrap • Make jQuery & Bootstrap widgets templatable and bindable (or build your own widgets).
  • 20. itcampro@ itcamp13# Premium conference on Microsoft technologies Demo
  • 21. itcampro@ itcamp13# Premium conference on Microsoft technologies learn more at durandaljs.com
  • 22. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileRich data Caching Validation Client Queries Batch Save Change Tracking Roll Your Own
  • 23. itcampro@ itcamp13# Premium conference on Microsoft technologies Free Open Source (GitHub) MIT License
  • 24. itcampro@ itcamp13# Premium conference on Microsoft technologies Technical Support Professional Services
  • 25. itcampro@ itcamp13# Premium conference on Microsoft technologies
  • 26. itcampro@ itcamp13# Premium conference on Microsoft technologies Demo
  • 27. itcampro@ itcamp13# Premium conference on Microsoft technologies learn more at breezejs.com
  • 28. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileSummary • SPA is a good alternative • KO and data binding makes code cleaner • Durandal makes the MV* easy • SPA is Breezy with KO and Durandal
  • 29. itcampro@ itcamp13# Premium conference on Microsoft technologies Thank you Thanks to IdeaBlade Ward Bell Marcel Good
  • 30. itcampro@ itcamp13# Premium conference on Microsoft technologies Q & A