Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

C# Client to Cloud


Published on

Talk given today at LondonAzure

  • Be the first to comment

  • Be the first to like this

C# Client to Cloud

  1. 1. @slodgeC# - Cloud to MobileSurvival, Inquiry, Sophistication
  2. 2. Survival, Inquiry, Sophistication1. 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
  3. 3. 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
  4. 4. On with some engineering…C# CloudC# ClientsC# Cloud-Client CommunicationC# CodeReal App ExamplesQ&A
  5. 5. Why C#?Shared code across mobile and cloud“low level”: compiles, typesafe, quickNative performanceNative look and feelTestableLibraries: commercial and open – and nuget!Generics, Linq, async/await and the future…You already have: skills, tools, code
  6. 6. Hey Dude - Javascript – it’s Amazeballs Yes Yes Yes “Our biggest mistake was But… betting too much on HTML5”
  7. 7. Why Azure?Storage – lots of itConnectivity – lots of it. Continuous. GlobalProcessing – lots of it. Scalable. Burstable.Privacy/SecurityQuick updateabilityToys – ACS, Queuing, CDN, TrafficManager,Caching, Services, …
  8. 8. ImportantAzure is: big cheapAzure is not: infinite free
  9. 9. Examples: Faster Solutions Lottery Results Push Web Role Worker Role Storage
  10. 10. Demo: CodeTweetPic Azure Website Azure SQL Storage Azure
  11. 11. Storage: SQL via EF Code First
  12. 12. Storage: Azure Blob Uploads
  13. 13. Data Services: WCF oData
  14. 14. Data Services: Json ASP.Net MVC
  15. 15. Data Service: More Options• Switch to ApiController – WebApi• Consider Azure Mobile Services• ‘Legacy’ WCF also fully supported * * well…. almost fully ;)
  16. 16. Data Services: Size MattersXML JSON JSON list of 100 pictures Gzip JSON58kB 21kB 2kB
  17. 17. Recap: TweetPic Server Sophistication: Lots of C# ServerServer: 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) …
  18. 18. Survival: Simple TweetPic Client WP7 XAML + C# CodeBehind
  19. 19. Survival: Simple TweetPic Client
  20. 20. Inquiry: TweetPic ClientService Consumption Local Data/ServicesBusiness LogicUI Logic - ViewModelsPresentation - WP7 – XAML
  21. 21. Sophistication: TweetPic ClientsService Consumption Local Data/ServicesBusiness LogicUI Logic - ViewModelsWP7 – XAML Win8 – XAML iOS – XIB/MT.D Droid – AXML
  22. 22. Sophistication: Prove it - Test it
  23. 23. Sophistication: TweetPic clients
  24. 24. Declarative Presentation
  25. 25. C# App StackData AccessBusiness LogicPresentationService Consumption Local Data/ServicesBusiness LogicUI LogicWP7 iOS Droid Win8
  26. 26. Examples: RunSat SQL Server Non Cloud Web Site Blob Storage
  27. 27. Examples: SQLBits Conference App
  28. 28. Examples: Azure London Conference AppAzure Website based Service Download Twitter Authentication Checkin Checkin Scoreboards Photo Upload
  29. 29. Example: Azure London Conference App Open source helps! • Xamarin Mobile API • Redth/Zxing control • Reactive.Net • …
  30. 30. Examples: Xbox Advertising Apps
  31. 31. Example: Xbox Advertising Apps
  32. 32. Example: Xbox Advertising Apps
  33. 33. Examples: AzureApp
  34. 34. Mobile Services?Data AccessBusiness Logic Azure Mobile ServicesPresentationService Consumption Local Data/ServicesBusiness LogicUI LogicWP7 iOS Droid Win8
  35. 35. Mobile Services?
  36. 36. RecapC# CloudC# ClientsC# Cloud-Client CommunicationC# CodeReal App ExamplesQ&A
  37. 37. For more dev - create.msdn.comMono - xaminars from xamarin.comPCL - -
  38. 38. @slodge
  39. 39. @slodge
  40. 40. @slodge
  41. 41. @slodge
  42. 42. @slodge
  43. 43. @slodge
  44. 44. Push Notifications