Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

@slodge C# - Cloud to Mobile Survival, Inquiry, Sophistication

Slide 3

Slide 3 text

1. How can we eat? 2. Why do we eat? 3. Where shall we have lunch? Survival, Inquiry, Sophistication “The History of every major Galactic Civilization tends to pass through three distinct and recognizable phases, those of Survival, Inquiry and Sophistication, otherwise known as the How, Why, and Where phases. For instance, the first phase is characterized by the question 'How can we eat?' the second by the question 'Why do we eat?' and the third by the question 'Where shall we have lunch?” ― Douglas Adams, The Restaurant at the End of the Universe

Slide 4

Slide 4 text

Survival to Sophistication 486 – 100MHz “Optimal” 8 MB RAM 13 floppy disks “Max” 2GB Hard Disk 28.8k US Robotics Modem 2 Cores – 1.5GHz 1 GB RAM OTA Upgrade 32GB Flash Disk + 7GB online 4G, WiFi, NFC, BlueTooth £1200 £400

Slide 5

Slide 5 text

C# Cloud C# Clients C# Cloud-Client Communication C# Code Real App Examples Q&A On with some engineering…

Slide 6

Slide 6 text

Shared code across mobile and cloud “low level”: compiles, typesafe, quick Native performance Native look and feel Testable Libraries: commercial and open – and nuget! Generics, Linq, async/await and the future… You already have: skills, tools, code Why C#?

Slide 7

Slide 7 text

Hey Dude - Javascript – it’s Amazeballs Yes Yes Yes But… “Our biggest mistake was betting too much on HTML5” http://bitly.com/QhPf5L

Slide 8

Slide 8 text

Storage – lots of it Connectivity – lots of it. Continuous. Global Processing – lots of it. Scalable. Burstable. Privacy/Security Quick updateability Toys – ACS, Queuing, CDN, TrafficManager, Caching, Services, … Why Azure?

Slide 9

Slide 9 text

Azure is: big cheap Azure is not: infinite free Important

Slide 10

Slide 10 text

Examples: Faster Solutions Lottery Results Web Role Storage Worker Role Push

Slide 11

Slide 11 text

TweetPic Demo: Code Azure Website Azure Storage SQL Azure

Slide 12

Slide 12 text

Storage: SQL via EF Code First

Slide 13

Slide 13 text

Storage: Azure Blob Uploads

Slide 14

Slide 14 text

Data Services: WCF oData

Slide 15

Slide 15 text

Data Services: Json ASP .Net MVC

Slide 16

Slide 16 text

• Switch to ApiController – WebApi • Consider Azure Mobile Services • ‘Legacy’ WCF also fully supported Data Service: More Options * well…. almost fully ;) *

Slide 17

Slide 17 text

Data Services: Size Matters JSON list of 100 pictures XML Gzip JSON 58kB 21kB 2kB JSON

Slide 18

Slide 18 text

Server: Storage: Code First Entity Framework Azure C# SDK Logic/Services: Custom C# Twitterizer Presentation: ASP .NET MVC (Json) WCF (oData) Recap: TweetPic Server Sophistication: Lots of C# Server technologies are available: nHibernate RavenDB Lucene.Net MVC Async (+SignalR) ServiceStack Azure - Access Signatures WebAPI OpenRasta Simple.Web Nancyfx FubuMvc ASMX and WebForms ProtocolBuf.Net …

Slide 19

Slide 19 text

Survival: Simple TweetPic Client WP7 XAML + C# CodeBehind

Slide 20

Slide 20 text

Survival: Simple TweetPic Client

Slide 21

Slide 21 text

Inquiry: TweetPic Client Service Consumption Business Logic Local Data/Services UI Logic - ViewModels Presentation - WP7 – XAML

Slide 22

Slide 22 text

Sophistication: TweetPic Clients Service Consumption Business Logic UI Logic - ViewModels WP7 – XAML Win8 – XAML iOS – XIB/MT.D Droid – AXML Local Data/Services

Slide 23

Slide 23 text

Sophistication: Prove it - Test it

Slide 24

Slide 24 text

Sophistication: TweetPic clients

Slide 25

Slide 25 text

Declarative Presentation

Slide 26

Slide 26 text

C# App Stack WP7 iOS Droid Win8 Data Access Business Logic Presentation Service Consumption Business Logic Local Data/Services UI Logic

Slide 27

Slide 27 text

Examples: RunSat Non Cloud Web Site Blob Storage SQL Server

Slide 28

Slide 28 text

Examples: SQLBits Conference App

Slide 29

Slide 29 text

Azure Website based Service Download Twitter Authentication Checkin Checkin Scoreboards Photo Upload Examples: Azure London Conference App

Slide 30

Slide 30 text

Example: Azure London Conference App Open source helps! • Xamarin Mobile API • Redth/Zxing control • Reactive.Net • …

Slide 31

Slide 31 text

Examples: Xbox Advertising Apps

Slide 32

Slide 32 text

Example: Xbox Advertising Apps http://www.youtube.com/watch?v=LPC8V-W_CKg

Slide 33

Slide 33 text

Example: Xbox Advertising Apps

Slide 34

Slide 34 text

Examples: AzureApp

Slide 35

Slide 35 text

Mobile Services? WP7 iOS Droid Win8 Data Access Business Logic Presentation Service Consumption Business Logic Local Data/Services UI Logic Azure Mobile Services

Slide 36

Slide 36 text

Mobile Services?

Slide 37

Slide 37 text

C# Cloud C# Clients C# Cloud-Client Communication C# Code Real App Examples Q&A Recap

Slide 38

Slide 38 text

azure.com asp.net/web-api windowsazure.com/en-us/develop/mobile winX dev - create.msdn.com Mono - xaminars from xamarin.com PCL - blogs.mdsn.com/b/dsplaisted mvvm - github.com/slodge/mvvmcross For more inspiration:

Slide 39

Slide 39 text

@slodge

Slide 40

Slide 40 text

@slodge

Slide 41

Slide 41 text

@slodge

Slide 42

Slide 42 text

@slodge

Slide 43

Slide 43 text

@slodge

Slide 44

Slide 44 text

@slodge

Slide 45

Slide 45 text

Push Notifications