SlideShare a Scribd company logo
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

More Related Content

What's hot

Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker services
LINE 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 Framework
Michal 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 ClojureScript
Jim Lynch
 
Rubigraph
RubigraphRubigraph
React october2017
React october2017React october2017
React october2017
David Greenfield
 
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
graemerocher
 
Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介Clovaを支える技術 機械学習配信基盤のご紹介
Clovaを支える技術 機械学習配信基盤のご紹介
LINE Corporation
 
Ruby Setup
Ruby SetupRuby Setup
Ruby Setup
Alan Hecht
 
Spider进化论
Spider进化论Spider进化论
Spider进化论cjhacker
 
AngularJS
AngularJSAngularJS
AngularJS
Yogesh L
 
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
Piergiorgio Lucidi
 
GraphAware Framework Intro
GraphAware Framework IntroGraphAware Framework Intro
GraphAware Framework Intro
Michal Bachman
 
Micronaut Deep Dive - Devnexus 2019
Micronaut Deep Dive - Devnexus 2019Micronaut Deep Dive - Devnexus 2019
Micronaut Deep Dive - Devnexus 2019
graemerocher
 
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
Neo4j
 
Implementing portlets using Web Scripts
Implementing portlets using Web ScriptsImplementing portlets using Web Scripts
Implementing portlets using Web Scripts
Piergiorgio 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 2019
graemerocher
 
Angular4 kickstart
Angular4 kickstartAngular4 kickstart
Angular4 kickstart
Foyzul Karim
 
Swarms: introduction
Swarms: introductionSwarms: introduction
Swarms: introduction
SÎNICĂ Alboaie
 
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
Saeed Zarinfam
 

What's hot (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
 

Similar to 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 Roma
Vitalij 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.js
Yoann 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.js
Steve 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 2012
Alexandre 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 2014
Oscar 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 2014
manolitto
 
AWS Lambda in C#
AWS Lambda in C#AWS Lambda in C#
AWS Lambda in C#
Amazon Web Services
 
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
 
ASP.NET: Present and future
ASP.NET: Present and futureASP.NET: Present and future
ASP.NET: Present and future
Hrvoje Hudoletnjak
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# Applications
Amazon 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
 
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
Getting value from IoT, Integration and Data Analytics
 
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
LogeekNightUkraine
 
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
Ruy Adorno
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
Eamonn 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 model
Alex Thissen
 

Similar to 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
 

More from 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 Docker
Elton Stoneman
 
TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020
Elton Stoneman
 
Kubernetes 101 & Workshop
Kubernetes 101 & WorkshopKubernetes 101 & Workshop
Kubernetes 101 & Workshop
Elton Stoneman
 
Docker 101 & Workshop
Docker 101 & WorkshopDocker 101 & Workshop
Docker 101 & Workshop
Elton 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 proxy
Elton 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 Containers
Elton 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 Containers
Elton 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 Cloud
Elton 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 World
Elton 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 Cloud
Elton 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 Docker
Elton 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 Guide
Elton 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 Swarm
Elton 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 World
Elton 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 Docker
Elton Stoneman
 
Linuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopLinuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro Workshop
Elton Stoneman
 
Xpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopXpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows Workshop
Elton Stoneman
 

More from 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
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 

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

Editor's Notes

  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