SlideShare a Scribd company logo
Practical TypeScript with AngularJS
Typescript 102
Bob Goodearl
RGood Software
www.RGoodSoftware.com
Bob German
BlueMetal
www.bluemetal.com
Boston Code Camp 25 - Thanks to our Sponsors!
• Platinum
• Gold
• Silver
• Bronze
• In-Kind Donations
Bob German
Bob Goodearl
• Blog: http://bob1german.com/
• Linked In:
https://www.linkedin.com/in/bgerman
• Twitter: @Bob1German
• Email: bobg@bluemetal.com
• Website: http://www.rgoodsoftware.com
• Linked In:
https://www.linkedin.com/in/bgoodearl
• Email: bgoodearl@rgoodsoftware.com
Presenters
Agenda
• TypeScript Widget
• Modules
• Controllers
• Services
• TypeScript Definitions for REST Calls
• TypeScript SPA with ASP.NET MVC
• Anatomy of an AngularJS/MVC/TypeScript web app
Setup steps:
• Install VS Code
• Install Node (https://nodejs.org/en/download)
• npm install –g typescript
• Ensure no old versions of tsc are on your path; VS
adds:
C:Program Files (x86)Microsoft
SDKsTypeScript1.0
• In VS Code create tsconfig.json in the root of your
folder
{
"compilerOptions": {
"target": "es5“,
"sourceMap": true
}
}
• Use Ctrl+Shift+B to build – first time click the
error to define a default task runner
Edit task runner and un-comment the 2nd
example in the default
• npm install –g http-server
(In a command prompt, run http-server and
browse to http://localhost:8080/)
VS Code Environment
Setup steps:
• Install Visual Studio
• For VS2012 or 2013, install TypeScript extension
• Build and debug the usual way
• Consider WebEssentials for side by side TypeScript
and JavaScript view
(does not work in VS2015)
Visual Studio Environment
• Commonly used on the Internet called ”Web
Widgets”, ”Plugins”, ”Embeds”, etc.
• It’s just a clever piece of HTML and
Javascript that acts like a web part
• Often deployed by authors/end users
seperately from the hosting application
• Very handy in SharePoint and other content
management systems
What is a widget?
What makes a good widget?
1
ISOLATED – so they won’t interfere with other
widgets or the rest of the page
Can you run multiple copies of the widget on a
page?
2
EFFICIENT – so they load quickly Does the page get noticeably slower as you add
widgets?
3
SELF-CONTAINED – so they’re easy to reuse Does the widget work without special page elements
such as element ID’s, scripts, and CSS references?
4
MODERN – so they’re easier to write and maintain Is the widget written in a modern JavaScript
framework such as AngularJS or Knockout?
JavaScript Library allows you to run multiple Angular* apps on a page …
<div> <!-- ng-app=“HelloApp” -->
<div ng-controller="main as vm">
<h1>Hello{{vm.space()}}{{vm.name}}!</h1>
Who should I say hello to?
<input type="text" ng-model="vm.name" />
</div>
<!-- Widget Wrangler loads scripts and boots the app -->
<script type="text/javascript" src="pnp-ww.js“
ww-appName="HelloApp“
ww-appType="Angular“
ww-appScripts='[{"src": “~/angular.min.js", "priority":0},
{"src": “~/script.js", "priority":1}]'>
</script>
</div>
Widget Wrangler
* Also works with any JavaScript framework – or none at all
demo
AngularJS Widget in TypeScript
• Model
• Controller
• Service
• TypeScript Definitions for REST services
Typescript 102   angular and type script
demo
AngularJS Widget in TypeScript
• Model
• Controller
• Service
• TypeScript Definitions for REST services
Anatomy of an
AngularJS/MVC/TypeScript web app
• Why Integrate AngularJS and MVC?
• Why add TypeScript?
• Open source code you can experiment with
• http://bit.ly/MvcNgTsDemo
• Lessons Learned
demo
MVC5NgTsDemo
Generating TypeScript definitions
• Experiments with TypeLite
http://bit.ly/1WW9ckN
• Other options (not yet explored)
• Typewriter extension for Visual Studio
http://bit.ly/VsX-Typewriter
Resources
Session Materials
and Code Samples
• http://bit.ly/bcc25ts102
TypeScript Playground
• http://bit.ly/TSPlayground
TS Def’ns from JSON
• http://json2ts.com/
An Insight company
Thank you.
Bob Goodearl
Bob German

More Related Content

PPTX
Modern SharePoint Development using Visual Studio Code
PDF
Introduction to xamarin
PDF
Xamarin.Forms
PDF
Xamarin microsoft graph
PDF
Cross Platform Mobile Development
PDF
Azure mobile services
PDF
.Net Dev Summit 2020 - What's new and next for Xamarin developers
PDF
Xamarin DevOps
Modern SharePoint Development using Visual Studio Code
Introduction to xamarin
Xamarin.Forms
Xamarin microsoft graph
Cross Platform Mobile Development
Azure mobile services
.Net Dev Summit 2020 - What's new and next for Xamarin developers
Xamarin DevOps

What's hot (20)

DOCX
Ionic
PDF
Building Desktop RIAs with PHP, HTML & Javascript in AIR
PDF
Building Mobile Cross-Platform Apps with the Cloud and Push Notifications
PDF
Introduction to Mobile Development with Xamarin -DotNet Westide
PPT
Native App Development for iOS, Android, and Windows with Visual Studio
PPTX
Hybrid Mobile App Development - Xamarin
PPTX
Introduction to xamarin
PDF
What's New in Xamarin? - Santo Domingo
PDF
Cross platform mobile web apps
PPTX
Ionic framework
PDF
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
PDF
Xamarin University Presents: Building Your First Intelligent App with Xamarin...
PDF
Native i os, android, and windows development in c# with xamarin 4
PDF
Visual Studio Toolbox - Introduction To Xamarin.Forms
PDF
Introduction to CocosSharp
PPTX
Xamarin Forms
PDF
Hybrid Apps with Angular & Ionic Framework
PPTX
Highlights from the Xamarin Evolve 2016 conference
PPT
Js frameworks
Ionic
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Mobile Cross-Platform Apps with the Cloud and Push Notifications
Introduction to Mobile Development with Xamarin -DotNet Westide
Native App Development for iOS, Android, and Windows with Visual Studio
Hybrid Mobile App Development - Xamarin
Introduction to xamarin
What's New in Xamarin? - Santo Domingo
Cross platform mobile web apps
Ionic framework
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
Xamarin University Presents: Building Your First Intelligent App with Xamarin...
Native i os, android, and windows development in c# with xamarin 4
Visual Studio Toolbox - Introduction To Xamarin.Forms
Introduction to CocosSharp
Xamarin Forms
Hybrid Apps with Angular & Ionic Framework
Highlights from the Xamarin Evolve 2016 conference
Js frameworks
Ad

Viewers also liked (20)

PPTX
Typescript 101 introduction
PDF
Why learn french
PPTX
Intro to behavioural law & economics
PPTX
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
PPTX
From Solutions to Apps - Moving to SP2013
PPTX
Introduction to AngularJS with the Microsoft Graph
PPTX
Building Flexible SharePoint Solutions with AngularJS
PPTX
Creating a Great User Experience in SharePoint by Marc Anderson - SPTechCon
PPTX
Leveraging User Profiles and MySites
PPTX
Collab365 Global Summit Slides
PPTX
Session Slides from DEVintersection Europe
PPTX
European SharePoint Conference - TH3
PPTX
Next Gen Portal in Office 365: April 2015. SUGUK
PPTX
Microsoft PowerApps Introduction by Usama Wahab Khan MVP
PPTX
Real World SharePoint Debacles
PPTX
My slides from SharePoint Saturday Oslo
PPTX
DWCNZ - Content Types: Love Them or Lose It
PPTX
Office 365 Groups: Deep Dive
PPTX
Managing permissions in SharePoint
PPTX
Next Generation Portals: Office 365
Typescript 101 introduction
Why learn french
Intro to behavioural law & economics
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
From Solutions to Apps - Moving to SP2013
Introduction to AngularJS with the Microsoft Graph
Building Flexible SharePoint Solutions with AngularJS
Creating a Great User Experience in SharePoint by Marc Anderson - SPTechCon
Leveraging User Profiles and MySites
Collab365 Global Summit Slides
Session Slides from DEVintersection Europe
European SharePoint Conference - TH3
Next Gen Portal in Office 365: April 2015. SUGUK
Microsoft PowerApps Introduction by Usama Wahab Khan MVP
Real World SharePoint Debacles
My slides from SharePoint Saturday Oslo
DWCNZ - Content Types: Love Them or Lose It
Office 365 Groups: Deep Dive
Managing permissions in SharePoint
Next Generation Portals: Office 365
Ad

Similar to Typescript 102 angular and type script (20)

PPTX
TypeScript and SharePoint Framework
PPTX
AngularJS with TypeScript and Windows Azure Mobile Services
PPTX
AngularJS 1.x - your first application (problems and solutions)
PPTX
Introduction to angular with a simple but complete project
PPTX
Walk in the shoe of angular
PDF
Download full ebook of Angularjs Brad Green Shyam Seshadri instant download pdf
PPTX
Angular js
PPTX
Angular js 1.0-fundamentals
PPTX
Angular js
PDF
[Ebooks PDF] download AngularJS 1st Edition Brad Green full chapters
PDF
Feedback using Angularjs + Typescript at Serenytics
PDF
Pengenalan AngularJS
PPTX
The future of web development write once, run everywhere with angular.js and ...
PDF
The future of web development write once, run everywhere with angular js an...
PDF
AngularJS 101
PPT
AngularJS and SPA
PDF
Angular js book
PDF
Angularjs
PDF
Angularjs
PPTX
The Basics Angular JS
TypeScript and SharePoint Framework
AngularJS with TypeScript and Windows Azure Mobile Services
AngularJS 1.x - your first application (problems and solutions)
Introduction to angular with a simple but complete project
Walk in the shoe of angular
Download full ebook of Angularjs Brad Green Shyam Seshadri instant download pdf
Angular js
Angular js 1.0-fundamentals
Angular js
[Ebooks PDF] download AngularJS 1st Edition Brad Green full chapters
Feedback using Angularjs + Typescript at Serenytics
Pengenalan AngularJS
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular js an...
AngularJS 101
AngularJS and SPA
Angular js book
Angularjs
Angularjs
The Basics Angular JS

More from Bob German (20)

PPTX
Introduction to the Microsoft Bot Framework v4
PPTX
Adaptive cards 101
PPTX
Introduction to Teams Development - North American Collaboration Summit
PPTX
Future-proof Development for Classic SharePoint
PPTX
Azure for SharePoint Developers - Workshop - Part 4: Bots
PPTX
Azure for SharePoint Developers - Workshop - Part 3: Web Services
PPTX
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
PPTX
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
PPTX
Azure for SharePoint Developers - Workshop - Part 5: Logic Apps
PPTX
Azure AD for browser-based application developers
PPTX
Mastering Azure Functions
PPTX
Going with the Flow: Rationalizing the workflow options in SharePoint Online
PPTX
Modern SharePoint, the Good, the Bad, and the Ugly
PPTX
Developing JavaScript Widgets
PPTX
Introduction to TypeScript
PPTX
Developing JavaScript Widgets
PPTX
German introduction to sp framework
PPTX
SPSNYC - Next Generation Portals
PPTX
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010
PPTX
Enterprise Content Management + SharePoint 2013 - SPSNH
Introduction to the Microsoft Bot Framework v4
Adaptive cards 101
Introduction to Teams Development - North American Collaboration Summit
Future-proof Development for Classic SharePoint
Azure for SharePoint Developers - Workshop - Part 4: Bots
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
Azure for SharePoint Developers - Workshop - Part 5: Logic Apps
Azure AD for browser-based application developers
Mastering Azure Functions
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Modern SharePoint, the Good, the Bad, and the Ugly
Developing JavaScript Widgets
Introduction to TypeScript
Developing JavaScript Widgets
German introduction to sp framework
SPSNYC - Next Generation Portals
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010
Enterprise Content Management + SharePoint 2013 - SPSNH

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Transform Your Business with a Software ERP System
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Nekopoi APK 2025 free lastest update
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
2025 Textile ERP Trends: SAP, Odoo & Oracle
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Softaken Excel to vCard Converter Software.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Transform Your Business with a Software ERP System
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Understanding Forklifts - TECH EHS Solution
How to Migrate SBCGlobal Email to Yahoo Easily
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Nekopoi APK 2025 free lastest update
Online Work Permit System for Fast Permit Processing
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PTS Company Brochure 2025 (1).pdf.......
ManageIQ - Sprint 268 Review - Slide Deck
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

Typescript 102 angular and type script

  • 1. Practical TypeScript with AngularJS Typescript 102 Bob Goodearl RGood Software www.RGoodSoftware.com Bob German BlueMetal www.bluemetal.com
  • 2. Boston Code Camp 25 - Thanks to our Sponsors! • Platinum • Gold • Silver • Bronze • In-Kind Donations
  • 3. Bob German Bob Goodearl • Blog: http://bob1german.com/ • Linked In: https://www.linkedin.com/in/bgerman • Twitter: @Bob1German • Email: bobg@bluemetal.com • Website: http://www.rgoodsoftware.com • Linked In: https://www.linkedin.com/in/bgoodearl • Email: bgoodearl@rgoodsoftware.com Presenters
  • 4. Agenda • TypeScript Widget • Modules • Controllers • Services • TypeScript Definitions for REST Calls • TypeScript SPA with ASP.NET MVC • Anatomy of an AngularJS/MVC/TypeScript web app
  • 5. Setup steps: • Install VS Code • Install Node (https://nodejs.org/en/download) • npm install –g typescript • Ensure no old versions of tsc are on your path; VS adds: C:Program Files (x86)Microsoft SDKsTypeScript1.0 • In VS Code create tsconfig.json in the root of your folder { "compilerOptions": { "target": "es5“, "sourceMap": true } } • Use Ctrl+Shift+B to build – first time click the error to define a default task runner Edit task runner and un-comment the 2nd example in the default • npm install –g http-server (In a command prompt, run http-server and browse to http://localhost:8080/) VS Code Environment
  • 6. Setup steps: • Install Visual Studio • For VS2012 or 2013, install TypeScript extension • Build and debug the usual way • Consider WebEssentials for side by side TypeScript and JavaScript view (does not work in VS2015) Visual Studio Environment
  • 7. • Commonly used on the Internet called ”Web Widgets”, ”Plugins”, ”Embeds”, etc. • It’s just a clever piece of HTML and Javascript that acts like a web part • Often deployed by authors/end users seperately from the hosting application • Very handy in SharePoint and other content management systems What is a widget?
  • 8. What makes a good widget? 1 ISOLATED – so they won’t interfere with other widgets or the rest of the page Can you run multiple copies of the widget on a page? 2 EFFICIENT – so they load quickly Does the page get noticeably slower as you add widgets? 3 SELF-CONTAINED – so they’re easy to reuse Does the widget work without special page elements such as element ID’s, scripts, and CSS references? 4 MODERN – so they’re easier to write and maintain Is the widget written in a modern JavaScript framework such as AngularJS or Knockout?
  • 9. JavaScript Library allows you to run multiple Angular* apps on a page … <div> <!-- ng-app=“HelloApp” --> <div ng-controller="main as vm"> <h1>Hello{{vm.space()}}{{vm.name}}!</h1> Who should I say hello to? <input type="text" ng-model="vm.name" /> </div> <!-- Widget Wrangler loads scripts and boots the app --> <script type="text/javascript" src="pnp-ww.js“ ww-appName="HelloApp“ ww-appType="Angular“ ww-appScripts='[{"src": “~/angular.min.js", "priority":0}, {"src": “~/script.js", "priority":1}]'> </script> </div> Widget Wrangler * Also works with any JavaScript framework – or none at all
  • 10. demo AngularJS Widget in TypeScript • Model • Controller • Service • TypeScript Definitions for REST services
  • 12. demo AngularJS Widget in TypeScript • Model • Controller • Service • TypeScript Definitions for REST services
  • 13. Anatomy of an AngularJS/MVC/TypeScript web app • Why Integrate AngularJS and MVC? • Why add TypeScript? • Open source code you can experiment with • http://bit.ly/MvcNgTsDemo • Lessons Learned
  • 15. Generating TypeScript definitions • Experiments with TypeLite http://bit.ly/1WW9ckN • Other options (not yet explored) • Typewriter extension for Visual Studio http://bit.ly/VsX-Typewriter
  • 16. Resources Session Materials and Code Samples • http://bit.ly/bcc25ts102 TypeScript Playground • http://bit.ly/TSPlayground TS Def’ns from JSON • http://json2ts.com/
  • 17. An Insight company Thank you. Bob Goodearl Bob German

Editor's Notes

  • #2: This intermediate level session will build on the earlier introduction to TypeScript by showing examples of TypeScript in action with AngularJS 1.x. Bob German will begin by showing how to build light-weight widgets with Angular and TypeScript that can be deployed almost anywhere. Then Bob Goodearl will show a more advanced example of TypeScript Single Page Applications with Angular and ASP.NET MVC. In order to take advantage of this session, it will be helpful to have a basic understanding of AngularJS and ASP.Net MVC.
  • #14: Talk about: - Application Structure AngularJS routing Generating TypeScript definitions for your WebAPI JSON payloads Date Handling - Lessons Learned: - You don’t get type checking when you go through a non-Typescript framework – e.g. Angular promises - Debugging doesn’t always work as expected; generated variables get confused with their original names Show app first, then… Review app structure Type Safety -