SlideShare a Scribd company logo
1 of 43
The Top Reasons You Need to
Learn about Data Before you
Develop Your Mobile App
CHRIS WOODRUFF
Chris Woodruff
EMAIL
cwoodruff@live.com
SKYPE
cwoodruff
TWITTER
cwoodruff
PHONE
616.724.6885
Agenda
The Top Reasons You Need to Learn about Data in Your Windows Phone App
://
HTTP
1 UNDERSTAND HTTP
PROTOCOL
WEB
SERVICES
2 UNDERSTAND WEB SERVICES
REST
3 UNDERSTAND REST
DATA
CACHING
4 KNOW HOW TO CACHE DATA
IN THE APP
MVVM
5 PICK AND USE A GOOD MVVM
FRAMEWORK
DATA
VIZ
6 LEARN HOW TO SHOW
DATA IN YOUR APP
UNDERSTAND HTTP PROTOCOL
The Top Reasons You Need to Learn about Data in Your Windows Phone App
WHAT SHOULD YOU KNOW ABOUT HTTP?
Resources
These are the URLs you use to get to pages on the
web
Request Headers
These are additional instructions that are sent with the
request. These might define what type of response is
required or authorization details.
Request Verbs
These describe what you want to do with the resource.
A browser typically issues a GET verb to instruct the
endpoint it wants to get data, however there are many
other verbs available including things like POST, PUT
and DELETE.
Request Body
Data that is sent with the request. For example a
POST (creation of a new item) will required some data
which is typically sent as the request body in the format
of JSON or XML.
Response Body
This is the main body of the response. If the request
was to a web server, this might be a full HTML page.
Response Status codes
These codes are issues with the response and give
the client details on the status of the request.
The Top Reasons You Need to Learn about Data in Your Windows Phone App
HOW DOES HTTP WORK?
GET CODEMASH.COM
http://www.codemash.com/index.html
WHAT DOES THE BROWSER DO?
GET /index.html HTTP/1.0
From: cwoodruff@live.com
User-Agent: HTTPTool/1.0
[blank line here]
WHAT IS THE RESPONSE?
HTTP/1.0 200 OK
Date: Thu, 8 Jan 2015 3:30:00 GMT
Content-Type: text/html
Content-Length: 1354
<html>
<body>
</body>
</html>
The Top Reasons You Need to Learn about Data in Your Windows Phone App
HTTP VERBS
GET
Requests a representation of the specified
Requests using GET should only retrieve
have no other effect.
HEAD
Asks for the response identical to the one
that would correspond to a GET request,
but without the response body.
POST
Requests that the server accept the entity
enclosed in the request as a new
subordinate of the web resource identified
by the URI.
PUT
Requests that the enclosed entity be stored
under the supplied URI.
DELETE
Deletes the specified resource.
PATCH
Applies partial modifications to a resource
The Top Reasons You Need to Learn about Data in Your Windows Phone App
TRACE
Echoes back the received request so that a
client can see what (if any) changes or
additions have been made by intermediate
servers.
OPTIONS
Returns the HTTP methods that the server
supports for the specified URL.
HTTP RESONSE CODES
1XX
Request received, continuing process.
This class of status code indicates a
consisting only of the Status-Line and
and is terminated by an empty line.
2XX
This class of status codes indicates the
action requested by the client was received,
understood, accepted and processed
successfully.
3XX
This class of status code indicates the client
must take additional action to complete the
request.
4XX
The 4xx class of status code is intended for
cases in which the client seems to have
errored.
5XX
The server failed to fulfill an apparently
valid request.
Response status codes beginning with the
digit "5" indicate cases in which the server
is aware that it has encountered an error or
is otherwise incapable of performing the
request.
The Top Reasons You Need to Learn about Data in Your Windows Phone App
COMMON HTTP RESONSE CODES
The Top Reasons You Need to Learn about Data in Your Windows Phone App
101 Switching Protocols - Tells the
client that the server will switch protocols
to that specified in the Upgrade message
header field during the current
connection. For example, when
requesting a page, a browser might
receive a status code of 101, followed by
an "Upgrade" header showing that the
server is changing to a different version of
HTTP.
200 OK - The request sent by the client
was successful.
202 Accepted - The request has been
accepted for processing, but has not yet
been processed.
204 No Content - The request was
successful but does not require the return
of an entity-body.
301 Moved Permanently - The resource
has permanently moved to a different
URI.
302 Found - The requested resource has
been found under a different URI but the
client should continue to use the original
URI.
303 See Other - The requested response
is at a different URI and should be
accessed using a GET command at the
given URI.
304 Not Modified - The resource has not
been modified since the last request.
COMMON HTTP RESONSE CODES
The Top Reasons You Need to Learn about Data in Your Windows Phone App
400 Bad Request - The syntax of the
request was not understood by the server.
401 Not Authorized - The request needs
user authentication.
403 Forbidden - The server has refused
to fulfill the request.
404 Not Found - The document/file
requested by the client was not found.
405 Method Not Allowed - The method
specified in the Request-Line is not
allowed for the specified resource.
407 Proxy Authentication Required -
The request first requires authentication
with the proxy.
500 Internal Server Error - The request
was unsuccessful due to an unexpected
condition encountered by the server.
502 Bad Gateway - The server received
an invalid response from the upstream
server while trying to fulfill the request.
503 Service Unavailable - The request
was unsuccessful due to the server being
down or overloaded.
504 Gateway Timeout - The upstream
server failed to send a request in the time
allowed by the server.
UNDERSTAND WEB SERVICES
The Top Reasons You Need to Learn about Data in Your Windows Phone App
Types of Web Services
01
02
04
03
Simple Object Access protocol (SOAP)
Representational State Transfer (REST)
Remote Procedure Call (RPC)
Calls over HTTP
The Top Reasons You Need to Learn about Data in Your Windows Phone App
EVOLUTION OF WEB SERVICES?
The Top Reasons You Need to Learn about Data in Your Windows Phone App
UNDERSTAND REST
The Top Reasons You Need to Learn about Data in Your Windows Phone App
WHAT IS REST?
RESOURCES
VERBS
URL
The Top Reasons You Need to Learn about Data in Your Windows Phone App
WHAT SHOULD YOU KNOW ABOUT REST?
Resources
REST uses addressable resources to define the
structure of the API. These are the URLs you use to
get to pages on the web
Request Headers
These are additional instructions that are sent with the
request. These might define what type of response is
required or authorization details.
Request Verbs
These describe what you want to do with the resource.
A browser typically issues a GET verb to instruct the
endpoint it wants to get data, however there are many
other verbs available including things like POST, PUT
and DELETE.
Request Body
Data that is sent with the request. For example a
POST (creation of a new item) will required some data
which is typically sent as the request body in the format
of JSON or XML.
Response Body
This is the main body of the response. If the request
was to a web server, this might be a full HTML page, if
it was to an API, this might be a JSON or XML
document.
Response Status codes
These codes are issues with the response and give
the client details on the status of the request.
The Top Reasons You Need to Learn about Data in Your Windows Phone App
REST & HTTP VERBS
GET
Requests a representation of the specified
Requests using GET should only retrieve
have no other effect.
POST
Requests that the server accept the entity
enclosed in the request as a new
subordinate of the web resource identified
by the URI.
PUT
Requests that the enclosed entity be stored
under the supplied URI.
DELETE
Deletes the specified resource.
The Top Reasons You Need to Learn about Data in Your Windows Phone App
EXAMPLES OF REST
/Products
RESOURCE EXPECTED OUTCOMEVERB RESPONSE CODE
/Products?Color=green
/Products
/Products/81
/Products/881
/Products/81
/Products/81
GET
GET
POST
GET
GET
PUT
DELETE
A list of all products in the system
A list of all products in the system
where the color is red
Creation of a new product
Product with an ID of 81
Some error message
Update of the product with ID of 81
Deletion of the product with ID of
81
200/OK
200/OK
201/Created
200/OK
404/Not Found
204/No Content
204/No Content
The Top Reasons You Need to Learn about Data in Your Windows Phone App
SWAGGER UI
The Top Reasons You Need to Learn about Data in Your Windows Phone App
BENEFITS
GENERATE CLIENT CODE BASED ON YOUR
SWAGGER
KEEPS YOUR API FULLY DOCUMENTED
UNDERSTAND REST API QUICKLY
UPDATED WHEN YOU BUILD YOUR API
Testing REST Web Services
The Top Reasons You Need to Learn about Data in Your Windows Phone App
BROWSER
DEVELOPER
EXTENSIONS
Web-based REST/Web Services Clients
FIDDLER
Free web debugging tool which logs all
HTTP(S) traffic between your computer
and the Internet.
LINQPAD
Interactively query SQL databases
(among other data sources such as OData
or WCF Data Services) using LINQ, as
well as interactively writing C# code
without the need for an IDE.
SoapUI
SoapUI is an open-source web service
testing application for service-oriented
architectures (SOA) and representational
state transfers (REST). Its functionality
covers web service inspection, invoking,
development, simulation and mocking,
functional testing, load and compliance
testing.
DEMO
The Top Reasons You Need to Learn about Data in Your Windows Phone App
http://baseball-stats.info/api/Teams
KNOW HOW TO CACHE DATA
IN THE APP
The Top Reasons You Need to Learn about Data in Your Windows Phone App
01
02
04
03
LOCAL
Data that exists on the current device
backed up in the cloud.
APP DATA STORAGE
The Top Reasons You Need to Learn about Data in Your Windows Phone App
LOCALCACHE
Persistent data that exists only on
the current device.
ROAMING
Data that exists on all devices on
which the user has installed the app.
TEMPORARY
Data that could be removed by the
system at any time.
DATA TYPES FOR CACHING
UInt8, Int16, UInt16, Int32,
UInt32, Int64, UInt64, Single,
Double
Boolean
Char16, String DateTime, TimeSpan
GUID, Point, Size, Rect ApplicationDataCompositeValue
The Top Reasons You Need to Learn about Data in Your Windows Phone App
Note that there is no binary type. If you need to store binary
data, use an app file
EXAMPLES OF DATA CACHING
LOCALSETTINGS
The Top Reasons You Need to Learn about Data in Your Windows Phone App
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["exampleSetting"] = "Hello Windows";
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
localSettings.Values["exampleCompositeSetting"] = composite;
Object value = localSettings.Values["exampleSetting"];
Windows.Storage.ApplicationDataCompositeValue composite =
(Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];
localSettings.Values.Remove("exampleSetting");
EXAMPLES OF DATA CACHING
LOCALFOLDER
The Top Reasons You Need to Learn about Data in Your Windows Phone App
Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter =
new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");
StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt",
CreateCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
String timestamp = await FileIO.ReadTextAsync(sampleFile);
EXAMPLES OF DATA CACHING
The Top Reasons You Need to Learn about Data in Your Windows Phone App
TEMPORARYFOLDER
Windows.Storage.StorageFolder temporaryFolder = Windows.Storage.ApplicationData.Current.TemporaryFolder;
Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter =
new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");
StorageFile sampleFile = await temporaryFolder.CreateFileAsync("dataFile.txt",
CreateCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
StorageFile sampleFile = await temporaryFolder.GetFileAsync("dataFile.txt");
String timestamp = await FileIO.ReadTextAsync(sampleFile);
EXAMPLES OF DATA CACHING
The Top Reasons You Need to Learn about Data in Your Windows Phone App
void InitHandlers()
{
Windows.Storage.ApplicationData.Current.DataChanged +=
new TypedEventHandler<ApplicationData, object>(DataChangeHandler);
}
void DataChangeHandler(Windows.Storage.ApplicationData appData, object o)
{
// Refresh your data
}
ROAMINGFOLDER
SQL AND NOSQL DATA SOLUTIONS
SQLite
A relational database management system contained in a C
contrast to other database management systems, SQLite is not
separate process that a client program running in another
is part of the using program.
The Top Reasons You Need to Learn about Data in Your Windows Phone App
PICK AND USE A GOOD MVVM
FRAMEWORK
The Top Reasons You Need to Learn about Data in Your Windows Phone App
BEAUTY OF MVVM
The Top Reasons You Need to Learn about Data in Your Windows Phone App
MODEL VIEWVIEW MODEL
DEMO
The Top Reasons You Need to Learn about Data in Your Windows Phone App
LEARN GREAT UX AND HOW TO SHOW
DATA IN YOUR APP
The Top Reasons You Need to Learn about Data in Your Windows Phone App
EXAMPLES OF DATA VIZ
The Top Reasons You Need to Learn about Data in Your Windows Phone App
BOOKS ABOUT DATA VIZ
The Top Reasons You Need to Learn about Data in Your Windows Phone App
FINALLY!!
CHRIS WOODRUFF
SKYPE
CWOODRUFF
TWITTER
CWOODRUFF
WEBSITE
CHRISWOODRUFF.COM
EMAIL
CWOODRUFF@LIVE.COM
PHONE
616.724.6885
LINKEDIN
CHRIS.WOODRUFF
THANK YOU

More Related Content

What's hot

Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Stephan Klevenz
 
Building RESTful Applications with OData
Building RESTful Applications with ODataBuilding RESTful Applications with OData
Building RESTful Applications with ODataTodd Anglin
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 
JAX-RS 2.0 and OData
JAX-RS 2.0 and ODataJAX-RS 2.0 and OData
JAX-RS 2.0 and ODataAnil Allewar
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsStormpath
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data AccessPat Patterson
 
Overview of GraphQL & Clients
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & ClientsPokai Chang
 
The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016Restlet
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreStormpath
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service designRamin Orujov
 
GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑Pokai Chang
 
The Internet as Web Services: introduction to ReST
The Internet as Web Services: introduction to ReSTThe Internet as Web Services: introduction to ReST
The Internet as Web Services: introduction to ReSTBruno Kessler Foundation
 
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Woodruff Solutions LLC
 

What's hot (19)

Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014
 
Building RESTful Applications with OData
Building RESTful Applications with ODataBuilding RESTful Applications with OData
Building RESTful Applications with OData
 
API Design Tour: Dell
API Design Tour: DellAPI Design Tour: Dell
API Design Tour: Dell
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
JAX-RS 2.0 and OData
JAX-RS 2.0 and ODataJAX-RS 2.0 and OData
JAX-RS 2.0 and OData
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
Introduction To REST
Introduction To RESTIntroduction To REST
Introduction To REST
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Doing REST Right
Doing REST RightDoing REST Right
Doing REST Right
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data Access
 
Overview of GraphQL & Clients
Overview of GraphQL & ClientsOverview of GraphQL & Clients
Overview of GraphQL & Clients
 
Introduction to shodan
Introduction to shodanIntroduction to shodan
Introduction to shodan
 
The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET Core
 
Best practices for RESTful web service design
Best practices for RESTful web service designBest practices for RESTful web service design
Best practices for RESTful web service design
 
GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑
 
The Internet as Web Services: introduction to ReST
The Internet as Web Services: introduction to ReSTThe Internet as Web Services: introduction to ReST
The Internet as Web Services: introduction to ReST
 
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
Learning How to Shape and Configure an OData Feed for High Performing Web Sit...
 

Viewers also liked

Investigacion exposicion mozart
Investigacion exposicion mozartInvestigacion exposicion mozart
Investigacion exposicion mozartandrjohana
 
Microworlds jack
Microworlds jackMicroworlds jack
Microworlds jackYr05
 
TTIP - Gozba ili Borba?
TTIP -  Gozba ili Borba?TTIP -  Gozba ili Borba?
TTIP - Gozba ili Borba?Milan Račić
 
Examen ensayo del artículo 3ero
Examen ensayo del artículo 3eroExamen ensayo del artículo 3ero
Examen ensayo del artículo 3erocin21
 
Current Events Jamilla
Current Events JamillaCurrent Events Jamilla
Current Events Jamillajet_dove
 
Business CapM IRM v2 0 05.26.2015
Business CapM IRM v2 0 05.26.2015Business CapM IRM v2 0 05.26.2015
Business CapM IRM v2 0 05.26.2015Patrick McQuinn
 
Doubly Decomposing Nonparametric Tensor Regression
Doubly Decomposing Nonparametric Tensor RegressionDoubly Decomposing Nonparametric Tensor Regression
Doubly Decomposing Nonparametric Tensor RegressionMasaaki Imaizumi
 
SPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNER
SPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNERSPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNER
SPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNERAvani Chhajlani
 
Una nuova visione del mondo
Una nuova visione del mondoUna nuova visione del mondo
Una nuova visione del mondoMario Sandri
 
Moisture management products--Products For Functional Modification
Moisture management products--Products For Functional Modification Moisture management products--Products For Functional Modification
Moisture management products--Products For Functional Modification Ketan Gandhi
 
Dove man care products
Dove man care productsDove man care products
Dove man care productsMayank Verma
 
Spatial analysis and Analysis Tools ( GIS )
Spatial analysis and Analysis Tools ( GIS )Spatial analysis and Analysis Tools ( GIS )
Spatial analysis and Analysis Tools ( GIS )designQube
 

Viewers also liked (20)

Investigacion exposicion mozart
Investigacion exposicion mozartInvestigacion exposicion mozart
Investigacion exposicion mozart
 
Ghulam Ahmad CV
Ghulam Ahmad CVGhulam Ahmad CV
Ghulam Ahmad CV
 
Microworlds jack
Microworlds jackMicroworlds jack
Microworlds jack
 
TTIP - Gozba ili Borba?
TTIP -  Gozba ili Borba?TTIP -  Gozba ili Borba?
TTIP - Gozba ili Borba?
 
Examen ensayo del artículo 3ero
Examen ensayo del artículo 3eroExamen ensayo del artículo 3ero
Examen ensayo del artículo 3ero
 
SOC486A Human Rights & Theory
 SOC486A Human Rights & Theory SOC486A Human Rights & Theory
SOC486A Human Rights & Theory
 
img002
img002img002
img002
 
Deporte, cultura y recreacion
Deporte, cultura y recreacionDeporte, cultura y recreacion
Deporte, cultura y recreacion
 
Somatodrol
SomatodrolSomatodrol
Somatodrol
 
Current Events Jamilla
Current Events JamillaCurrent Events Jamilla
Current Events Jamilla
 
Business CapM IRM v2 0 05.26.2015
Business CapM IRM v2 0 05.26.2015Business CapM IRM v2 0 05.26.2015
Business CapM IRM v2 0 05.26.2015
 
Doubly Decomposing Nonparametric Tensor Regression
Doubly Decomposing Nonparametric Tensor RegressionDoubly Decomposing Nonparametric Tensor Regression
Doubly Decomposing Nonparametric Tensor Regression
 
GNS Resume 22.02.16
GNS Resume 22.02.16GNS Resume 22.02.16
GNS Resume 22.02.16
 
SPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNER
SPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNERSPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNER
SPATIAL ANALYSIS TO IDENTIFY SUITABLE OFFLINE RETAIL PARTNER
 
Una nuova visione del mondo
Una nuova visione del mondoUna nuova visione del mondo
Una nuova visione del mondo
 
Resume Ajaya Kumar Das
Resume Ajaya Kumar DasResume Ajaya Kumar Das
Resume Ajaya Kumar Das
 
Moisture management products--Products For Functional Modification
Moisture management products--Products For Functional Modification Moisture management products--Products For Functional Modification
Moisture management products--Products For Functional Modification
 
Dove man care products
Dove man care productsDove man care products
Dove man care products
 
Spatial analysis and Analysis Tools ( GIS )
Spatial analysis and Analysis Tools ( GIS )Spatial analysis and Analysis Tools ( GIS )
Spatial analysis and Analysis Tools ( GIS )
 
Arrow ppt
Arrow pptArrow ppt
Arrow ppt
 

Similar to Top Reasons Learn Data Mobile App

HTTP Status Codes Cheat Sheet: An Exhaustive List
HTTP Status Codes Cheat Sheet: An Exhaustive ListHTTP Status Codes Cheat Sheet: An Exhaustive List
HTTP Status Codes Cheat Sheet: An Exhaustive ListMainstreethost
 
REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.Omar Fernando Zafe
 
Servlets http-status-codes
Servlets http-status-codesServlets http-status-codes
Servlets http-status-codesRachana Joshi
 
Webservices Testing PPT.pdf
Webservices Testing PPT.pdfWebservices Testing PPT.pdf
Webservices Testing PPT.pdfAbhishekDhotre4
 
Open Id, O Auth And Webservices
Open Id, O Auth And WebservicesOpen Id, O Auth And Webservices
Open Id, O Auth And WebservicesMyles Eftos
 
BITM3730Week9(1).pptx
BITM3730Week9(1).pptxBITM3730Week9(1).pptx
BITM3730Week9(1).pptxMattMarino13
 
SEO HTTP Response Codes List
SEO HTTP Response Codes List SEO HTTP Response Codes List
SEO HTTP Response Codes List Laxman Kotte
 
What are restful web services?
What are restful web services?What are restful web services?
What are restful web services?Aparna Sharma
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application TechnologiesSehan Lee
 
BITM3730 11-1.pptx
BITM3730 11-1.pptxBITM3730 11-1.pptx
BITM3730 11-1.pptxMattMarino13
 
BITM3730 Networking.pdf
BITM3730 Networking.pdfBITM3730 Networking.pdf
BITM3730 Networking.pdfMattMarino13
 
HTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status CodeHTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status CodeAbhishek L.R
 

Similar to Top Reasons Learn Data Mobile App (20)

HTTP Status Codes Cheat Sheet: An Exhaustive List
HTTP Status Codes Cheat Sheet: An Exhaustive ListHTTP Status Codes Cheat Sheet: An Exhaustive List
HTTP Status Codes Cheat Sheet: An Exhaustive List
 
REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.REST 101: An Overview To Representational State Transfer.
REST 101: An Overview To Representational State Transfer.
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
Rest Webservice
Rest WebserviceRest Webservice
Rest Webservice
 
Servlets http-status-codes
Servlets http-status-codesServlets http-status-codes
Servlets http-status-codes
 
Webservices Testing PPT.pdf
Webservices Testing PPT.pdfWebservices Testing PPT.pdf
Webservices Testing PPT.pdf
 
Open Id, O Auth And Webservices
Open Id, O Auth And WebservicesOpen Id, O Auth And Webservices
Open Id, O Auth And Webservices
 
BITM3730Week9(1).pptx
BITM3730Week9(1).pptxBITM3730Week9(1).pptx
BITM3730Week9(1).pptx
 
Apache error
Apache errorApache error
Apache error
 
SEO HTTP Response Codes List
SEO HTTP Response Codes List SEO HTTP Response Codes List
SEO HTTP Response Codes List
 
What are restful web services?
What are restful web services?What are restful web services?
What are restful web services?
 
Great webapis
Great webapisGreat webapis
Great webapis
 
POSTMAN.pptx
POSTMAN.pptxPOSTMAN.pptx
POSTMAN.pptx
 
Api testing
Api testingApi testing
Api testing
 
ReST
ReSTReST
ReST
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application Technologies
 
BITM3730 11-1.pptx
BITM3730 11-1.pptxBITM3730 11-1.pptx
BITM3730 11-1.pptx
 
BITM3730 Networking.pdf
BITM3730 Networking.pdfBITM3730 Networking.pdf
BITM3730 Networking.pdf
 
HTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status CodeHTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status Code
 
Webbasics
WebbasicsWebbasics
Webbasics
 

More from Woodruff Solutions LLC

Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Woodruff Solutions LLC
 
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...Woodruff Solutions LLC
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Woodruff Solutions LLC
 
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013Woodruff Solutions LLC
 
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013Woodruff Solutions LLC
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Woodruff Solutions LLC
 
AzureConf 2013 Developing Cross Platform Mobile Solutions with Azure Mobile...
AzureConf 2013   Developing Cross Platform Mobile Solutions with Azure Mobile...AzureConf 2013   Developing Cross Platform Mobile Solutions with Azure Mobile...
AzureConf 2013 Developing Cross Platform Mobile Solutions with Azure Mobile...Woodruff Solutions LLC
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Woodruff Solutions LLC
 
Build Conference Highlights: How Windows 8 Metro is Revolutionary
Build Conference Highlights: How Windows 8 Metro is RevolutionaryBuild Conference Highlights: How Windows 8 Metro is Revolutionary
Build Conference Highlights: How Windows 8 Metro is RevolutionaryWoodruff Solutions LLC
 
Breaking down data silos with the open data protocol
Breaking down data silos with the open data protocolBreaking down data silos with the open data protocol
Breaking down data silos with the open data protocolWoodruff Solutions LLC
 

More from Woodruff Solutions LLC (14)

Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)Gaining the Knowledge of the Open Data Protocol (OData)
Gaining the Knowledge of the Open Data Protocol (OData)
 
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
Developing Mobile Solutions with Azure Mobile Services in Windows 8.1 and Win...
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8
 
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
Pushing Data to and from the Cloud with SQL Azure Data Sync -- TechEd NA 2013
 
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
Developing Mobile Solutions with Azure and Windows Phone VSLive! Redmond 2013
 
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
Connecting to Data from Windows Phone 8 VSLive! Redmond 2013
 
