Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas

Slides:



Advertisements
Presentaciones similares
Intranets P. Reyes / Octubre 2004.
Advertisements

Sistema de Información Cultural, CONACULTA México, 2006 SiC / RENiC Aspectos técnicos relevantes para un Sistema de Información (SI)
Internet y tecnologías web
Conceptos básicos de Internet
Lo nuevo en Microsoft Office Project Server 2003 Microsoft Corporation.
TNT1-64 KEY MESSAGE: This is Technet session TNT 1-64.
PRESENTA: Mizrain Cano Chico Profesor: Lic. Albino Petlacalco Ruiz
Introducción a servidores
Servidores Windows Http Ftp …
INDUSOFT Software para generación de completas aplicaciones industriales multi-plataforma Se compone de un completo y potente conjunto de herramientas.
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Carlos Rojas Kramer Universidad Cristóbal Colón
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
SERVICIOS DE TCP/IP.
Especialista en Business Intelligence Integration Services SSIS (Sesión 7) Microsoft SQL Server 2008 R2 (2013) Suscribase a o escríbanos.
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Introducción al software
VENTAJAS, DESVENTAJAS, CARACTERISTICAS Y CONFIGURACION
INFOPATH.
Desarrollo de adaptadores mediante WCF LOB Adapter SDK
Desarrollo en dispositivos móviles Smartphone 2003 Alejandro Mezcua MVP.NET Zaltor Soluciones Informáticas
Alejandro Mezcua MVP Device Application Development
Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización Entre plataformas Entre lenguajes.
APROWEB el Software para administración de proyectos
Windows XP sp3.
Es un Sistema operativo de red. Es una de las plataformas de servicio más fiable para ofrecer acceso seguro y continuado a la red y los recursos de.
Coordinador e Instructor de Academia Cisco
Almacenamiento virtual de sitios web: «Hosts» virtuales Gustavo Antequera Rodríguez.
Interacción Persona Ordenador
Universidad Centroamericana
Universidad de La Coruña Escuela Universitaria Politécnica Control de Procesos por Computador Diego Cabaleiro 24 de Noviembre 2009.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
TEMAS DE ADMINISTRAR LOS RECURSOS DE UNA RED. SEGUNDA EVALUACION.
Desarrollo de aplicaciones web en entorno servidor
MAIRA LUCIA ORTIZ CAMILO ORTEGON DIAZ CRISTIAN CAMILO VARGAS
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
InfoPath Ventajas y Uso.
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
MICROSOFT ISA SERVER PRESENTADO A: FABIO LASSO
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
Servidores Conceptos Generales.
APLICACIÓN EN VISUAL BASIC
Introducción al Lenguaje. ¿Qué es PHP? O Es un lenguaje de programación que es interpretado por un servidor web. O El lenguaje es genérico. PHP está orientado.
Cuentas de usuarios y grupos en windows 2008 server
Almacenamiento virtual de sitios web “HOSTS VIRTUALES”
 Los virus informáticos son programas que se introducen sin conocimiento del usuario en un ordenador para ejecutar en él acciones no deseadas.  Las.
Clase 5 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Microsoft Outlook. Es un programa de organización ofimática y cliente de correo electrónico de Microsoft, y forma parte de la suite Microsoft Office.ofimáticacorreo.
 Outlook, en computación, o mejor dicho; en informática, es un programa encargado de conectarse a internet desde tu computadora, conectarse a tu correo.
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
Manual violento de Navicat
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
ANDREA DAZA. Es un aparato de pequeño tamaño, con algunas capacidades de procesamiento, con conexión permanente a una red.
Almacenamiento virtual de sitios web: «Hosts» virtuales
APACHE WEB SERVER El proyecto Apache Web Server es un desarrollo de software en colaboración, enfocado en crear una implementación de un servidor HTTP.
Servidores. ¿Qué es un servidor? Servidor de Aplicación Servidor de impresión Servidor de base de datos Servidor de correo Servidor de Internet Servidor.
¿Qué es un ? El correo electrónico o fue una de las primeras aplicaciones creadas para Internet y de las que más se utilizan. Éste medio.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
YUBER ANDRÉS LOAIZA OROZCO SERVIDOR PROXY GESTIÓN DE REDES DE DATOS.
SQL Server Compact Edition
BUSINESS T&G Think & Grow Uniclass Gestión Documental Solución Web para Mejorar la Captura y Gestión.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED UNIDAD 2. SERVICIOS DHCP UNIDAD 3. SERVICIOS DNS UNIDAD 4. SERVICIOS DE ACCESO REMOTO.
WINDOWS SERVER 2008 r2 ADMINISTRACION DE RECURSOS: Con el Administrador de recursos del sistema de Windows del sistema operativo Windows Server® 2008 R2,
GOOGLE DOCS Y TALK Alba Berja Torres y Lucía García Martínez.
Conociendo el modelo Cliente-Servidor
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

