SlideShare a Scribd company logo
Angular, TypeScript and Katana 
Twin Cities Code Camp 
October 4th 2014 
Justin Wendlandt 
jwendl@hotmail.com 
@jwendl 
http://www.jwendl.net/
Keywords and Terms 
Katana
ASP.NET vNext 
• Who to follow for more 
information 
 Scott Guthrie, Scott 
Hanselman, Damian Edwards 
and David Fowler. 
 Channel 9 Videos
What is OWIN? 
• Decouple server and application 
 No more System.Web – YAY! 
• Decouple client and server 
• Open standards 
• Stimulate open source Eco 
System 
• Windows Internet of Things? 
 Embedded Devices? 
Application 
Framework 
OWIN Middleware 
Server 
Host
What is Project Katana? 
• OWIN implementation for IIS 
• A few hooks into System.Web 
• A few hooks into 
System.Net.HttpListener
Demos - Katana
What About the Server? 
• Web API vs. MVC 
• Business Logic 
• Data Access Layer 
• No Code Changes at all 
 (Unless you use Cache) 
 (Unless you use Session) 
 (Unless you use System.Web)
Decoupling the Client 
• Do you SPA? 
• Do you run server-side? 
• Do you go Hybrid?
Using the Hybrid Approach 
• ASP.NET MVC 
• TypeScript 
• Reactive Extensions 
 For Ajax 
 For Updating DOM (using 
jQuery)
Using the SPA Approach 
• ASP.NET Web API 
• TypeScript 
• Angular 
• Reactive Extensions 
 For Ajax
What is Angular? 
• It’s HTML Enhanced for Web 
Apps 
• Single Page Application 
Framework
Angular – Routing 
• Root page never navigates 
• Clicked links “Navigate” 
 Then data bind
Angular – $scope 
• Scope delivers model to DOM 
and controller 
• $scope is NOT the model itself 
• Should contain multiple models
Angular – Dependency Injection 
• Resolves instance of object for 
you 
• Helps decouple services and 
providers
Angular – Two-Way Data Binding 
• No code to handle the binding, 
ng-model does it for you 
• Based on $scope 
• Can contain filters for read-bindings
Angular Demo – HotTowel
Reactive Extensions for JavaScript 
• Uses promises – Awesome! 
• Can handle events as well 
• Throttle Input if need be 
• Perfect for anything 
asynchronous
The Reactive Manifesto 
• Respond in timely manner 
• Consistent Quality of Service Responsive 
• Stay responsive in the face of failure 
• Allows for recovery Resilient 
• Stay responsive under varying workload 
• No central bottlenecks Elastic 
• Relies on Asynchronous Messages 
• Ensure Loose Coupling Message Driven
Why Should I Always use RxJS? 
• Event-Driven 
• Avoids Nasty Nested Callbacks 
• Resembles .NET Fluent API 
• Perfect Fit for $Ajax calls that an 
Angular App would need
Demo - SteamLookupApp
What is TypeScript? 
• It’s not JavaScript 
• It’s not C# 
• Interfaces are model prototypes 
• Modules are a separation layer
Interfaces vs. .d.ts Files 
• TypeScript Interfaces 
 Describes a model 
– var dog: Animal = { … } 
 Ensuring a model passed into 
a function 
– function Bark (animal: Dog) { … } 
• TypeLite 
 Takes .NET models and turns 
them into TypeScript 
Interfaces 
• TypeScript .d.ts files 
 Third Party Applications 
 _refs.ts 
• DefinitelyTyped project on GitHub
Web Essentials 
• Preview Window 
• Drag n’ Drop 
• Native _refs.ts support
Demo - AsgardBlogEngine
References 
• Videos 
 http://channel9.msdn.com/Event 
s/Speakers/Damian-Edwards 
 http://channel9.msdn.com/Event 
s/Speakers/david-fowler 
• TypeScript 
 http://www.typescriptlang.org/ 
• Angular JS 
 https://angularjs.org/ 
• HotTowel / HotTowel TypeScript 
 https://github.com/johnpapa/HotT 
owel-Angular 
 https://github.com/johnnyreilly/Ho 
tTowel-Angular-TypeScript 
• RxJS 
 http://reactive-extensions. 
github.io/RxJS/ 
 http://www.slideshare.net/mattpo 
dwysocki/cascadiajs-dont-cross-the- 
streams
Questions??? 
• http://www.jwendl.net/ 
• Twitter: @jwendl 
• jwendl@hotmail.com 
• http://speakr.cc/ 
• http://github.com/jwendl/

More Related Content

What's hot (19)

PPT
OWIN (Open Web Interface for .NET)
Folio3 Software
 
PPTX
Owin from spec to application
damian-h
 
PDF
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
PPTX
ASP .Net Core SPA Templates
Eamonn Boyle
 
ODP
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
PDF
Developing Resilient Cloud Native Apps with Spring Cloud
Dustin Ruehle
 
PPTX
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Tin Linn Soe
 
PPTX
Powershell For Developers
Ido Flatow
 