AzureConf 2013 Developing Cross Platform Mobile Solutions with Azure Mobile...
AzureConf 2013   Developing Cross Platform Mobile Solutions with Azure Mobile...AzureConf 2013   Developing Cross Platform Mobile Solutions with Azure Mobile...
AzureConf 2013 Developing Cross Platform Mobile Solutions with Azure Mobile...
 
Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8Connecting to Data from Windows Phone 8
Connecting to Data from Windows Phone 8
 
Sql Azure Data Sync
Sql Azure Data SyncSql Azure Data Sync
Sql Azure Data Sync
 
Producing an OData feed in 10 minutes
Producing an OData feed in 10 minutesProducing an OData feed in 10 minutes
Producing an OData feed in 10 minutes
 
Build Conference Highlights: How Windows 8 Metro is Revolutionary
Build Conference Highlights: How Windows 8 Metro is RevolutionaryBuild Conference Highlights: How Windows 8 Metro is Revolutionary
Build Conference Highlights: How Windows 8 Metro is Revolutionary
 
Sailing on the ocean of 1s and 0s
Sailing on the ocean of 1s and 0sSailing on the ocean of 1s and 0s
Sailing on the ocean of 1s and 0s
 
Breaking down data silos with OData
Breaking down data silos with ODataBreaking down data silos with OData
Breaking down data silos with OData
 
