Post on 27-Jun-2015
description
transcript
Azure
Christian Dalager
Gå ned i vægt medAzure Mobile Services
Softwareudvikler mmEksponent ApS
Agenda
Gå ned i vægt med Azure Mobile Services
• Case: Fitbit Weight• Azure Mobile Services i overblik• Demonstration m WP8 app
• Data, • Auth, • API, • Git• Push
Christian Dalager
Softwareudvikler @ Eksponent.com
Sproghistorie:
Perl > PHP > Java > .NET > Ruby > Javascript
Case: Fitbit Weight
Fitbit Weight What?!
Ekstern pitch
”Få din vægt kastet i hovedet. Hele tiden. Det motiverer dit til at opnå din ønskede vægt”
Krav• Live tile• Push• Bruger går aldrig ind i app’en
Intern pitch
”Den her vægt har et API!”
Install flow
Op på vægten...
Efter 25 sek
Hvorfor vælge Mobile Services?
• Push• Data• API• Let/gratis at komme igang med
Azure Mobile Services
Features i Mobile Services
• Data• API• Scheduler• Push• Identity• Scale
Connected client APIs
• Windows Phone 7/8
• Windows Store• Android• iOS• REST (to bind
them all)
Tooling
• In-browser editing (javascript editor)• Git• Logging• Command Line Interface (npm install azure –
g)
Demo 1Opret en mobile service
Data og ”tables”
• Alle har brug for data• Dynamisk skema (document-style)• Permissions• Scripts• Kan tilgås m API’er eller REST
interface.
Demo 2AMSClient – windows phone 8 app, der henter/gemmer data fra Azure Mobile Services.
Restful interface med OData support
Query eksempler
[serviceurl]/tables/item?$top=2
[serviceurl]/tables/item?$filter=substringof(‘ting', Name) eq true
Authentication
• Undgå at skriv dit eget authentication system. • Eller dit eget OAUTH signup flow.• Providers:• Microsoft Account• Twitter• Facebook• Google
• Du får kun en identifier, ikke access tokens.
Demo 3AMSClient – udvidelse med authentication
Authentication, kommentarer
• Microsoft Account Authentication burde kende dig når du authenticater på windows phone
Git!
• Distribueret source control• Deployment (bruger kudu, samme som Azure Websites)• Git er for tiden den mest udbredte DVCS – og defacto standard for
OSS projekter• Github• Bitbucket• Team Foundation Services• Azure• Heruko• Appharbor
Demo 4Git source control deployment
Git, kommentarer
• SSH public/private keypair authentication ville være rart• Problemet løses med >git config credential.helper store
• Bedre author logging på portalen:
Push
Man kan pushe fra
• Data scripts• API• Scheduler• Custom API
Man pusher platformsspecifikt
• Windows Phone (push.mpns.*)
• Windows Apps (push.wns.*)
• Android (push.gns.*)• iOS (push.apns.*)
Push flow, WP8
1. Bed om en HttpNotificationChannel2. Åbn den3. Gem notification URI på serveren, så
man udefra ved, hvem man skal kalde4. Bind channel til Toast/Tile/Raw
Item.insert.jspush.mpns.sendRaw(channel.uri, { payload: "This is very RAW" }, { success: function(pushResponse) { console.log("Sent push, result:", pushResponse); }, error: function(e) { console.log('ERRoR: ' + JSON.stringify(e)); }});
Demo 5AMSClient – udvidelse med Push
Custom API
• Custom APIs eksponeres på http://[service].azure-mobile.net/api/[api-navn]
• Et api endpoint er et NodeJs module• Baseret på Express (NodeJs web framework: http://expressjs.com/
)• Med nogle permissions sat på sig.• Mulighed for NPM og shared code
Demo 6Custom API: indsæt data fra API.Desuden: NPM og Shared code
Custom API, kommentarer
• NPM understøtter ikke package.json formatet (svarende til NuGet Package Restore)
Scheduler
En task scheduler.
Ikke noget fancy, men handy.
Overordnet indtryk?
Hell yeah.• Let tilgængeligt• Man kommer *meget* hurtigt i luften.• Mange features• Til mobile apps er det *rigtigt* smart at scaling
er tænkt med, hvis f.eks. det indiske marked opdager din app.
Gotchas
• Data scripts fungerer kun gennem ”eksternt api”• Antallet af ”active devices” har loft på 500 devices på den
”gratis” plan. Så hvis du laver en app, der bliver populær, risikerer du selv at skulle finansiere denne popularitet. lav en forretningsplan!
Farvel og tak
Fang mig på
• eksponent.com
• Twitter: @dalager
• Mail: christian.dalager@eksponent.com
Kildekode
• WP8 AMSClient : https://bitbucket.org/dalager/amsclient
• Dalager01 Mobile Service source: https://bitbucket.org/dalager/cddk13-service