La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Alejandro Mezcua MVP Device Application Development

Presentaciones similares


Presentación del tema: "Alejandro Mezcua MVP Device Application Development"— Transcripción de la presentación:

1

2 Alejandro Mezcua MVP Device Application Development

3 Direccionamiento de un dispositivo Cambia entre muchas redes Cambia de direcciones Conectado ocasionalmente Se puede apagar Zonas de no cobertura ¿Cómo enviar y recibir mensajes en esta situación?

4 Para el direccionamiento de un dispositivo Usar una dirección independiente de la conexión ( ) Para las conexiones ocasionales Almacenar los mensajes en un sitio accesible

5 Estos requisitos los cumple Microsoft Exchange 2007 Direcciones de por usuario Buzones para el almacenamiento temporal de los mensajes Conectividad por diversos medios

6 Comunicación asíncrona por naturaleza No se puede saber ¿Cuándo llega un mensaje? ¿Se ha recibido? Diseñar las aplicaciones con esto en mente

7 Transportes WCF (Windows Communication Foundation) que aprovechan Microsoft Exchange Server 2007 Versión para PC Versión para Windows Mobile Desarrollados en conjunto por el equipo de Exchange y el de.NET Compact Framework

8 Existe transporte para servicios Web WCF Se pueden crear nuevos transportes en la infraestructura de WCF

9 Windows Mobile WindowsMobil Binding PCs ExchangeWebServic Binding Incluido con.NET Compact Framework 3.5 SDK

10 Usa la conexión de ActiveSync Si ActiveSync está conectado al PC, conecta directamente Si se ha configurado AUTD (Always Up To Date) se realiza la sincronización al llegar nuevos elementos

11 Usa Exchange Web Services Cada cierto tiempo (configurable) conecta con el servidor para ver si hay nuevos mensajes (POLL)

12 La comunicación ha de ir codificada Conexiones https ActiveSync usa https Los equipos han de confiar en el emisor del certificado Si no se verifica el código genera excepciones

13 Un mensaje se envía a una dirección de y a un canal (identificador texto) Esto permite disponer de varias aplicaciones usadas desde la misma dirección de (con diferentes canales) Equivalente a direcciónIP:Puerto

14 Un mensaje es una objeto serializado a Xml Se definen las clases como serializables Es necesario definir un serializador para establecer cómo se crea el Xml a partir de la clase Clase que herede de XmlObjectSerializer Suele bastar con serialización simple Se pueden compartir entre proyectos PC y.NET CF Los dos han de entender los mismos mensajes

15 WindowsMobil Binding o ExchangeWebServic Binding dependiendo del caso Se usará tanto para enviar como para recibir mensajes. _binding = new WindowsMobil Binding(); _binding.AcceptExistingMessages = true; … _binding = new ExchangeWebServic Binding( new Uri(_exchangeServerUrl), new System.Net.NetworkCredential(_exchangeServerMailbox, _exchangeServerPassword) );

16 Necesario para enviar mensajes Mismo código en PC y Compact Framework BindingParameterCollection parameters = new BindingParameterCollection(); _channelFactory = _binding.BuildChannelFactory (parameters); _channelFactory.Open(); _outChannel = _channelFactory.CreateChannel( new System.ServiceModel.EndpointAddress( MailUriHelper.CreateUri( _channelName, _ )) ); _outChannel.Open();

17 SimpleObjectSerializer serializer = new SimpleObjectSerializer(typeof(ObjetoAEnviar)); System.ServiceModel.Channels.Message msg = System.ServiceModel.Channels.Message.CreateMessage( MessageVersion.Soap12WSAddressing10, _accion, _objetoAEnviar, serializer); _outChannel.Send(msg); Serializarlo antes al formato requerido Mismo código en PC y Compact Framework El canal se puede quedar abierto para reutilizarlo

18 Necesario para leer mensajes Bucle en thread secundario Mismo código en PC y Compact Framework Se puede usar la cabecera action para determinar el tipo de mensaje El servidor y el cliente han de estar de acuerdo en la cabecera, es texto.

19 BindingParameterCollection parameters = new BindingParameterCollection(); IChannelListener listener = _binding.BuildChannelListener ( MailUriHelper.CreateUri(_channelName, _ Address), parameters); listener.Open(); IInputChannel inputChannel = listener.AcceptChannel(); inputChannel.Open(); listener.Close(); // Se puede cerrar una vez aceptado el canal. System.ServiceModel.Channels.Message reply = null; while (_processMessages){ if(inputChannel.TryReceive(new TimeSpan(0, 0, 0, 0, 2000), out reply)) { if(reply != null) { // Se ha recibido un mensaje, ver su tipo if(reply.Headers.Action == accion) { // Realizar tarea con el mensaje } inputChannel.Close(); listener.Close();

20 { un ejemplo }

21 Mostrar el uso del transporte de de WCF en.NET Compact Framework 3.5 Ver un ejemplo de integración de una solución completa (móvil – Web)

22

23 { en vivo }

24 Aplicación ASP.NET Se encarga de Mostrar las localizaciones en un mapa de Virtual Earth

25 { Aplicación Web }

26 Aplicación Windows Forms.NET Compact Framework 3.5 Se encarga de Comunicarse con el GPS Localización desde la aplicación Windows Mobile Localización solicitada por la central Mensaje WCF desde la aplicación PC Enviar mensajes a la central mediante ActiveSync

27 { Cliente Windows Mobile}

28 Aplicación Windows Forms Se encarga de Solicitar localizaciones puntuales de usuarios Manda mensaje WCF a Windows Mobile Mostrar las localizaciones obtenidas en un mapa Recibe mensajes WCF con datos de la posición Integra interface Web para mostrar la localización en Virtual Earth

29 { Aplicación de central }

30 { ¿Preguntas? } Alejandro Mezcua MVP Device Application Development


Descargar ppt "Alejandro Mezcua MVP Device Application Development"

Presentaciones similares


Anuncios Google