3. Survival, Inquiry, Sophistication
1. How can we eat?
2. Why do we eat?
3. Where shall we have lunch?
“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
4. Survival to Sophistication
486 – 100MHz 2 Cores – 1.5GHz
“Optimal” 8 MB RAM 1 GB RAM
13 floppy disks OTA Upgrade
“Max” 2GB Hard Disk 32GB Flash Disk + 7GB online
28.8k US Robotics Modem 4G, WiFi, NFC, BlueTooth
£1200 £400
5. On with some engineering…
C# Cloud
C# Clients
C# Cloud-Client Communication
C# Code
Real App Examples
Q&A
6. Why C#?
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
7. Hey Dude - Javascript – it’s Amazeballs
Yes
Yes
Yes
“Our biggest mistake was
But…
betting too much on HTML5”
http://bitly.com/QhPf5L
8. Why Azure?
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, …
16. Data Service: More Options
• Switch to ApiController – WebApi
• Consider Azure Mobile Services
• ‘Legacy’ WCF also fully supported *
* well…. almost fully ;)
17. Data Services: Size Matters
XML JSON
JSON list of 100 pictures Gzip JSON
58kB 21kB 2kB
18. Recap: TweetPic Server
Sophistication: Lots of C# Server
Server: technologies are available:
Storage: nHibernate
RavenDB
Code First Entity Framework Lucene.Net
Azure C# SDK MVC Async (+SignalR)
ServiceStack
Logic/Services: Azure - Access Signatures
WebAPI
Custom C# OpenRasta
Twitterizer Simple.Web
Nancyfx
Presentation: FubuMvc
ASP.NET MVC (Json) ASMX and WebForms
ProtocolBuf.Net
WCF (oData) …
35. Mobile Services?
Data Access
Business Logic
Azure Mobile Services
Presentation
Service Consumption Local Data/Services
Business Logic
UI Logic
WP7 iOS Droid Win8