Download presentation
Presentation is loading. Please wait.
Published byAdi Pranata Modified over 6 years ago
1
11/30/2018 4:57 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
Building Connected Windows 8 Apps with Windows Azure
11/30/2018 4:57 AM Building Connected Windows 8 Apps with Windows Azure Nick Harris Windows Azure Technical Evangelist Microsoft Corporation Blob: © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
3
Basic Connectivity Media Location Push Notifications
Agenda Basic Connectivity Media Location Push Notifications
4
Fundamentals
5
Compute: What are our Options?
On-Premises Virtual Machines Cloud Services Web Sites Applications Applications Applications Applications Data Data Data Data Custom Software Custom Software Startup Tasks Native Code Native Code Native Code Firewall Firewall Rules Firewall Rules Network Virtual Network Virtual Network O/S O/S Virtualization Hardware
6
Storage: What are our options?
Tables Storage Benefits: Non-relational structured storage Massive scale-out Windows Azure Blobs Benefits: Big files Windows Azure Queues Benefits: Persistent Async Messaging Enqueue, Dequeue SQL Database Benefits: Relational database Highly available Managed for you as a service
7
Windows 8 Metro Apps: Language Support Today JS/HTML C#/XAML C++
WinRT API Today HttpClient Media CameraCaptureUI Location Geolocator Notifications PushNotificationChannelManager
8
Basic Connectivity
9
Basic WebAPI + HttpClient
Demo Basic WebAPI + HttpClient
10
Key Takeaway: Serialization format matters
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> - <feed xml:base=" xmlns:d=" xmlns:m=" xmlns=" <title type="text">Drivers</title> <id> <updated> T22:12:38Z</updated> <link rel="self" title="Drivers" href="Drivers" /> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(1)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(1)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(1)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">1</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>Rob</d:FirstName> <d:LastName>Tiffany</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(2)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(2)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(2)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">2</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>Loke Uei</d:FirstName> <d:LastName>Tan</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(3)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(3)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(3)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">3</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>Dan</d:FirstName> <d:LastName>Bouie</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(4)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(4)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(4)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">4</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>John</d:FirstName> <d:LastName>Dietz</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(5)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(5)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(5)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">5</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>Derek</d:FirstName> <d:LastName>Snyder</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(6)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(6)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(6)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">6</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>Steve</d:FirstName> <d:LastName>Hegenderfer</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(7)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(7)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(7)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">7</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>Chip</d:FirstName> <d:LastName>Vollers</d:LastName> </m:properties> </content> </entry> - <entry> <id> <title type="text" /> <updated> T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(8)" /> <link rel=" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(8)/DistributionCenter" /> <link rel=" type="application/atom+xml;type=feed" title="Todays" href="Drivers(8)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme=" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">8</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>James</d:FirstName> <d:LastName>Pratt</d:LastName> </m:properties> </content> </entry> </feed> <?xml version="1.0" encoding="utf-8"?> <DataSet xmlns=" <xs:schema id="NewDataSet" xmlns="" xmlns:xs=" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Driver"> <xs:complexType> <xs:sequence> <xs:element name="DriverId" type="xs:int" minOccurs="0" /> <xs:element name="DistributionCenterId" type="xs:int" minOccurs="0" /> <xs:element name="FirstName" type="xs:string" minOccurs="0" /> <xs:element name="LastName" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns=""> <Driver diffgr:id="Driver1" msdata:rowOrder="0"> <DriverId>1</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>Rob</FirstName> <LastName>Tiffany</LastName> </Driver> <Driver diffgr:id="Driver2" msdata:rowOrder="1"> <DriverId>2</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>Loke Uei</FirstName> <LastName>Tan</LastName> </Driver> <Driver diffgr:id="Driver3" msdata:rowOrder="2"> <DriverId>3</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>Dan</FirstName> <LastName>Bouie</LastName> </Driver> <Driver diffgr:id="Driver4" msdata:rowOrder="3"> <DriverId>4</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>John</FirstName> <LastName>Dietz</LastName> </Driver> <Driver diffgr:id="Driver5" msdata:rowOrder="4"> <DriverId>5</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>Derek</FirstName> <LastName>Snyder</LastName> </Driver> <Driver diffgr:id="Driver6" msdata:rowOrder="5"> <DriverId>6</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>Steve</FirstName> <LastName>Hegenderfer</LastName> </Driver> <Driver diffgr:id="Driver7" msdata:rowOrder="6"> <DriverId>7</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>Chip</FirstName> <LastName>Vollers</LastName> </Driver> <Driver diffgr:id="Driver8" msdata:rowOrder="7"> <DriverId>8</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>James</FirstName> <LastName>Pratt</LastName> </Driver> </NewDataSet> </diffgr:diffgram> </DataSet> The same list of 8 Customers using SOAP and a DataSet dropped us down to 3 kb but still too big for my taste. OData 8.5kb <ArrayOfDriver xmlns= xmlns:i=" <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>1</DriverId> <FirstName>Rob</FirstName> <LastName>Tiffany</LastName> </Driver> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>2</DriverId> <FirstName>Loke Uei</FirstName> <LastName>Tan</LastName> </Driver> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>3</DriverId> <FirstName>Dan</FirstName> <LastName>Bouie</LastName> </Driver> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>4</DriverId> <FirstName>John</FirstName> <LastName>Dietz</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>5</DriverId> <FirstName>Derek</FirstName> <LastName>Snyder</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>6</DriverId> <FirstName>Steve</FirstName> <LastName>Hegenderfer</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>7</DriverId> <FirstName>Chip</FirstName> <LastName>Vollers</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>8</DriverId> <FirstName>James</FirstName> <LastName>Pratt</LastName> </Driver> </ArrayOfDriver> REST-XML 1.2kb [{"DistributionCenterId":1,"DriverId":1,"FirstName":“Nick","LastName":"Harris"}, {"DistributionCenterId":1,"DriverId":2,"FirstName":“Rob","LastName":“Tiffany"}, {"DistributionCenterId":1,"DriverId":3,"FirstName":"Dan","LastName":"Bouie"}, {"DistributionCenterId":1,"DriverId":4,"FirstName":"John","LastName":"Dietz"}, {"DistributionCenterId":2,"DriverId":5,"FirstName":"Derek","LastName":"Snyder"}, {"DistributionCenterId":2,"DriverId":6,"FirstName":"Steve","LastName":“Harris"}, {"DistributionCenterId":2,"DriverId":7,"FirstName":"Chip","LastName":"Vollers"}, {"DistributionCenterId":2,"DriverId":8,"FirstName":"James","LastName":"Pratt"}] JSON 639 bytes
11
Media Capturing Uploading Downloading
12
Storage: How do we keep secrets secret?
Proxy the requests Client sends data to web role Web role sends data to storage (2) Web Role (1)
13
Storage: Using Shared Access Signatures
TechReady13 11/30/2018 Storage: Using Shared Access Signatures Client makes request of Web Role for SAS Web Role sends client SAS Client makes Read Request or Writes direct Client gets response Web Role (3) (4) (2) (1) © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
14
Demo Blob Storage w/ SAS
15
Next Steps Optimize storage calls of CreateIfNotExist
Larger files upload blocks in parallel to the blob Windows Azure CDN Windows Azure Media Services Use CloudConfigurationManager to allow portability between WAWs and Cloud Services
16
Geolocation Add Point of Interest Radial Search
17
Location Basics Windows 8 Windows Azure SQL Database
Windows.Devices.Geolocation.Geolocator Windows Azure SQL Database Flat Earth vs Curved Earth Geometry vs Geography PointA.STDistance(PointB) WKT Point(Longitude Latitude) Geography::STPointFromText(‘Point(Longitude Latitude)’, 4326) More supported details here-
18
Demo Adding Location
19
EF 4.3.1 vs >= 5.0 with Spatial Data
public class LocationContext : DbContext { public DbSet<PointOfInterest> PointOfInterest { get; set; } } using System.Data.Spatial; namespace GeoLocation.Models { public class PointOfInterest public Guid Id { get; set; } [StringLength(200)] public string Description { get; set; } public PointOfInterstType Type { get; set; } public string Url { get; set; } public DbGeography Location { get; set; } } using (var db = new LocationContext()) { return db.PointOfInterest.Where(p => p.Location.Distance(origin) <= radiusInMeters); }
20
Push Notifications
21
Push Notification Lifecycle
Windows 8 Cloud Service Request Channel URI Register with your Cloud Service Authenticate & Push Notification Metro Style App (2) (3) (1) Notification Client Platform Windows Push Notification Service (3)
22
Demo Push Notifications
23
Next Steps Handle MessageSendResult
Implement Notifications in a Worker Role There is a very rich set of notification templates available in Windows 8. Become familiar with them: Win8TileTypes – Win8ToastTypes – Win8BadgeTypes – Try the NuGets
24
application building blocks
big data database storage traffic caching messaging identity application building blocks media CDN networking
25
Summary ~1.25hr using Windows 8 + Windows Azure Basic Connectivity
Media Location Push Notifications
26
Sample Source Download the Sample Source: windows-8-apps-with-windows-azure/ Note: You will need to update the storage account name+key and update the SQL connection string TechEd EU recording will be made available online
27
Resources Learning TechNet http://europe.msteched.com
Connect. Share. Discuss. Microsoft Certification & Training Resources TechNet Resources for IT Professionals Resources for Developers
28
Submit your evals online
11/30/2018 4:57 AM Evaluations Submit your evals online © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
29
11/30/2018 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.