Y ahora lo quiero en un dispositivo móvil Alejandro Mezcua Responsable Desarrollo Zaltor Soluciones Informáticas

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

¿Qué modelo de aplicación escojo? Panorama actual ¿Es que hay más de uno? Aplicaciones conectadas Aplicaciones parcialmente conectadas ¿Cuál escoger?

¿Qué modelo de aplicación escojo? Panorama actual (I - Dispositivos) Web Site

¿Qué modelo de aplicación escojo? Panorama actual (II - Dispositivos) Dispositivos móviles Ordenadores portátiles Tablet PC Pocket PC Teléfonos WAP SmartPhones Todos con capacidades de conexión La gente QUIERE usarlos

¿Qué modelo de aplicación escojo? Panorama actual (III - Comunicaciones) GSM Baja velocidad, coste por tiempo de conexión GPRS Media velocidad (hasta 56kbps), coste por volumen de tráfico UMTS Alta velocidad (hasta 2Mbps, inicialmente 128kbps) coste por volumen (¿y tipo?) de tráfico WLAN (802.11) Muy alta velocidad (2-54 Mbps) Bluetooth Redes personales (rango 10m)

¿Qué modelo de aplicación escojo? Panorama actual (IV - Comunicaciones) Cliente - Servidor Sockets, Normalmente HTTP Cliente - Cliente (Peer to Peer) Sockets propios Servidor – Servidor Sockets, HTTP, Remoting Intercambio de Datos XML - SOAP

¿Qué modelo de aplicación escojo? Panorama actual (V – Esquema final) WebA WebB SOAP (XML) WAP (XML) Internet/Intranet

¿Qué modelo de aplicación escojo? ¿Es que hay más de uno? Modelo => Arquitectura La arquitectura la dará el uso esperado de la aplicación Para aplicaciones nuevas determinar arquitecturas flexibles Es probable que en el futuro pidan extenderla

¿Qué modelo de aplicación escojo? ¿Es que hay más de uno? Ejemplo BTServer, ArquitecturaApp BTClient (dll) DAL (dll) Web Service DB DAL conecta directamente a la base de datos o conecta a un Web Service (que usa la misma DLL para conectar a la base de datos dependiendo de un archivo de configuración en el cliente). Se unifica el API de acceso.

¿Qué modelo de aplicación escojo? Aplicaciones conectadas El cliente sólo dispone de un interface El proceso se realiza en el servidor Ejemplo Aplicaciones Web WAP Terminales

¿Qué modelo de aplicación escojo? Aplicaciones parcialmente conectadas El cliente dispone de capacidad de proceso Puede funcionar de manera autónoma en algunos casos Puede almacenar información local para reutilizarla posteriormente Parte del proceso se realiza en el servidor y parte en el cliente Ejemplo Algunas aplicaciones Cliente - Servidor Clientes de correo (Outlook desconectado)

¿Qué modelo de aplicación escojo? ¿Cuál escoger? El modelo vendrá dado por la arquitectura deseada de la aplicación Una misma aplicación puede disponer de varios clientes, unos conectados y otros parcialmente conectados

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

¿Quién va a usar mi aplicación? Tipos de usuarios Dispositivos a utilizar Un ejemplo

¿Quién va a usar mi aplicación? Tipos de usuarios No todos los usuarios realizan las mismas tareas Administración de la aplicación Entrada de datos Análisis

