node ts1
TRANSCRIPT
Get Your Node.js Under Control with TypeScript
Yaniv RodenskiSenior Architect
Level: Intermediate - Advanced
About me:
• Senior Architect – Sela Group• Windows Azure MVP• Coauthor of Developing Windows Azure
and Web Services (MOC 20487)• Developing software professionally since
1997
About 1997:
About 1997:
Script-based server side
Shared hosting environment
Browser wars
New HTML standard that will “Change the World”
This guy was the PM of Israel
Agenda:
• Introduction to Node.js• Introduction to TypeScript• Getting Node.js under control
Back to the future – Node.js
• A JavaScript runtime that is designed for asynchronous IO operations
• Very lightweight and fast• Used by a growing number of companies:
The Node.js ecosystem• Web frameworks
– Express.js– Socket.io
• Database support– MongoDB– SQL Server
• Hosting and Cloud environments– IIS, Azure– Forever, PM2
Demo
Hello Node.js
Wait! JavaScript on the server side?
• JavaScript is considered a second-class language:• "JavaScript is Assembly Language for the Web“ - Erik
Meijer• “You can write large programs in JavaScript. You just
can’t maintain them.” - Anders Hejlsberg
Hmmm
JavaScript benefits
• But JavaScript is a powerful language:• Functional• Object Oriented• Dynamic
• Great runtimes• Huge community • Tools
Demo
Fun with dynamic typing
So what is TypeScript?
• TypeScript is one of many new JavaScript front ends:– DART– CoffeeScript– ClojureScript
• A JavaScript superset• Introduces static typing for JavaScript• Some ECMAScript 6 features
Key Features:
Support standard
JavaScript code
Provides static typing
Encapsulation through
classes and modules
Support for constructors,
properties and
functions
Interfaces and enums
support
Lambda support =>
Intellisense and syntax checking
Demo
Getting TypeScript
Demo
Fun with static typing
How good is the TypeScript output?
Demo
TypeScript and Node.js
Synchronous server operations
Client
DBServer
Client
Asynchronous server operations
Client
DBServer
Client
Express
• ExpressJS is a web application framework inspired by Sinatra
• Minimal and flexible• Provide a quasi-MVC server side
development
Demo
Doing cool things with Express
Summary
• Node.js is a powerful and lightweight out-of-browser JavaScript environment
• JavaScript is a powerful language by itself• TypeScript provides optional static typing
and cleaner syntax and tools, which can be handy while developing large applications and exposing APIs
Resources
• Node.js: http://nodejs.org/• TypeScript: http://www.typescriptlang.org/• Slides and Demos: http://sdrv.ms/152qU0b• Definitely Typed:
https://github.com/borisyankov/DefinitelyTyped
• Twitter: @YRodenski