SlideShare uma empresa Scribd logo
1 de 33
E LT O N S T O N E M A N , U K C S U G : A P R I L 2 0 1 3
NON-MICROSOFT
TECHNOLOGIES
MICROSOFT IS EMBRACING
AGENDA
• JSON
• JavaScript
• NoSQL
• Node.js
• AMQP
JSON
• Serialization format
• “JavaScript Object Notation”
• Concise, human-readable, interoperable
• No schema
XML
<vehicle
xmlns=“http://schemas.xyz.com/vehicles”>
<makeCode>audi</makeCode>
<modelCode>a3</modelCode>
</vehicle>
JSON
{
"modelCode":
"a3",
"makeCode":
"audi"
JSON: WHY SHOULD I CARE?
• Performance
• Interop (json.org)
• Ease of access
• Modernity
MICROSOFT AND JSON
• Available in WCF from Fx 3.5
• DataContractJsonSerializer
• WebHttpBinding
• First-class option in ASP.NET Web API
• MVC 4 & Fx 4.5
• 3rd party JSON.NET library
JSON IN .NET
• WCF Demo
JSON IN .NET
• WCF Demo – Recap
• Explicit in service definition
• [WebGet(UriTemplate="makes", ResponseFormat=
WebMessageFormat.Json)]
• Hard to customise
JSON IN .NET
• ASP.NET WebApi Demo
JSON IN .NET
• ASP.NET WebApi Demo - Recap
• Implicitly available, by client request
• Accept: application/json
• Easily customisable
JAVASCRIPT
• Weakly-typed OO language
• Interpreted, browser runtime
• Event loop & callback mechanism
window.setInterval(function() {
document.getElementById("container").innerHTML+='<p>More</
p>';}, 500);
function writeMore() {
document.getElementById("container").innerHTML+='<p>More</
p>';
}
window.setInterval(writeMore, 500);
JsFiddle
JsFiddle
JAVASCRIPT: WHY SHOULD I CARE?
• Rapid development/prototyping
• Widen API reach
• Single codebase for JS runtimes
• Web apps and mobile apps
• Inherently async
• Server-side applications
MICROSOFT AND JAVASCRIPT
• jQuery in ASP.NET + IntelliSense
• Knockout (MVVM), modernizr (HTML5)
• TypeScript
• Superset of JavaScript, adds type-safety, class &
interface definition
• Compiler generates pure JS
• Eases learning curve from .NET
• VS plugin (and Vim, Emacs) + WebEssentials
• Pre-dates ECMAScript 6
JAVASCRIPT
• TypeScript Demo
FROM TYPESCRIPT
module ApiClient {
export class Vehicles {
getModels(makeCode: string) {
return 'someJSON';
};
static baseUrl =
'http://localhost/Sixeyed.CarValet.Services/VehicleService.
svc';
}
}
var client: ApiClient.Vehicles = new ApiClient.Vehicles;
var models = client.getModels('rover');
• TypeScript Demo - Recap
TO JAVASCRIPT
var ApiClient;
(function (ApiClient) {
var Vehicles = (function () {
function Vehicles() { }
Vehicles.prototype.getModels = function (makeCode)
{
return 'someJSON';
};
Vehicles.baseUrl =
'http://localhost/Sixeyed.CarValet.Services/VehicleService.
svc';
return Vehicles;
})();
ApiClient.Vehicles = Vehicles;
})(ApiClient || (ApiClient = {}));
var client = new ApiClient.Vehicles();
var models = client.getModels('rover');
JsFiddle
NOSQL
• “Not-only SQL” -> document databases
• No schema, collections of objects
• Mature products
• Rich, efficient querying (+LINQ)
• Indexing
• Map/reduce
NOSQL: WHY SHOULD I CARE?
• Easy access, REST+JSON
• Cloud integration – Shared Database
• Accelerated delivery
• Fewer moving parts
• Simpler solution
• Simpler maintenance
• Performance & scale-out
MICROSOFT AND NOSQL
• SQL Azure beta -> Table Storage
• NoSQL, with limitations
• MongoLabs Azure Add-On
• MongoDB hosted on Azure
NOSQL
• MongoDB Demo
NOSQL
• MongoDB Demo – Recap
• Azure Add-On, NuGet driver
• GetServer().GetDatabase().GetCollection<>()
• LINQ
• Wrapper class
• BSON ObjectId
NODE.JS
• JavaScript platform
• Built on Google’s JS runtime
• Server
• Websites
• Accelerators
• Gateways
NODE.JS: WHY SHOULD I CARE?
• Single-threaded, non-blocking, async
• Efficient & scalable
• Large, dedicated community
• Rich package management (NPM)
• Leading-edge – Socket.io, MongoDB
MICROSOFT AND NODE.JS
• IISNode
• IIS Express, Node.js extension for IIS7
• Node.js on Azure
NODE.JS
• FormatService Demo
NODE.JS
• FormatService Demo – Recap
• Simple HTTP server
• Require modules (internal/external)
• JS async model – passing callbacks
• Hosted on Azure websites
• Git publishing
• Platform agnostic
AMQP
• Advanced Messaging Queuing Protocol
• Interopable, standards-based wire protocol
• Fast, durable, scalable
• History & heavy usage in finance industry
• Industry adopters
• RabbitMQ - VMWare
• Apache Qpid
• Windows Azure Service Bus
AMQP: WHY SHOULD I CARE?
• Rich functionality & messaging patterns
• Interoperable MQ standard
• Ignore protocol, focus on message
• Multiple providers
• Choose your cloud (StormMQ…)
• BUT
• Few full AMQP providers
• And notable missing parties (SQS, ZeroMQ)
• How interoperable?
• Traction?
MICROSOFT AND AMQP
• v1.0 launch (2011)
• AMQP support for Azure Service Bus
• Queue, topic, subscription
• Limited client support…
AMQP
• Node.js + RabbitMQ Demo
AMQP
• Node.js + RabbitMQ Demo Recap
• 3rd party AMQP module
• Built for RabbitMQ
• RabbitMQ .NET client library
• Durable messaging
• Multiple consumers
AMQP
• Node.js + Service Bus Queues Demo
AMQP
• Node.js + Service Bus Queues Demo – Recap
• Azure Node.js module
• AMQP module doesn’t connect to Azure
• Azure .NET Client Library
• RabbitMQ client library doesn’t connect to Azure
CONTACT
• elton@sixeyed.com
• http://geekswithblogs.net/eltonstoneman

Mais conteúdo relacionado

Mais procurados

Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesLINE Corporation
 
Advanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware FrameworkAdvanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware FrameworkMichal Bachman
 
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...Codemotion
 
Intro To Serverless ClojureScript
Intro To Serverless ClojureScriptIntro To Serverless ClojureScript
Intro To Serverless ClojureScriptJim Lynch
 
Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018graemerocher
 
Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介LINE Corporation
 
Spider进化论
Spider进化论Spider进化论
Spider进化论cjhacker
 
Alfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European BankAlfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European BankPiergiorgio Lucidi
 
GraphAware Framework Intro
GraphAware Framework IntroGraphAware Framework Intro
GraphAware Framework IntroMichal Bachman
 
Micronaut Deep Dive - Devnexus 2019
Micronaut Deep Dive - Devnexus 2019Micronaut Deep Dive - Devnexus 2019
Micronaut Deep Dive - Devnexus 2019graemerocher
 
GraphConnect 2014 SF: Applying the GraphAware Framework
GraphConnect 2014 SF: Applying the GraphAware FrameworkGraphConnect 2014 SF: Applying the GraphAware Framework
GraphConnect 2014 SF: Applying the GraphAware FrameworkNeo4j
 
Implementing portlets using Web Scripts
Implementing portlets using Web ScriptsImplementing portlets using Web Scripts
Implementing portlets using Web ScriptsPiergiorgio Lucidi
 
Grails 4 and Micronaut at Devnexus 2019
Grails 4 and Micronaut at Devnexus 2019Grails 4 and Micronaut at Devnexus 2019
Grails 4 and Micronaut at Devnexus 2019graemerocher
 
Angular4 kickstart
Angular4 kickstartAngular4 kickstart
Angular4 kickstartFoyzul Karim
 
Vert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
Vert.x - Tehran JUG meeting Aug-2014 - Saeed ZarinfamVert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
Vert.x - Tehran JUG meeting Aug-2014 - Saeed ZarinfamSaeed Zarinfam
 

Mais procurados (20)

Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker services
 
Advanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware FrameworkAdvanced Neo4j Use Cases with the GraphAware Framework
Advanced Neo4j Use Cases with the GraphAware Framework
 
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
DevOps in the era of serverless computing - Alessandro Vozza - Codemotion Ams...
 
Intro To Serverless ClojureScript
Intro To Serverless ClojureScriptIntro To Serverless ClojureScript
Intro To Serverless ClojureScript
 
Rubigraph
RubigraphRubigraph
Rubigraph
 
React october2017
React october2017React october2017
React october2017
 
Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018
 
Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介
 
Ruby Setup
Ruby SetupRuby Setup
Ruby Setup
 
Spider进化论
Spider进化论Spider进化论
Spider进化论
 
AngularJS
AngularJSAngularJS
AngularJS
 
Alfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European BankAlfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European Bank
 
GraphAware Framework Intro
GraphAware Framework IntroGraphAware Framework Intro
GraphAware Framework Intro
 
Micronaut Deep Dive - Devnexus 2019
Micronaut Deep Dive - Devnexus 2019Micronaut Deep Dive - Devnexus 2019
Micronaut Deep Dive - Devnexus 2019
 
GraphConnect 2014 SF: Applying the GraphAware Framework
GraphConnect 2014 SF: Applying the GraphAware FrameworkGraphConnect 2014 SF: Applying the GraphAware Framework
GraphConnect 2014 SF: Applying the GraphAware Framework
 
Implementing portlets using Web Scripts
Implementing portlets using Web ScriptsImplementing portlets using Web Scripts
Implementing portlets using Web Scripts
 
Grails 4 and Micronaut at Devnexus 2019
Grails 4 and Micronaut at Devnexus 2019Grails 4 and Micronaut at Devnexus 2019
Grails 4 and Micronaut at Devnexus 2019
 
Angular4 kickstart
Angular4 kickstartAngular4 kickstart
Angular4 kickstart
 
Swarms: introduction
Swarms: introductionSwarms: introduction
Swarms: introduction
 
Vert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
Vert.x - Tehran JUG meeting Aug-2014 - Saeed ZarinfamVert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
Vert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
 

Semelhante a Non-Microsoft Technologies Which Microsoft is Embracing

Java 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
Java 8: Nashorn & avatar.js di Enrico Risa al JUG RomaJava 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
Java 8: Nashorn & avatar.js di Enrico Risa al JUG RomaVitalij Zadneprovskij
 
Introduction to REST API with Node.js
Introduction to REST API with Node.jsIntroduction to REST API with Node.js
Introduction to REST API with Node.jsYoann Gotthilf
 
Evolution of a cloud start up: From C# to Node.js
Evolution of a cloud start up: From C# to Node.jsEvolution of a cloud start up: From C# to Node.js
Evolution of a cloud start up: From C# to Node.jsSteve Jamieson
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012Alexandre Morgaut
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overviewscdhruv5
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Oscar Renalias
 
Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014manolitto
 
Make your gui shine with ajax solr
Make your gui shine with ajax solrMake your gui shine with ajax solr
Make your gui shine with ajax solrlucenerevolution
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsAmazon Web Services
 
Codestrong 2012 breakout session building your own custom cloud services
Codestrong 2012 breakout session   building your own custom cloud servicesCodestrong 2012 breakout session   building your own custom cloud services
Codestrong 2012 breakout session building your own custom cloud servicesAxway Appcelerator
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4Jon Galloway
 
Dmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script TechnologiesDmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script TechnologiesLogeekNightUkraine
 
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
 Node.js server side render in the Age of APIs - Full Stack Toronto 2017 Node.js server side render in the Age of APIs - Full Stack Toronto 2017
Node.js server side render in the Age of APIs - Full Stack Toronto 2017Ruy Adorno
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesEamonn Boyle
 
Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Ran Mizrahi
 
Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Ran Mizrahi
 
MVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelAlex Thissen
 

Semelhante a Non-Microsoft Technologies Which Microsoft is Embracing (20)

Java 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
Java 8: Nashorn & avatar.js di Enrico Risa al JUG RomaJava 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
Java 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
 
Introduction to REST API with Node.js
Introduction to REST API with Node.jsIntroduction to REST API with Node.js
Introduction to REST API with Node.js
 
Evolution of a cloud start up: From C# to Node.js
Evolution of a cloud start up: From C# to Node.jsEvolution of a cloud start up: From C# to Node.js
Evolution of a cloud start up: From C# to Node.js
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overview
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014
 
Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014
 
AWS Lambda in C#
AWS Lambda in C#AWS Lambda in C#
AWS Lambda in C#
 
Make your gui shine with ajax solr
Make your gui shine with ajax solrMake your gui shine with ajax solr
Make your gui shine with ajax solr
 
ASP.NET: Present and future
ASP.NET: Present and futureASP.NET: Present and future
ASP.NET: Present and future
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# Applications
 
Codestrong 2012 breakout session building your own custom cloud services
Codestrong 2012 breakout session   building your own custom cloud servicesCodestrong 2012 breakout session   building your own custom cloud services
Codestrong 2012 breakout session building your own custom cloud services
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
 
Oracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node finalOracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node final
 
Dmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script TechnologiesDmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script Technologies
 
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
 Node.js server side render in the Age of APIs - Full Stack Toronto 2017 Node.js server side render in the Age of APIs - Full Stack Toronto 2017
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
 
Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (27/8/2014)
 
Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)Intro to node.js - Ran Mizrahi (28/8/14)
Intro to node.js - Ran Mizrahi (28/8/14)
 
MVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming model
 

Mais de Elton Stoneman

Pluralsight Webinar: Simplify Your Project Builds with Docker
Pluralsight Webinar: Simplify Your Project Builds with DockerPluralsight Webinar: Simplify Your Project Builds with Docker
Pluralsight Webinar: Simplify Your Project Builds with DockerElton Stoneman
 
TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020Elton Stoneman
 
Kubernetes 101 & Workshop
Kubernetes 101 & WorkshopKubernetes 101 & Workshop
Kubernetes 101 & WorkshopElton Stoneman
 
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxy
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxyBuildStuff 2019: Let me handle that for you... Why you need a reverse proxy
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxyElton Stoneman
 
Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...
Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...
Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...Elton Stoneman
 
Docker + Arm - Multi-arch builds with Docker `buildx`
Docker + Arm - Multi-arch builds with Docker `buildx`Docker + Arm - Multi-arch builds with Docker `buildx`
Docker + Arm - Multi-arch builds with Docker `buildx`Elton Stoneman
 
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...Elton Stoneman
 
Docker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with ContainersDocker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with ContainersElton Stoneman
 
Docker Cambridge: CI/CD for the Database - Powered by Containers
Docker Cambridge: CI/CD for the Database - Powered by ContainersDocker Cambridge: CI/CD for the Database - Powered by Containers
Docker Cambridge: CI/CD for the Database - Powered by ContainersElton Stoneman
 
Docker Webinar: From Windows 2003 to the Cloud
Docker Webinar: From Windows 2003 to the CloudDocker Webinar: From Windows 2003 to the Cloud
Docker Webinar: From Windows 2003 to the CloudElton Stoneman
 
DevOps Barcelona 2018: Why Containers Will Take Over the World
DevOps Barcelona 2018: Why Containers Will Take Over the WorldDevOps Barcelona 2018: Why Containers Will Take Over the World
DevOps Barcelona 2018: Why Containers Will Take Over the WorldElton Stoneman
 
CloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudCloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudElton Stoneman
 
Developer South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with DockerDeveloper South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with DockerElton Stoneman
 
Developer South Coast 2018: Docker on Windows - The Beginner's Guide
Developer South Coast 2018: Docker on Windows - The Beginner's GuideDeveloper South Coast 2018: Docker on Windows - The Beginner's Guide
Developer South Coast 2018: Docker on Windows - The Beginner's GuideElton Stoneman
 
TechDays NL 2017: The Hybrid Docker Swarm
TechDays NL 2017: The Hybrid Docker SwarmTechDays NL 2017: The Hybrid Docker Swarm
TechDays NL 2017: The Hybrid Docker SwarmElton Stoneman
 
ScotSoft 2017: Why Containers Will Take Over the World
ScotSoft 2017: Why Containers Will Take Over the WorldScotSoft 2017: Why Containers Will Take Over the World
ScotSoft 2017: Why Containers Will Take Over the WorldElton Stoneman
 
ScotSoft 2017: Power Your Move to the Cloud with Docker
ScotSoft 2017: Power Your Move to the Cloud with DockerScotSoft 2017: Power Your Move to the Cloud with Docker
ScotSoft 2017: Power Your Move to the Cloud with DockerElton Stoneman
 
Linuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopLinuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopElton Stoneman
 
Xpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopXpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopElton Stoneman
 

Mais de Elton Stoneman (20)

Pluralsight Webinar: Simplify Your Project Builds with Docker
Pluralsight Webinar: Simplify Your Project Builds with DockerPluralsight Webinar: Simplify Your Project Builds with Docker
Pluralsight Webinar: Simplify Your Project Builds with Docker
 
TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020
 
Kubernetes 101 & Workshop
Kubernetes 101 & WorkshopKubernetes 101 & Workshop
Kubernetes 101 & Workshop
 
Docker 101 & Workshop
Docker 101 & WorkshopDocker 101 & Workshop
Docker 101 & Workshop
 
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxy
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxyBuildStuff 2019: Let me handle that for you... Why you need a reverse proxy
BuildStuff 2019: Let me handle that for you... Why you need a reverse proxy
 
Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...
Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...
Cloud Native London - 2019: What is a Service Mesh, and if I Get One Will it ...
 
Docker + Arm - Multi-arch builds with Docker `buildx`
Docker + Arm - Multi-arch builds with Docker `buildx`Docker + Arm - Multi-arch builds with Docker `buildx`
Docker + Arm - Multi-arch builds with Docker `buildx`
 
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
 
Docker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with ContainersDocker Sydney: 5 Patterns for App Transformation with Containers
Docker Sydney: 5 Patterns for App Transformation with Containers
 
Docker Cambridge: CI/CD for the Database - Powered by Containers
Docker Cambridge: CI/CD for the Database - Powered by ContainersDocker Cambridge: CI/CD for the Database - Powered by Containers
Docker Cambridge: CI/CD for the Database - Powered by Containers
 
Docker Webinar: From Windows 2003 to the Cloud
Docker Webinar: From Windows 2003 to the CloudDocker Webinar: From Windows 2003 to the Cloud
Docker Webinar: From Windows 2003 to the Cloud
 
DevOps Barcelona 2018: Why Containers Will Take Over the World
DevOps Barcelona 2018: Why Containers Will Take Over the WorldDevOps Barcelona 2018: Why Containers Will Take Over the World
DevOps Barcelona 2018: Why Containers Will Take Over the World
 
CloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudCloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the Cloud
 
Developer South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with DockerDeveloper South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with Docker
 
Developer South Coast 2018: Docker on Windows - The Beginner's Guide
Developer South Coast 2018: Docker on Windows - The Beginner's GuideDeveloper South Coast 2018: Docker on Windows - The Beginner's Guide
Developer South Coast 2018: Docker on Windows - The Beginner's Guide
 
TechDays NL 2017: The Hybrid Docker Swarm
TechDays NL 2017: The Hybrid Docker SwarmTechDays NL 2017: The Hybrid Docker Swarm
TechDays NL 2017: The Hybrid Docker Swarm
 
ScotSoft 2017: Why Containers Will Take Over the World
ScotSoft 2017: Why Containers Will Take Over the WorldScotSoft 2017: Why Containers Will Take Over the World
ScotSoft 2017: Why Containers Will Take Over the World
 
ScotSoft 2017: Power Your Move to the Cloud with Docker
ScotSoft 2017: Power Your Move to the Cloud with DockerScotSoft 2017: Power Your Move to the Cloud with Docker
ScotSoft 2017: Power Your Move to the Cloud with Docker
 
Linuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopLinuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro Workshop
 
Xpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopXpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows Workshop
 

Último

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Non-Microsoft Technologies Which Microsoft is Embracing

  • 1. E LT O N S T O N E M A N , U K C S U G : A P R I L 2 0 1 3 NON-MICROSOFT TECHNOLOGIES MICROSOFT IS EMBRACING
  • 2. AGENDA • JSON • JavaScript • NoSQL • Node.js • AMQP
  • 3. JSON • Serialization format • “JavaScript Object Notation” • Concise, human-readable, interoperable • No schema XML <vehicle xmlns=“http://schemas.xyz.com/vehicles”> <makeCode>audi</makeCode> <modelCode>a3</modelCode> </vehicle> JSON { "modelCode": "a3", "makeCode": "audi"
  • 4. JSON: WHY SHOULD I CARE? • Performance • Interop (json.org) • Ease of access • Modernity
  • 5. MICROSOFT AND JSON • Available in WCF from Fx 3.5 • DataContractJsonSerializer • WebHttpBinding • First-class option in ASP.NET Web API • MVC 4 & Fx 4.5 • 3rd party JSON.NET library
  • 6. JSON IN .NET • WCF Demo
  • 7. JSON IN .NET • WCF Demo – Recap • Explicit in service definition • [WebGet(UriTemplate="makes", ResponseFormat= WebMessageFormat.Json)] • Hard to customise
  • 8. JSON IN .NET • ASP.NET WebApi Demo
  • 9. JSON IN .NET • ASP.NET WebApi Demo - Recap • Implicitly available, by client request • Accept: application/json • Easily customisable
  • 10. JAVASCRIPT • Weakly-typed OO language • Interpreted, browser runtime • Event loop & callback mechanism window.setInterval(function() { document.getElementById("container").innerHTML+='<p>More</ p>';}, 500); function writeMore() { document.getElementById("container").innerHTML+='<p>More</ p>'; } window.setInterval(writeMore, 500); JsFiddle JsFiddle
  • 11. JAVASCRIPT: WHY SHOULD I CARE? • Rapid development/prototyping • Widen API reach • Single codebase for JS runtimes • Web apps and mobile apps • Inherently async • Server-side applications
  • 12. MICROSOFT AND JAVASCRIPT • jQuery in ASP.NET + IntelliSense • Knockout (MVVM), modernizr (HTML5) • TypeScript • Superset of JavaScript, adds type-safety, class & interface definition • Compiler generates pure JS • Eases learning curve from .NET • VS plugin (and Vim, Emacs) + WebEssentials • Pre-dates ECMAScript 6
  • 14. FROM TYPESCRIPT module ApiClient { export class Vehicles { getModels(makeCode: string) { return 'someJSON'; }; static baseUrl = 'http://localhost/Sixeyed.CarValet.Services/VehicleService. svc'; } } var client: ApiClient.Vehicles = new ApiClient.Vehicles; var models = client.getModels('rover'); • TypeScript Demo - Recap
  • 15. TO JAVASCRIPT var ApiClient; (function (ApiClient) { var Vehicles = (function () { function Vehicles() { } Vehicles.prototype.getModels = function (makeCode) { return 'someJSON'; }; Vehicles.baseUrl = 'http://localhost/Sixeyed.CarValet.Services/VehicleService. svc'; return Vehicles; })(); ApiClient.Vehicles = Vehicles; })(ApiClient || (ApiClient = {})); var client = new ApiClient.Vehicles(); var models = client.getModels('rover'); JsFiddle
  • 16. NOSQL • “Not-only SQL” -> document databases • No schema, collections of objects • Mature products • Rich, efficient querying (+LINQ) • Indexing • Map/reduce
  • 17. NOSQL: WHY SHOULD I CARE? • Easy access, REST+JSON • Cloud integration – Shared Database • Accelerated delivery • Fewer moving parts • Simpler solution • Simpler maintenance • Performance & scale-out
  • 18. MICROSOFT AND NOSQL • SQL Azure beta -> Table Storage • NoSQL, with limitations • MongoLabs Azure Add-On • MongoDB hosted on Azure
  • 20. NOSQL • MongoDB Demo – Recap • Azure Add-On, NuGet driver • GetServer().GetDatabase().GetCollection<>() • LINQ • Wrapper class • BSON ObjectId
  • 21. NODE.JS • JavaScript platform • Built on Google’s JS runtime • Server • Websites • Accelerators • Gateways
  • 22. NODE.JS: WHY SHOULD I CARE? • Single-threaded, non-blocking, async • Efficient & scalable • Large, dedicated community • Rich package management (NPM) • Leading-edge – Socket.io, MongoDB
  • 23. MICROSOFT AND NODE.JS • IISNode • IIS Express, Node.js extension for IIS7 • Node.js on Azure
  • 25. NODE.JS • FormatService Demo – Recap • Simple HTTP server • Require modules (internal/external) • JS async model – passing callbacks • Hosted on Azure websites • Git publishing • Platform agnostic
  • 26. AMQP • Advanced Messaging Queuing Protocol • Interopable, standards-based wire protocol • Fast, durable, scalable • History & heavy usage in finance industry • Industry adopters • RabbitMQ - VMWare • Apache Qpid • Windows Azure Service Bus
  • 27. AMQP: WHY SHOULD I CARE? • Rich functionality & messaging patterns • Interoperable MQ standard • Ignore protocol, focus on message • Multiple providers • Choose your cloud (StormMQ…) • BUT • Few full AMQP providers • And notable missing parties (SQS, ZeroMQ) • How interoperable? • Traction?
  • 28. MICROSOFT AND AMQP • v1.0 launch (2011) • AMQP support for Azure Service Bus • Queue, topic, subscription • Limited client support…
  • 29. AMQP • Node.js + RabbitMQ Demo
  • 30. AMQP • Node.js + RabbitMQ Demo Recap • 3rd party AMQP module • Built for RabbitMQ • RabbitMQ .NET client library • Durable messaging • Multiple consumers
  • 31. AMQP • Node.js + Service Bus Queues Demo
  • 32. AMQP • Node.js + Service Bus Queues Demo – Recap • Azure Node.js module • AMQP module doesn’t connect to Azure • Azure .NET Client Library • RabbitMQ client library doesn’t connect to Azure

Notas do Editor

  1. Open VehicleService – WebGetCall makes-WCF in RESTClientShow XML versionOpen DiagnosticsServiceShow status-WCF with date &amp; enum
  2. Open VehicleService – WebGetCall makes-WCF in RESTClientShow XML versionOpen DiagnosticsServiceShow status-WCF with date &amp; enum
  3. Open VehicleController – WebApi overviewCall vehicle-API in RESTClientGet as XML with AcceptOpen DiagnosticsControllerShow status-WCF with date &amp; enum, show formatting options in global.asax
  4. Open VehicleController – WebApi overviewCall vehicle-API in RESTClientGet as XML with AcceptOpen DiagnosticsControllerShow status-WCF with date &amp; enum, show formatting options in global.asax
  5. 1. Load ApiClient.ts2. TS constucts – module, export, class, “:” type3. Generates .js or .min.js on save - WebEssentials + TS plugin4. Show intellisense – var vehicle = client.get…
  6. 1. Load ApiClient.ts2. TS constucts – module, export, class, “:” type3. Generates .js or .min.js on save - WebEssentials + TS plugin4. Show intellisense – var vehicle = client.get…
  7. Azure Portal -&gt; MongoLabs portalShow collectionREST client – get &amp; searchOpen VehiclesController; NuGet – installed packages, 10gen MongoGet Server – MongoLab, db – my db, collection – whateverStandard LINAOpen CachedVehicleModel – Mongo-specific wrapper
  8. Open FormatService.js &amp; walkthrough - imports, functions, HTTP serverRun FormatService.cmd &amp; browse to Local – change input and show consoleOpen Azure console, show Web site &amp; browse to Azure serviceBack to Mac, open TextWrangler &amp; editOpen SourceTree, and commit – with push, show all – deployment text
  9. Open FormatService.js &amp; walkthrough - imports, functions, HTTP serverRun FormatService.cmd &amp; browse to Local – change input and show consoleOpen Azure console, show Web site &amp; browse to Azure serviceBack to Mac, open TextWrangler &amp; editOpen SourceTree, and commit – with push, show all – deployment text
  10. Open PasswordReset.js &amp; walkthrough – connect to AMQP, create &amp; bind queue, HTTP serverOpen RabbitMQmgmtStart PasswordReset.cmd &amp; fire requestsRabbitMQmgmt – messages in queue, view messageOpen AmqpConsumerprogram.csStart AmqpConsumer &amp; PaperCut – process messages; start x2 and submit more
  11. Open PasswordReset.js &amp; walkthrough – connect to AMQP, create &amp; bind queue, HTTP serverOpen RabbitMQ mgmtStart PasswordReset.cmd &amp; fire requestsRabbitMQ mgmt – messages in queue, view messageOpen AmqpConsumerprogram.csStart AmqpConsumer &amp; PaperCut – process messages; start x2 and submit more
  12. Moan – AMQP should interop, but notOpen AzurePasswordReset.js &amp; walkthrough – connect to Azure, create queue, HTTP serverStart AzurePasswordReset.cmd &amp; fire requestsAzure console – messages in queueOpen AzureConsumerprogram.csStart AzureConsumer &amp; PaperCut – process messages; start x2 and submit more
  13. Moan – AMQP should interop, but notOpen AzurePasswordReset.js &amp; walkthrough – connect to Azure, create queue, HTTP serverStart AzurePasswordReset.cmd &amp; fire requestsAzure console – messages in queueOpen AzureConsumerprogram.csStart AzureConsumer &amp; PaperCut – process messages; start x2 and submit more