PPTX
Let's play with adf 3.0
Eugenio Romano
 
PDF
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Toni Jara
 
PDF
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
PDF
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Matt Raible
 
PPTX
Getting Started with Spring Boot
David Kiss
 
PDF
Azure series 2 creating a cloud service - web role
Saravanan Subburayal
 
PPTX
Building reusable components as micro frontends with glimmer js and webcompo...
Andrei Sebastian Cîmpean
 
PPTX
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
PDF
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Colleen Lee
 
PDF
Spring Cloud Stream with Kafka
David Kiss
 
PPTX
Testing Microservices
Anil Allewar
 
OWIN (Open Web Interface for .NET)
Folio3 Software
 
Owin from spec to application
damian-h
 
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
ASP .Net Core SPA Templates
Eamonn Boyle
 
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
Developing Resilient Cloud Native Apps with Spring Cloud
Dustin Ruehle
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Tin Linn Soe
 
Powershell For Developers
Ido Flatow
 
Let's play with adf 3.0
Eugenio Romano
 
Spring IO 2016 - Spring Cloud Microservices, a journey inside a financial entity
Toni Jara
 
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Matt Raible
 
Getting Started with Spring Boot
David Kiss
 
Azure series 2 creating a cloud service - web role
Saravanan Subburayal
 
Building reusable components as micro frontends with glimmer js and webcompo...
Andrei Sebastian Cîmpean
 
Surati Tech Talks 2022 / Build reliable Svelte applications using Cypress
Maurice De Beijer [MVP]
 
Iguazú: A Long-Running Job Scheduler using Docker and Mesos
Colleen Lee
 
Spring Cloud Stream with Kafka
David Kiss
 
Testing Microservices
Anil Allewar
 

Similar to Angular Owin Katana TypeScript (20)

PPTX
Azure Functions Real World Examples
Yochay Kiriaty
 
PDF
End to-End SPA Development Using ASP.NET and AngularJS
Gil Fink
 
PDF
Patterns and practices for building enterprise-scale HTML5 apps
Phil Leggetter
 
PPTX
Beginners Node.js
Khaled Mosharraf
 
PDF
How to Build Front-End Web Apps that Scale - FutureJS
Phil Leggetter
 
PPTX
WebNetConf 2012 - Single Page Apps
Pop Apps
 
PPTX
TypeScript and Angular2 (Love at first sight)
Igor Talevski
 
PDF
Node.js for .NET Developers
David Neal
 
PPTX
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
Enea Gabriel
 
PDF
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
FITC
 
PPTX
Vincent biret azure functions and flow (toronto)
Vincent Biret
 
PPTX
Vincent biret azure functions and flow (ottawa)
Vincent Biret
 
PDF
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
PDF
APIs distribuidos con alta escalabilidad
Software Guru
 
PDF
SGCE 2015 REST APIs
Domingo Suarez Torres
 
PPTX
Key alias dev standard final
Raditya Alwafi Surachman
 
PDF
Surrogate dependencies (in node js) v1.0
Dinis Cruz
 
PPTX
JavaScript in Universal Windows Platform apps
Timmy Kokke
 
PPT
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
Azure Functions Real World Examples
Yochay Kiriaty
 
End to-End SPA Development Using ASP.NET and AngularJS
Gil Fink
 
Patterns and practices for building enterprise-scale HTML5 apps
Phil Leggetter
 
Beginners Node.js
Khaled Mosharraf
 
How to Build Front-End Web Apps that Scale - FutureJS
Phil Leggetter
 
WebNetConf 2012 - Single Page Apps
Pop Apps
 
TypeScript and Angular2 (Love at first sight)
Igor Talevski
 
Node.js for .NET Developers
David Neal
 
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
Enea Gabriel
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
FITC
 
Vincent biret azure functions and flow (toronto)
Vincent Biret
 
Vincent biret azure functions and flow (ottawa)
Vincent Biret
 
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
APIs distribuidos con alta escalabilidad
Software Guru
 
SGCE 2015 REST APIs
Domingo Suarez Torres
 
Key alias dev standard final
Raditya Alwafi Surachman
 
Surrogate dependencies (in node js) v1.0
Dinis Cruz
 
JavaScript in Universal Windows Platform apps
Timmy Kokke
 
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
Ad

Recently uploaded (20)

PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PDF
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
 
PDF
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
PDF
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
PDF
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
 
PPTX
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
 
PPSX
Usergroup - OutSystems Architecture.ppsx
Kurt Vandevelde
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PPTX
Simplifica la seguridad en la nube y la detección de amenazas con FortiCNAPP
Cristian Garcia G.
 
PDF
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
 
PDF
“Scaling i.MX Applications Processors’ Native Edge AI with Discrete AI Accele...
Edge AI and Vision Alliance
 
PDF
My Journey from CAD to BIM: A True Underdog Story
Safe Software
 
PDF
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
PDF
UiPath Agentic AI ile Akıllı Otomasyonun Yeni Çağı
UiPathCommunity
 
PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
ScyllaDB
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
ArcGIS Utility Network Migration - The Hunter Water Story
Safe Software
 
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
FME as an Orchestration Tool with Principles From Data Gravity
Safe Software
 
reInforce 2025 Lightning Talk - Scott Francis.pptx
ScottFrancis51
 
Usergroup - OutSystems Architecture.ppsx
Kurt Vandevelde
 
The Growing Value and Application of FME & GenAI
Safe Software
 
Simplifica la seguridad en la nube y la detección de amenazas con FortiCNAPP
Cristian Garcia G.
 
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
 
“Scaling i.MX Applications Processors’ Native Edge AI with Discrete AI Accele...
Edge AI and Vision Alliance
 
My Journey from CAD to BIM: A True Underdog Story
Safe Software
 
Darley - FIRST Copenhagen Lightning Talk (2025-06-26) Epochalypse 2038 - Time...
treyka
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
SANGHEE SHIN
 
UiPath Agentic AI ile Akıllı Otomasyonun Yeni Çağı
UiPathCommunity
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
5 Things to Consider When Deploying AI in Your Enterprise
Safe Software
 
Ad

Angular Owin Katana TypeScript

  • 1. Angular, TypeScript and Katana Twin Cities Code Camp October 4th 2014 Justin Wendlandt [email protected] @jwendl http://www.jwendl.net/
  • 3. ASP.NET vNext • Who to follow for more information  Scott Guthrie, Scott Hanselman, Damian Edwards and David Fowler.  Channel 9 Videos
  • 4. What is OWIN? • Decouple server and application  No more System.Web – YAY! • Decouple client and server • Open standards • Stimulate open source Eco System • Windows Internet of Things?  Embedded Devices? Application Framework OWIN Middleware Server Host
  • 5. What is Project Katana? • OWIN implementation for IIS • A few hooks into System.Web • A few hooks into System.Net.HttpListener
  • 7. What About the Server? • Web API vs. MVC • Business Logic • Data Access Layer • No Code Changes at all  (Unless you use Cache)  (Unless you use Session)  (Unless you use System.Web)
  • 8. Decoupling the Client • Do you SPA? • Do you run server-side? • Do you go Hybrid?
  • 9. Using the Hybrid Approach • ASP.NET MVC • TypeScript • Reactive Extensions  For Ajax  For Updating DOM (using jQuery)
  • 10. Using the SPA Approach • ASP.NET Web API • TypeScript • Angular • Reactive Extensions  For Ajax
  • 11. What is Angular? • It’s HTML Enhanced for Web Apps • Single Page Application Framework
  • 12. Angular – Routing • Root page never navigates • Clicked links “Navigate”  Then data bind
  • 13. Angular – $scope • Scope delivers model to DOM and controller • $scope is NOT the model itself • Should contain multiple models
  • 14. Angular – Dependency Injection • Resolves instance of object for you • Helps decouple services and providers
  • 15. Angular – Two-Way Data Binding • No code to handle the binding, ng-model does it for you • Based on $scope • Can contain filters for read-bindings
  • 16. Angular Demo – HotTowel
  • 17. Reactive Extensions for JavaScript • Uses promises – Awesome! • Can handle events as well • Throttle Input if need be • Perfect for anything asynchronous
  • 18. The Reactive Manifesto • Respond in timely manner • Consistent Quality of Service Responsive • Stay responsive in the face of failure • Allows for recovery Resilient • Stay responsive under varying workload • No central bottlenecks Elastic • Relies on Asynchronous Messages • Ensure Loose Coupling Message Driven
  • 19. Why Should I Always use RxJS? • Event-Driven • Avoids Nasty Nested Callbacks • Resembles .NET Fluent API • Perfect Fit for $Ajax calls that an Angular App would need
  • 21. What is TypeScript? • It’s not JavaScript • It’s not C# • Interfaces are model prototypes • Modules are a separation layer
  • 22. Interfaces vs. .d.ts Files • TypeScript Interfaces  Describes a model – var dog: Animal = { … }  Ensuring a model passed into a function – function Bark (animal: Dog) { … } • TypeLite  Takes .NET models and turns them into TypeScript Interfaces • TypeScript .d.ts files  Third Party Applications  _refs.ts • DefinitelyTyped project on GitHub
  • 23. Web Essentials • Preview Window • Drag n’ Drop • Native _refs.ts support
  • 25. References • Videos  http://channel9.msdn.com/Event s/Speakers/Damian-Edwards  http://channel9.msdn.com/Event s/Speakers/david-fowler • TypeScript  http://www.typescriptlang.org/ • Angular JS  https://angularjs.org/ • HotTowel / HotTowel TypeScript  https://github.com/johnpapa/HotT owel-Angular  https://github.com/johnnyreilly/Ho tTowel-Angular-TypeScript • RxJS  http://reactive-extensions. github.io/RxJS/  http://www.slideshare.net/mattpo dwysocki/cascadiajs-dont-cross-the- streams
  • 26. Questions??? • http://www.jwendl.net/ • Twitter: @jwendl • [email protected] • http://speakr.cc/ • http://github.com/jwendl/