Taller de Programación de
Dispositivos Móviles
José Miguel Rubio L.
Oficina 3-20
http://www.inf.ucv.cl/~jrubio
[email protected]
.NET CF
Windows Mobile y .NET CF
Windows Mobile = Windows CE + programas +
extensiones
Modular como Windows CE, código a disposición
de los ensambladores/operadoras
Dirigido a:
Pocket PC, PPC Phone Edition
Smartphone (SP)
Portable Media Center (PMC)
.NET CF
Windows Mobile y .NET CF
Dispositivos
2000
2002
2003
2003
Second Edition
Futura
Plataforma
Windows
Mobile
SO
WinCE 3.0
WinCE 3.0
WinCE 4.2
WinCE 4.2
WinCE 5.0
Mejor
Desarrollo
eVC 3 (C++)
eVB 3 (VB)
eVC 3 (C++)
eVB 3 (VB)
eVC 3 (C++)
eVC 4 (C++)
VS.NET 2003
(C#, VB.NET)
eVC 3 (C++)
eVC 4 (C++)
VS.NET 2003
(C#, VB.NET)
Visual Studio
2005
(C#, VB.NET, C++)
Capacidad
Plataforma
MFC
Win32,
POOM
MFC, ATL
ATL 4.2, .NET CF
.NET CF SP2
Active Sync
Connection Mgr
MAPI
OBEX
Telephony
Enhanced Emulator
Configuration Mgr,
Bluetooth, SMS
VGA (PPC)
QVGA (SP)
Square
Landscape
.NET CF 2.0
MFC 8.0, ATL 8.0
Broad managed code
support
Notifications Broker,
Location, Camera,
Watson, D3DM
.NET CF
Windows Mobile y .NET CF
Visual Studio 2005
Visual Studio 2005
Managed
Managed
.NET Compact
.NET Compact
Framework 2.0
Framework 2.0
Server side
Server side
ASP .NET
ASP .NET
Mobile Controls
Mobile Controls
Native
Native
MFCMFC
ATLATL
Win32Win32
Software Platform (APIs)
Software Platform (APIs)
Device Management
Device Management
Remote API
Remote API
Configuration*
Configuration*
Bluetooth
Bluetooth
Not. Broker
Not. Broker
Pocket Watson
Pocket Watson
Communication
Communication
Connection Manager
Connection Manager
TAPI*
TAPI*
SMS*
SMS*
MAPI*
MAPI*
POOM*
POOM*
Presentation
Presentation
Home Screen
Home Screen
User Interface/Shell
User Interface/Shell
HTML Control
HTML Control
DOMDOM
Data Access
Data Access
SQL Mobile
SQL Mobile
ADO CE
ADO CE
XMLXML
CE DB
CE DB
OLE DB
OLE DB
Multimedia
Multimedia
GAPIGAPI
Camera
Camera
D3DMD3DM
Windows Mobile
Windows Mobile
Windows CECE
Windows
Drivers
Drivers
CE DB
CE DB
ActiveSync
ActiveSync
SQL Mobile
SQL Mobile
Pocket Outlook
Pocket Outlook
Pocket Internet Explorer
Pocket Internet Explorer
Windows Media Player
Windows Media Player
Device
Device
Hardware
Hardware
Processor
Processor
Memory
Memory
Display
Display
USB or Serial
USB or Serial
Radio
Radio
GSM/GPRS
GSM/GPRS
CDMA/1xRTT
CDMA/1xRTT
WiFiWiFi
Bluetooth
Bluetooth
.NET CF
** = Managed wrappers
= Managed wrappers
Contenidos
Introducción a .NET
Introducción a Compact Framework
Sintaxis de C#
Operaciones básicas con C#
Propiedades y DataBinding
Acceso a Bases de Datos
Invocación de Web Services
.NET CF
Introducción (I)
¿Qué es .NET?
Un conjunto de tecnologías que Microsoft ha creado y
posibilitan crear programas y comunicarlos entre sí con
independencia del lenguaje de programación y la
plataforma de ejecución.
¿Para qué tipo de máquina? CUALQUIERA que
soporte .NET
Se crea un programa y éste puede ejecutarse en
cualquier máquina con .NET instalado.
Puede comunicarse con otros programas
independientemente de la plataforma y lenguaje
.NET CF
Introducción (II)
Además, el programa puede haber sido hecho en
cualquiera de los lenguajes del conjunto .NET,
que es muy amplio
C++
J++
C#
Visual Basic.NET
Pascal, COBOL, Delphi, Python, .......
El conjunto cada día crece más
“Escribe en el lenguaje que quieras y ejecútalo en
la máquina que quieras”
.NET CF
Introducción (III)
Para conseguir esto se han creado una
serie de elementos básicos
Common Language Runtime (CLR)
Base Class Library (BCL)
Y unos elementos que se ejecutan sobre
ellos (Windows Forms, Web Services, ...)
.NET CF
Arquitectura (I)
ASP.NET
Servicios Web
Windows Forms
.NET Framework Base Classes
Common Language Runtime
.NET CF
Arquitectura (II)
Common Language Runtime
Elemento que se encarga de la ejecución. El corazón
de la ejecución de una aplicación en .NET
Se encarga de ejecutar las aplicaciones, crear el
entorno de ejecución en la máquina, etc...
El concepto es similar al que usa JAVA: El código
fuente es convertido a código intermedio ‘standard’
(MSIL)
El CLR traduce este código intermedio al código
máquina de la arquitectura concreta, directamente,
para que el procesador ejecute las instrucciones.
.NET CF
Arquitectura (III)
Common Language Runtime (CLR)
Ventaja en .NET CUALQUIER lenguaje
.NET se traduce al código intermedio.
Da igual en qué lenguaje se cree la aplicación,
al final se tendrá el mismo código intermedio a
ejecutar. El CLR ejecutará lo mismo provenga
del lenguaje de programación que provenga
Posibilidad INTEGRACIÓN
MULTILENGUAJE: Llamar a métodos o
heredar de clases escritas en otros lenguajes.
Todo converge al final a MSIL
.NET CF
Arquitectura (IV)
Código Fuente
Código Intermedio
Compilar
CLR
Código Máquina
Base Class Library (BCL)
E je c u ció n
Conjunto de librerías que usan los lenguajes de
programación .NET
Es un conjunto de clases que ofrece la funcionalidad
básica: Desde vectores y arrays a sockets y librerías de
Base de Datos
Por supuesto, cualquier usuario puede aumentar la
librería creando nuevas clases que pueden o no
heredar de éstas
.NET CF
Arquitectura (V)
Elementos que residen encima de CLR y
BCL
Windows Forms: Aplicaiones de formularios
ASP.NET: Generación que evoluciona de los
ASP’s comunes. Creación de páginas web
dinámicas
Web Services: invocación remota a servicios
de todo tipo a través de la web
.NET CF
Usar .NET en dispositivos
móviles
Aprovechando esta propiedad de .NET, se
pueden crear aplicaciones para móviles
fácilmente
¿Y si existiera un CLR especial para dispositivos
móviles?
Podríamos programar normalmente, compilar, crear el
lenguaje intermedio (MSIL) y el CLR se encargaría de
ejecutarlo en el procesador de estos dispositivos
Para eso se ha creado .NET Compact Framework
.NET CF
.NET Compact Framework (I)
La idea es poder programar estos dispositivos sin
necesidad de ser especialista en ellos
Se programarían tal y como programamos
aplicaciones de un PC de sobremesa, el CLR se
encargaría del resto
Problema Un procesador de un dispositivo de
este tipo es mucho menos potente que el de un
PC de sobremesa
Es necesario un CLR reducido, menos potente que el
CLR ordinario
.NET CF
.NET Compact Framework (II)
¿Consecuencia de esto?
Al tener menos potencia las clases que requieran
mayor proceso o que por alguna otra razón no se
puedan implementar en estos dispositivos se eliminan
Queda un subconjunto de las clases de sobremesa
Sin embargo, se ha conseguido que el conjunto
funcional de clases en Compact Framework aún siga
siendo muy amplio
El objetivo es que el programador acostumbrado al
CLR normal no se vea ‘con las manos cortadas’
Además, las características básicas propias de .NET
siguen intactas
.NET CF
¿Cómo programar en .NET CF?
Para empezar a usar CF usaremos el lenguaje de
programación C#
Como herramienta de desarrollo usaremos Visual
Studio .NET 2003
Visual Studio tiene varias plantillas de proyectos,
dependiendo del tipo. Usaremos la específica de
dispositivos móviles.
Visual Studio Ofrece funciones útiles como emulador
de PocketPC, el despliegue automático de la aplicación
a un dispositivo real, etc
.NET CF
¿Cómo programar en CF?
Con Visual Studio se puede ejecutar la
aplicación en un dispositivo móvil real,
mientras se hace debug en el mismo PC
Hay otras herramientas alternativas de
desarrollo
Desarrollo en C# : SharpDevelop (Open Source)
http://www.icsharpcode.net/opensource/sd/
Etc...
.NET CF
El lenguaje C# (I)
C# es muy parecido a Java
Pequeñas diferencias de sintaxis, algunos
elementos nuevos y diferentes librerías
Por ser parte de .Net
Lenguaje autocontenido no necesita ficheros extra
demás del fuente (ficheros de cabecera, etc..) guarda
toda la información necesaria él mismo
Recolector de basura no necesita que el
programador se encargue de gestionar la memoria
.NET CF
El lenguaje C# (II)
¡En C# CUALQUIER cosa hereda de object!
Hasta los tipos básicos como int se pueden tratar como
objetos, a diferencia de Java
Se pueden redefinir operadores, como en C++ y a
diferencia de Java
No es necesario usar punteros, pero para el que
quiera hacerlo (o necesite migrar una aplicación
hecha por ejemplo en C++) existe la opción
Código Inseguro (unsafe)
Las clases de la librería base se encuentran
divididas en grupos. En Java se llaman paquetes,
en C# se llaman NameSpaces (espacios de
nombres)
.NET CF
Namespaces
Crear un Namespace:
namespace Jugueteria
{
class Juguete
{
...
}
}
Usar un Namespace (en Java se hace con ‘import’)
using Jugueteria;
.NET CF
Principales Namespaces
System Los tipos más frecuentemente usados
(tipos básicos y tablas, fechas...)
System.Collections Colecciones de datos más
comunes (pilas, colas, listas ...)
System.Data Manipulación de Bases de Datos
System.IO Manipulación de ficheros
System.Net Comunicaciones en red
System.Threading Manipulación de Threads
System.Windows.Forms Formularios
System.Web.UI.WebControls Controles Web
.NET CF
Más sintaxis (I)
En C# la clase string (con minúscula) se puede
comparar con el operador == y hasta los tipos
básicos como int tienen método ToString()
El acceso a consola es con
System.Console.WriteLine(“Hola Mundo!”);
System.Console.ReadLine();
Herencia
public class Trabajador: Persona
Constantes
public const int NO_VALIDO = -1;
.NET CF
Más sintaxis (II)
Instrucción nueva foreach recorre automáticamente una
colección de datos (array, lista, etc...). Como un for que
pasa por todos los elementos de la colección.
Suponiendo que la variable trabajadores es una lista de
instancias de la clase Trabajador:
foreach (Trabajador tt in trabajadores)
{
Console.WriteLine( tt.ToString() );
}
La instrucción recorre la colección trabajadores, extrae
cada uno de los elementos de ella, que son de tipo
Trabajado
Comentarios de: Taller de Programación de Dispositivos Móviles (0)
No hay comentarios