Breaking down data silos with the open data protocol
Breaking down data silos with the open data protocolBreaking down data silos with the open data protocol
Breaking down data silos with the open data protocol
 

Recently uploaded

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Top Reasons Learn Data Mobile App

  • 1. The Top Reasons You Need to Learn about Data Before you Develop Your Mobile App CHRIS WOODRUFF
  • 3.
  • 4. Agenda The Top Reasons You Need to Learn about Data in Your Windows Phone App :// HTTP 1 UNDERSTAND HTTP PROTOCOL WEB SERVICES 2 UNDERSTAND WEB SERVICES REST 3 UNDERSTAND REST DATA CACHING 4 KNOW HOW TO CACHE DATA IN THE APP MVVM 5 PICK AND USE A GOOD MVVM FRAMEWORK DATA VIZ 6 LEARN HOW TO SHOW DATA IN YOUR APP
  • 5. UNDERSTAND HTTP PROTOCOL The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 6.
  • 7. WHAT SHOULD YOU KNOW ABOUT HTTP? Resources These are the URLs you use to get to pages on the web Request Headers These are additional instructions that are sent with the request. These might define what type of response is required or authorization details. Request Verbs These describe what you want to do with the resource. A browser typically issues a GET verb to instruct the endpoint it wants to get data, however there are many other verbs available including things like POST, PUT and DELETE. Request Body Data that is sent with the request. For example a POST (creation of a new item) will required some data which is typically sent as the request body in the format of JSON or XML. Response Body This is the main body of the response. If the request was to a web server, this might be a full HTML page. Response Status codes These codes are issues with the response and give the client details on the status of the request. The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 8. HOW DOES HTTP WORK? GET CODEMASH.COM http://www.codemash.com/index.html WHAT DOES THE BROWSER DO? GET /index.html HTTP/1.0 From: cwoodruff@live.com User-Agent: HTTPTool/1.0 [blank line here] WHAT IS THE RESPONSE? HTTP/1.0 200 OK Date: Thu, 8 Jan 2015 3:30:00 GMT Content-Type: text/html Content-Length: 1354 <html> <body> </body> </html> The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 9. HTTP VERBS GET Requests a representation of the specified Requests using GET should only retrieve have no other effect. HEAD Asks for the response identical to the one that would correspond to a GET request, but without the response body. POST Requests that the server accept the entity enclosed in the request as a new subordinate of the web resource identified by the URI. PUT Requests that the enclosed entity be stored under the supplied URI. DELETE Deletes the specified resource. PATCH Applies partial modifications to a resource The Top Reasons You Need to Learn about Data in Your Windows Phone App TRACE Echoes back the received request so that a client can see what (if any) changes or additions have been made by intermediate servers. OPTIONS Returns the HTTP methods that the server supports for the specified URL.
  • 10. HTTP RESONSE CODES 1XX Request received, continuing process. This class of status code indicates a consisting only of the Status-Line and and is terminated by an empty line. 2XX This class of status codes indicates the action requested by the client was received, understood, accepted and processed successfully. 3XX This class of status code indicates the client must take additional action to complete the request. 4XX The 4xx class of status code is intended for cases in which the client seems to have errored. 5XX The server failed to fulfill an apparently valid request. Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request. The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 11. COMMON HTTP RESONSE CODES The Top Reasons You Need to Learn about Data in Your Windows Phone App 101 Switching Protocols - Tells the client that the server will switch protocols to that specified in the Upgrade message header field during the current connection. For example, when requesting a page, a browser might receive a status code of 101, followed by an "Upgrade" header showing that the server is changing to a different version of HTTP. 200 OK - The request sent by the client was successful. 202 Accepted - The request has been accepted for processing, but has not yet been processed. 204 No Content - The request was successful but does not require the return of an entity-body. 301 Moved Permanently - The resource has permanently moved to a different URI. 302 Found - The requested resource has been found under a different URI but the client should continue to use the original URI. 303 See Other - The requested response is at a different URI and should be accessed using a GET command at the given URI. 304 Not Modified - The resource has not been modified since the last request.
  • 12. COMMON HTTP RESONSE CODES The Top Reasons You Need to Learn about Data in Your Windows Phone App 400 Bad Request - The syntax of the request was not understood by the server. 401 Not Authorized - The request needs user authentication. 403 Forbidden - The server has refused to fulfill the request. 404 Not Found - The document/file requested by the client was not found. 405 Method Not Allowed - The method specified in the Request-Line is not allowed for the specified resource. 407 Proxy Authentication Required - The request first requires authentication with the proxy. 500 Internal Server Error - The request was unsuccessful due to an unexpected condition encountered by the server. 502 Bad Gateway - The server received an invalid response from the upstream server while trying to fulfill the request. 503 Service Unavailable - The request was unsuccessful due to the server being down or overloaded. 504 Gateway Timeout - The upstream server failed to send a request in the time allowed by the server.
  • 13. UNDERSTAND WEB SERVICES The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 14. Types of Web Services 01 02 04 03 Simple Object Access protocol (SOAP) Representational State Transfer (REST) Remote Procedure Call (RPC) Calls over HTTP The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 15. EVOLUTION OF WEB SERVICES? The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 16. UNDERSTAND REST The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 17.
  • 18. WHAT IS REST? RESOURCES VERBS URL The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 19. WHAT SHOULD YOU KNOW ABOUT REST? Resources REST uses addressable resources to define the structure of the API. These are the URLs you use to get to pages on the web Request Headers These are additional instructions that are sent with the request. These might define what type of response is required or authorization details. Request Verbs These describe what you want to do with the resource. A browser typically issues a GET verb to instruct the endpoint it wants to get data, however there are many other verbs available including things like POST, PUT and DELETE. Request Body Data that is sent with the request. For example a POST (creation of a new item) will required some data which is typically sent as the request body in the format of JSON or XML. Response Body This is the main body of the response. If the request was to a web server, this might be a full HTML page, if it was to an API, this might be a JSON or XML document. Response Status codes These codes are issues with the response and give the client details on the status of the request. The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 20. REST & HTTP VERBS GET Requests a representation of the specified Requests using GET should only retrieve have no other effect. POST Requests that the server accept the entity enclosed in the request as a new subordinate of the web resource identified by the URI. PUT Requests that the enclosed entity be stored under the supplied URI. DELETE Deletes the specified resource. The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 21. EXAMPLES OF REST /Products RESOURCE EXPECTED OUTCOMEVERB RESPONSE CODE /Products?Color=green /Products /Products/81 /Products/881 /Products/81 /Products/81 GET GET POST GET GET PUT DELETE A list of all products in the system A list of all products in the system where the color is red Creation of a new product Product with an ID of 81 Some error message Update of the product with ID of 81 Deletion of the product with ID of 81 200/OK 200/OK 201/Created 200/OK 404/Not Found 204/No Content 204/No Content The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 22. SWAGGER UI The Top Reasons You Need to Learn about Data in Your Windows Phone App BENEFITS GENERATE CLIENT CODE BASED ON YOUR SWAGGER KEEPS YOUR API FULLY DOCUMENTED UNDERSTAND REST API QUICKLY UPDATED WHEN YOU BUILD YOUR API
  • 23.
  • 24.
  • 25. Testing REST Web Services The Top Reasons You Need to Learn about Data in Your Windows Phone App BROWSER DEVELOPER EXTENSIONS Web-based REST/Web Services Clients FIDDLER Free web debugging tool which logs all HTTP(S) traffic between your computer and the Internet. LINQPAD Interactively query SQL databases (among other data sources such as OData or WCF Data Services) using LINQ, as well as interactively writing C# code without the need for an IDE. SoapUI SoapUI is an open-source web service testing application for service-oriented architectures (SOA) and representational state transfers (REST). Its functionality covers web service inspection, invoking, development, simulation and mocking, functional testing, load and compliance testing.
  • 26. DEMO The Top Reasons You Need to Learn about Data in Your Windows Phone App http://baseball-stats.info/api/Teams
  • 27. KNOW HOW TO CACHE DATA IN THE APP The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 28. 01 02 04 03 LOCAL Data that exists on the current device backed up in the cloud. APP DATA STORAGE The Top Reasons You Need to Learn about Data in Your Windows Phone App LOCALCACHE Persistent data that exists only on the current device. ROAMING Data that exists on all devices on which the user has installed the app. TEMPORARY Data that could be removed by the system at any time.
  • 29. DATA TYPES FOR CACHING UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double Boolean Char16, String DateTime, TimeSpan GUID, Point, Size, Rect ApplicationDataCompositeValue The Top Reasons You Need to Learn about Data in Your Windows Phone App Note that there is no binary type. If you need to store binary data, use an app file
  • 30. EXAMPLES OF DATA CACHING LOCALSETTINGS The Top Reasons You Need to Learn about Data in Your Windows Phone App Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; localSettings.Values["exampleSetting"] = "Hello Windows"; Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue(); composite["intVal"] = 1; composite["strVal"] = "string"; localSettings.Values["exampleCompositeSetting"] = composite; Object value = localSettings.Values["exampleSetting"]; Windows.Storage.ApplicationDataCompositeValue composite = (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"]; localSettings.Values.Remove("exampleSetting");
  • 31. EXAMPLES OF DATA CACHING LOCALFOLDER The Top Reasons You Need to Learn about Data in Your Windows Phone App Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime"); StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", CreateCollisionOption.ReplaceExisting); await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now)); StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt"); String timestamp = await FileIO.ReadTextAsync(sampleFile);
  • 32. EXAMPLES OF DATA CACHING The Top Reasons You Need to Learn about Data in Your Windows Phone App TEMPORARYFOLDER Windows.Storage.StorageFolder temporaryFolder = Windows.Storage.ApplicationData.Current.TemporaryFolder; Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime"); StorageFile sampleFile = await temporaryFolder.CreateFileAsync("dataFile.txt", CreateCollisionOption.ReplaceExisting); await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now)); StorageFile sampleFile = await temporaryFolder.GetFileAsync("dataFile.txt"); String timestamp = await FileIO.ReadTextAsync(sampleFile);
  • 33. EXAMPLES OF DATA CACHING The Top Reasons You Need to Learn about Data in Your Windows Phone App void InitHandlers() { Windows.Storage.ApplicationData.Current.DataChanged += new TypedEventHandler<ApplicationData, object>(DataChangeHandler); } void DataChangeHandler(Windows.Storage.ApplicationData appData, object o) { // Refresh your data } ROAMINGFOLDER
  • 34. SQL AND NOSQL DATA SOLUTIONS SQLite A relational database management system contained in a C contrast to other database management systems, SQLite is not separate process that a client program running in another is part of the using program. The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 35. PICK AND USE A GOOD MVVM FRAMEWORK The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 36. BEAUTY OF MVVM The Top Reasons You Need to Learn about Data in Your Windows Phone App MODEL VIEWVIEW MODEL
  • 37. DEMO The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 38. LEARN GREAT UX AND HOW TO SHOW DATA IN YOUR APP The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 39. EXAMPLES OF DATA VIZ The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 40. BOOKS ABOUT DATA VIZ The Top Reasons You Need to Learn about Data in Your Windows Phone App
  • 42.

Editor's Notes

  1. Hypertext Transfer Protocol
  2. 200 OK -- Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request the response will contain an entity describing or containing the result of the action. 201 Created -- The request has been fulfilled and resulted in a new resource being created. 204 No Content -- The server successfully processed the request, but is not returning any content. Usually used as a response to a successful delete request. 404 Not Found -- The requested resource could not be found but may be available again in the future. Subsequent requests by the client are permissible.
  3. http://petstore.swagger.io/#/
  4. http://editor.swagger.io/#/
  5. LocalFolder – a local folder, used for storing application data, it’s persistent across application updates and gets backed up to the cloud. This folder was already available in Windows Phone 8 and it’s the same folder as Isolated Storage known from Windows Phone 7. TemporaryFolder – also a local folder, but its space is managed by the OS. Whenever the system detects it’s running low on storage space, it will start deleting files in temporary so don’t ever strongly depend on files stored in this folder. It makes a perfect place for storing cached web responses or images that can be recreated any time. This folder does not participate in backups. RoamingFolder – files, stored in this folder, will roam across devices, meaning those files will be synchronized over the cloud whenever possible. Perfect for settings and/or small chunks of state (i.e. for continuous clients). When roaming is disabled on the device, those files (and settings) will get backed up as well. The storage space is limited to 100kB – if application goes over that quota, the synchronization stops (until the total usage falls back under roaming storage quota).
  6. Windows.Storage.ApplicationDataCompositeValue -- Represents related app settings that must be serialized and deserialized atomically.
  7. https://msdn.microsoft.com/en-us/library/windows/apps/br230562.aspx