¿Quién va a usar mi aplicación? Dispositivo a utilizar Cada dispositivo es fuerte/débil en alguna característica Entrada de datos Buena: Web, Win32 Mala: WAP, Pocket PC Consulta de datos Buena: Todos Excelente: Dispositivos móviles, permiten acceder desde cualquier sitio (WAP, Pocket) ya que el usuario lo suele llevar consigo ¿Con qué frecuencia se realiza la tarea?

¿Quién va a usar mi aplicación? Un ejemplo (I – definición) Aplicación de gestión de errores de desarrollo (bugs) Permite a los testers/desarrolladores registrar errores de los proyectos en los que trabajen Se hace un seguimiento de cómo va el proyecto Permite a los jefes de proyecto tener un seguimiento de la calidad del proyecto

¿Quién va a usar mi aplicación? Un ejemplo (II – perfiles) Administrador gestiona usuarios, proyectos, tablas auxiliares Tareas de realización poco frecuente, no urgentes Aplicación: Win32, Web; Conectada Usuarios (Programadores) registran y examinan los errores que tienen asignados para solucionarlos Tareas frecuentes Aplicación: Win32, Web; conectada. Posible WinCE si desarrollo fuera de oficina frecuente.

¿Quién va a usar mi aplicación? Un ejemplo (III – perfiles) Usuarios (Testers/Programadores) registran y examinan los errores que tienen asignados para solucionarlos Tareas frecuentes Aplicación: Win32, Web; conectada. Posible WinCE si desarrollo fuera de oficina frecuente.

¿Quién va a usar mi aplicación? Un ejemplo (IV – perfiles) Jefes de proyecto, managers, clientes, ven estadísticas del progreso del proyecto Tareas de realización relativamente frecuente, urgentes Aplicación: Web, WAP, Pocket PC; Conectada, parcialmente conectada

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Las ventajas de los estándares XHTML (I) Separación de contenido y formato Basado en estilos (css) Visible desde dispositivos Aunque se el formato no se vea se ve el contenido de manera cómoda Cada vez más dispositivos lo incorporan En VS.NET los controles de servidor no generan XHTML Lo incorporarán en el futuro

Las ventajas de los estándares XHTML (II) Los nuevos navegadores lo incorporan IE 6.0, última versión de Mozilla, etc… Para IE 6.0 hay que incluir una declaración en la página y en la etiqueta El contenido se organiza utilizando

Las ventajas de los estándares XHTML (III) Referencias de diseño con CSS Validación de XHTML correcto

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

¡Dame mis datos! ¿Qué usar cómo almacenamiento? Aprovecha tu dispositivo

¡Dame mis datos! ¿Qué usar cómo almacenamiento? (I) No usar almacenamiento local Ventajas Simplicidad en local Inconvenientes No se puede usar si se está desconectado Tipo de aplicaciones Sólo aplicaciones conectadas (tipo Web, por ejemplo)

¡Dame mis datos! ¿Qué usar cómo almacenamiento? (II) Base de datos local Access para Windows CE desaparecerá !! Se quedará el equivalente a SQLCE actual Ventajas Disponible sin conexión Acceso con objetos conocidos (ADO.NET) Búsquedas, actualizaciones, etc., con SQL Inconvenientes Mayor complejidad en la instalación y configuración Memoria del dispositivo Tipo de aplicaciones Conectadas, desconectadas, conectadas esporádicamente

¡Dame mis datos! ¿Qué usar cómo almacenamiento? (III) Archivos locales XML Texto plano (CSV) Ventajas Disponible sin conexión Simplicidad de instalación (copiar) Inconvenientes Búsquedas más pobres (en Compact Framework no hay XPATH!!) Acceso manual Tipos de aplicaciones Conectadas, desconectadas, conectadas esporádicamente

¡Dame mis datos! Aprovecha tu dispositivo (I) SQL Server Múltiples ediciones Servidor: SQL Server Cliente Win32 (PC, TabletPC): MSDE Windows CE (PocketPC): SQLCE Sincronizable entre todas ellas Mediante replicación Permite disponer de copia local de los datos con un motor muy potente y API de acceso conocido (ADO.NET)

