modulo13 web services
DESCRIPTION
Se verá como consumir servicios basados en SOAP y en REST desde Windows Phone, así como un acercamiento a los servicios de Azure.TRANSCRIPT
Web Services
Desde Windows Phone podemos consumir los siguientes servicios:
SOAP
Windows Communcation (WCF)
Otras tecnologías basadas en SOAP
HTTP
REST
Azure
Datos
Formats
XML
JSON
RSS
Atom
Access
Serialization
Linq to XML
Linq to JSON
Syndication
REST Vs SOAP
REST Utiliza únicamente XML y HTTP
Cada URL representa un objeto sobre el que puedes realizar POST, GET, PUT y DELETE
• SOAP – Infraestructura basada en
XML
– Cada objeto tiene métodos definidos por el programador con los parámetros necesarios
REST Vs SOAP
Ventajas de SOAP
Fácil de consumir
Rígido: tipado fuerte, sigue un contrato
Herramientas de desarrolo
• Ventajas de REST
– Ligero: no hace falta mucho XML de configuración
– Resultados legibles
– Fácil de implementar: no hacen falta herramientas específicas
CONSUMIENDO
SERVICIOS
Archivo WMAppManifest.xml
<?xml version="1.0" encoding="utf-8"?> <Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0"> <App xmlns="" ProductID="{c5d19681-4a86-4565-9509-9a565c587cac}" Title="reproductor" RuntimeType="SilverLight" Version="1.0.0.0" Genre="NormalApp" Author="" Description="" Publisher=""> <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath> <Capabilities>
<Capability Name="ID_CAP_NETWORKING" /> <Capability Name="ID_CAP_LOCATION" /> <Capability Name="ID_CAP_SENSORS" /> <Capability Name="ID_CAP_MICROPHONE" /> <Capability Name="ID_CAP_MEDIALIB" /> <Capability Name="ID_CAP_GAMERSERVICES" /> <Capability Name="ID_CAP_PHONEDIALER" /> <Capability Name="ID_CAP_PUSH_NOTIFICATION" /> <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" /> </Capabilities> <Tasks> </Tasks> <Tokens> </Tokens> </App> </Deployment>
CONSUMIR SERVICIOS WEB
Sólo métodos asíncronos!!
Por cada operación, el proxy contiene: Método asíncrono
Evento “Completed”
CONSUMIR SW SOAP
1. Añadimos la referencia al servicio http://api.microsofttranslator.com/V1/SOAP.svc
CONSUMIR SW SOAP
2. Agregamos referencias a librerías:
using BingSoap.TranslatorService;
3. Creamos alguna variable….
//Referencia SOAP a Bing Translator
TranslatorService.LanguageServiceClient ls = new LanguageServiceClient();
//AppId para utilizar los servicios de Bing
string AppId = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
CONSUMIR SW SOAP
4. En el creador generamos el handler ls.TranslateCompleted += new
EventHandler<TranslateCompletedEventArgs>(ls_TranslateCompleted);
5. En el manejador de un botón, llamamos al manejador
ls.TranslateAsync(AppId, textoOrigen.Text, "ES", "EN");
6. Finalmente mostramos el resultado void ls_TranslateCompleted(object sender, TranslateCompletedEventArgs e)
{
if (e.Error == null)
textoDestino.Text = e.Result;
}
DEMO
CONSUMIR SW SOAP
CONSUMIR SERVICIOS
WEB REST
1. Agregamos referencias a la librería:
using System.Runtime.Serialization;
2. Creamos un proxy:
WebClient proxy = new WebClient();
3. Preparamos una Uri:
CONSUMIR SERVICIOS
WEB REST
4. Generamos manejadores asíncronos
5. Implementamos el manejador
DEMO
CONSUMIR SERVICIOS WEB REST
Recursos
Centro de desarrollo de WP7 en MSDN
http://msdn.microsoft.com/es-es/windowsphone/default.aspx
AppHub
http://create.msdn.com/
Windows Phone Developer Blog
http://windowsteamblog.com/windows_phone/b/wpdev
MobileNUG
http://www.mobilenug.es
Forums
http://forums.create.msdn.com/forums/