¡Dame mis datos! Aprovecha tu dispositivo (II) XML Archivos de texto de fácil edición manual Fáciles de mover de un sitio a otro API conocido System.Xml Búsquedas mediante Xpath (excepto en Compact Framework) Serialización de objetos a XML (en Compact Framework serialización sólo mediante XML Web Services)

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

.NET y los servicios de red ¿Con quién tengo que hablar? Servicios Web XML Serialización de objetos práctica

.NET y los servicios de red ¿Con quién tengo que hablar? (I) Sockets.NET dispone de clases completas de sockets TCP, UDP Clientes y listeners Broadcast / Multicast A más alto nivel Clientes HTTP (HttpClient) Clientes SOAP (SOAPClient) DNS

.NET y los servicios de red ¿Con quién tengo que hablar? (II) Para servidores LDAP System.DirectoryServices (DirectoryEntry) Permite por ejemplo obtener información de ActiveDirectory Para servidores MessageQueue System.Messaging

.NET y los servicios de red ¿Con quién tengo que hablar? (III) Microsoft Exchange 2003 Sirve como base de datos de información no relacional (documentos, mensajes de correo, etc.) Accesible con WebDAV (HTTP). Con la clase WebClient, modificando las cabeceras CDO (no.NET)

.NET y los servicios de red Servicios Web XML (I) Implementados por ASP.NET Nueva ISAPI para IIS intercepta la llamada y la procesa Serialización de objetos implícita Desde el punto de vista del programador, por defecto HTTP y XML son transparentes A través e una clase proxy el cliente genera un mensaje SOAP que envía al servidor

.NET y los servicios de red Servicios Web XML (II) Base de interoperatividad XML y HTTP son universales Los dos lados de la comunicación no tienes por que ser iguales (Windows UNIX) Ojo con tipos de datos DataSet no es entendible por otras plataformas (sólo entre.NET) Si se quiere interoperatividad, definir mensajes y mapear objetos a XML para serializar (mediante atributos)

.NET y los servicios de red Servicios Web XML (III) Modelo RPC Simula llamadas a funciones (tipo API) Implica Solicitud - Respuesta Por defecto en todas las herramientas de WebServices Inconvenientes A gran escala, HTTP puede dar problemas (protocolo no conectado) Extensiones por parte de los fabricantes WSI Útil en entornos controlados Sustituible en ocasiones por remoting

.NET y los servicios de red Servicios Web XML (III) Modelo Documento Basado en mensajes. No simula un API, sino que se basa en contratos Un mensaje completo puede implicar N operaciones en el destino La comunicación es asíncrona Base de SOA (Services Oriented Architecture)

.NET y los servicios de red Servicios Web XML (VI) En.NET implementados en toda la plataforma.NET Framework.NET Compact Framework

.NET y los servicios de red Servicios Web XML (V) Ejemplo interesante: Cassini Código gratuito Servidor Web Multitarea Carga el entorno de ejecución de ASP.NET en un proceso independiente ault.aspx?tabindex=0&tabid=1

.NET y los servicios de red Serialización de objetos práctica Demo BTServer: Cuando un cliente arranca, inicia un listener de UDP en un puerto aleatorio Al iniciar sesión, registra su IP, Puerto Desde el servidor se envían mensajes al cliente Usando un WebService El mensaje es una clase que se serializa El cliente, al recibir el mensaje, deserializa el XML en un objeto de la clase original

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Aplicaciones multitarea System.Threading La clase ThreadPool Windows Forms XML Web Services

Aplicaciones multitarea System.Threading Namespace con las clases para multitarea Dispone de clases para la creación de nuevos threads, sincronización (Mutex), timers, etc.

Aplicaciones multitarea La clase ThreadPool (I).NET pone a disposición de las aplicaciones un Pool de threads a utilizar Si una aplicación crea muchos threads acaba por agotar los recursos del sistema El threadpool gestiona la asignación de threads a la aplicación en base al estado del sistema La aplicación encola peticiones en el pool y el pool las asignará un thread según estén disponibles Permite afinar el rendimiento del sistema y evitar el consumo excesivo de CPU

Aplicaciones multitarea La clase ThreadPool (II) Ejemplo BTServer: Cada cliente arranca un listener UDP El listener bloquea la ejecución del Thread hasta que recibe datos La aplicación crea un nuevo thread del thread pool que es el que queda bloqueado a la espera de recepción de mensajes. Una vez tratado el mensaje, vuelve a crear un nuevo thread a la espera De esta manera se consiguen notificaciones de cambios sin que el cliente tenga que preguntar periódicamente

Aplicaciones multitarea Windows Forms Una aplicación Windows Forms ejecuta un thread en el que se puede trabajas con los controles Desde un segundo thread no se puede acceder directamente a propiedades de un control Para notificar a un control desde un thread distinto al principal Control.Invoke (o Control.BeginInvoke)

Aplicaciones multitarea Servicios Web XML (I) Las llamadas a un servicio Web, pueden demorar bastante la respuesta Acceso en internet Referencias Web Por defecto se genera una clase proxy con 3 métodos por cada WebMethod. Para HelloWorld HelloWorld BeginHelloWorld EndHelloWorld

Aplicaciones multitarea Servicios Web XML (I) Los métodos con BeginX EndX ejecutan la llamada de forma asíncrona Multithread No bloquean la aplicación Cuando regresan, avisan a la aplicación mediante un delegate (AsyncCallback) Conveniente utilizar llamadas asíncronas siempre que se pueda

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Código entre plataformas Compartir código entre plataformas (I) Un assembly lleva en sus metadatos las referencias a todas las demás En VS hechas a través de References En línea de comando pasadas por parámetro A la hora de ejecutar se buscan de manera muy estricta En.NET Framework (no en Compact Framework) se pueden redefinir que assemblies se quieren utilizar en tiempo de ejecución (Assembly binding redirection) Mediante los archivos de configuración

Código entre plataformas Compartir código entre plataformas (II) Entre PC y Tablet PC no hay diferencias Excepto controles propios de Tablet Mismo.NET Framework, basta con copiar los assemblies de un equipo a otro Entre PC y Pocket PC PC.NET Framework, Pocket.NET Compact Framework Compact Framework es un subconjunto de.NET Framework Mucho código se puede copiar, pegar y recompilar En la documentación aparecen todas las clases soportadas

Código entre plataformas Compartir código entre plataformas (III) Entre PC y Pocket PC Clases que sólo hagan referencia a System se pueden copiar compiladas Útiles para la definición de tipos generales No soportado

Agenda ¿Qué modelo de aplicación escojo? ¿Quién va a usar mi aplicación? Las ventajas de los estándares ¡Dame mis datos!.NET y los servicios de red para mi aplicación Aplicaciones multitarea Código entre plataformas Optimización del interface

Optimización del interface Usabilidad (I) Cada dispositivo se utiliza de manera distinta y de diseñaron con propósitos diferentes La aplicación ha de adaptarse a la manera de trabajar del usuario y no al revés Cada dispositivo dispone de características especiales Pocket PC: pantalla táctil. Se puede usar con el dedo Tablet PC: permite escribir y reconocer la escritura de manera muy rápida Teléfonos WAP: la entrada de datos es muy lenta por el teclado

Optimización del interface Usabilidad (II) Pocket PC Orientado a acciones concretas y rápidas Cada pantalla ha de permitir realizar una sola acción, no muchas. Claridad. La entrada de datos se hace mediante teclado en pantalla El teclado en pantalla ocupa mucho espacio, ojo con no poner controles de texto debajo (permitir scroll de los controles)

Optimización del interface Usabilidad (III) Dispositivos WAP Pantalla muy pequeña de texto Límite de datos en DeckSize Entrada con teclado numérico Navegación por la pantalla lenta Orientar cada página a algo muy concreto

Optimización del interface Usabilidad (IV) Tablet PC La pantalla puede cambiar de sentido (horizontal/vertical) Tenerlo en cuenta en el interface La pantalla NO es táctil, se usa un bolígrafo especial Entrada de datos por reconocimiento Entrada de datos por gestos

Referencias

Preguntas ?