1. Desarrollando con Visual
Studio .NET 2003, Calificar
aplicaciones para Pocket PC Mi Panorama SOS
Escribe para
2002 Nosotros
Por Jorge Serrano Pérez
Microsoft MVP
Introducción
En este artículo, veremos como crear una sencilla aplicación para dispositivos Pocket PC
2002 con Visual Studio .NET 2003 utilizando algunas técnicas avanzadas de desarrollo.
Nota: Este artículo ha sido redactado utilizando la versión Beta 2 del producto. Quizás en la
versión final haya que realizar algunos cambios.
De ser así, nos abocaremos a ello en su momento.
Aunque el ejemplo es sencillo, la utilización de algunas características avanzadas, pueden
ayudarle a la hora de abordar algunos proyectos para este tipo de dispositivos.
En este artículo, aprenderemos a crear una aplicación capaz de insertar en un control
ComboBox (también válido para el control ListBox) un pareja de valores (valor, clave),
mostrando únicamente en el control el valor y obteniendo la clave del valor seleccionado
mediante código. Adicionalmente y dependiendo de la clave que se asocia a un valor
seleccionado, mostraremos una imagen u otra dependiendo de la selección.
Todas estas operaciones, las realizaremos en nuestro Pocket PC 2002.
El desarrollo de esta solución se realizará con Visual Basic .NET, aunque pasar este código
a su equivalente Visual C# no es extremadamente complejo.
Necesidades hardware
Visual Studio .NET 2003 trae integrado el software necesario para crear aplicaciones para
Pocket PC 2002, incluyendo no sólo Microsoft .NET Compact Framework y los controles
propios de las aplicaciones para este tipo de dispositivos, sino también la conexión directa
con nuestro Pocket PC 2002, bien sea a través de infrarojos o IrDA o a través de TCP
(ActiveSync), o bien, realizando una conexión virtual con el emulador de Pocket PC 2002
que viene integrado con Visual Studio .NET 2003.
2. Por lo tanto y después de comentar todo esto, disponga o no de un Pocket PC 2002, podrá
ponerse manos a la obra en la lectura y puesta en práctica de este artículo con Visual Studio
.NET 2003.
En este artículo no obstante, veremos como acceder a un Pocket PC 2002 desde Visual
Studio .NET 2003 a través de ActiveSync 3.5 (que es la versión que he decidido utilizar).
Lo mejor de todo, es que usted no tiene que hacer nada, porque Visual Studio .NET 2003
hace todo por usted.
Manos a la obra
No añadamos más preámbulos a este artículo y pongámonos el mono de trabajo ya.
Inicie Visual Studio .NET 2003 y sitúese sobre los Proyectos Visual Basic y seleccione la
plantilla Smart Device Application como muestra la figura 1.
Figura 1.
Nota: Dependiendo del idioma de su Visual Studio .NET 2003, las leyendas mostradas en
la figura 1 pueden variar.
Al pulsar sobre el botón OK, observaremos que aparece una ventana como la que se
muestra en la figura 2.
3. Figura 2.
En nuestro caso, no debemos variar nada si aparece las mismas opciones seleccionadas de
la figura 2 en nuestra ventana. Simplemente pulsaremos el botón OK.
Con estos dos sencillos pasos, estaremos listos ya incluso, de utilizar nuestra aplicación en
nuestro Pocket PC 2002 pulsando la tecla F5, pero añadiremos las modificaciones que
queremos incorporar en nuestra aplicación y comentadas en la introducción.
Después de estos pasos, observaremos que aparece un formulario windows para Pocket PC
2002 similar al que aparece en la figura 3.
4. Figura 3.
Este es el formulario de una aplicación para Pocket PC 2002. Si ha programado ya
aplicaciones para Windows en Visual Studio .NET 2003, se habrá dado cuenta en seguida
que el formulario es prácticamente idéntico.
Una advertencia antes de seguir;Si modifica la fuente de letra del formulario o de alguno de
los controles de Microsoft .NET Compact Framework, puede encontrarse con que los textos
no aparecen en el Pocket PC 2002 como aparece en el interfaz de desarrollo de Visual
Studio .NET 2003.Mi recomendación es no modificar (si es posible) la fuente de letra que
viene por defecto y que corresponde con Microsoft Sans Serif.
Observará que inicialmente, se ha añadido a nuestro formulario Windows, un control
MainMenu.
Aprovecharemos este control para añadir un menú a nuestra primera aplicación Pocket PC
2002.
Haga clic sobre el control y escriba en la parte habilitada en el formulario Windows el texto
Salir.
5. A continuación añada un control Panel en el formulario Windows y dentro de este control,
añada dos controles Label, un control ComboBox, un control Button, un control
PictureBox y un control ProgressBar, y dispóngalos en el formulario Windows de manera
ordenada.
Asímismo, modifique algunas propiedades de presentación, como por ejemplo, cambiar el
color y tamaño de la fuente de texto para los controles Label y escribir en el botón el texto
Aceptar.
En la figura 4, puede ver el aspecto del formulario con los controles anteriormente
comentados insertados en él.
Figura 4.
¿Y ahora qué?.
Pues como nuestra aplicación va a utilizar varias imágenes, haremos clic con el botón
derecho del ratón sobre el proyecto y seleccionaremos la opción Add > New Folder del
menú emergente, si bien una vez más, esta leyenda puede cambiar dependiendo del idioma
de su Visual Studio .NET 2003.
Crearemos una carpeta de nombre Imágenes. En realidad, no es tan importante crear una
carpeta en nuestro proyecto, ya que como verá, la aplicación será transferida a nuestro
6. Pocket PC 2003 en el mismo directorio (ejecutable y recursos). Sin embargo, esto nos sirve
para tener ordenado y controlado nuestro desarrollo.
Las imágenes creadas, tendrán un tamaño de 60x60 pixels, por lo que el control
PictureBox tendrá esas mismas dimensiones.
Añadiremos 4 imágenes, una correspondiente al deporte futbol, otra al deporte baloncesto,
otra para el deporte tenis y una última imagen que será cargada si la imagen de su deporte
no se encuentra.
Las cuatros imágenes añadidas son las siguientes:
futbol.bmp
baloncesto.bmp
tenis.bmp
NoImagen.bmp
Ahora tan sólo deberemos escribir a continuación el código fuente de nuestra aplicación,
que es el que se detalla a continuación:
Formulario de aplicación para Pocket PC escrito en VB .NET [Code] -
Form1.vb
Public Class Form1
Inherits System.Windows.Forms.Form
Friend WithEvents MenuItem1 As System.Windows.Forms.MenuItem
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
Friend WithEvents Button1 As System.Windows.Forms.Button
7. Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New() 'This call is required by the Windows
Form Designer.
InitializeComponent() 'Ruta del Ejecutable extraído
del ensamblado
Dim Ruta_Ensamblado As
String =
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
Ruta_Ejecutable = Ruta_Ensamblado.Substring(0,
Ruta_Ensamblado.LastIndexOf("") + 1)
'Add any initialization after the InitializeComponent() call
End Sub
[...]
#End Region
#Region "Variables de la Aplicación"
'Variable para Almacenar la Ruta dónde se encuentra el ejecutable
'Nos servirá para situar el lugar en el que se encuentran las
imágenes
Private Ruta_Ejecutable As String
#End Region
#Region "Estructura Atletas"
'Definición de la Estructura que definirá la pareja de valores
'formada por un valor y clave, que en este caso está formado por
'un Atleta y la Especialidad de éste
'Utilizaremos un método y sus propiedades para establecer los
'valores y poder jugar con ellos en el control ComboBox
Private Structure Atletas
Private m_Atleta As String
Private m_Especialidad As String
Public Sub New(ByVal Atleta As String, ByVal Especialidad As
String)
m_Atleta = Atleta
m_Especialidad = Especialidad
End Sub
Public ReadOnly Property Atleta() As String
Get
Return m_Atleta
End Get
End Property
Public ReadOnly Property Especialidad() As String
Get
Return m_Especialidad
End Get
End Property
End Structure
8. #End Region
#Region "Form1_Load"
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
MyBase.Load
ComboBox1.Visible = False
Dim Datos_Atletas() As Atletas = {New Atletas("Juan López",
"futbol"),
New Atletas("María Simón",
"baloncesto"),
New Atletas("Antonio
Jiménez", "tenis"),
New Atletas("Fernando
Alsa", "balonmano"),
New Atletas("Carla Sampoo",
"tiro con arco"),
New Atletas("Rosa Martín",
"fórmula 1"),
New Atletas("Carlos
Fernández", "badminton")}
ComboBox1.DataSource = Datos_Atletas
ComboBox1.DisplayMember() = "Atleta"
ComboBox1.ValueMember = "Especialidad"
ComboBox1.Visible = True
End Sub
#End Region
#Region "Button1_Click"
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
Button1.Click
ProgressBar1.Value = 25
Label2.Text = ComboBox1.SelectedValue
Dim Img As Bitmap
Try
Img = New Bitmap(Ruta_Ejecutable & Label2.Text & ".bmp")
ProgressBar1.Value = 45
Catch ex As Exception
Img = New Bitmap(Ruta_Ejecutable & "NoImagen.bmp")
ProgressBar1.Value = 50
Finally
ProgressBar1.Value = 75
PictureBox1.Image = Img
ProgressBar1.Value = 90
Img = Nothing
End Try
ProgressBar1.Value = 100
End Sub
#End Region
#Region "MenuItem1_Click"
Private Sub MenuItem1_Click(ByVal sender As System.Object,
9. ByVal e As System.EventArgs) Handles
MenuItem1.Click
Me.Close()
End Sub
#End Region
End Class
Después de escribir nuestro código, ya estamos listos de poder probar nuestro desarrollo.
Probando nuestra aplicación
A la hora de probar nuestra aplicación, nos podemos hacer dos preguntas. ¿Queremos
utilizar un Pocket PC 2002 para probar nuestra aplicación o no?.
Por supuesto, sino dispone de él, no hará falta responder, pero si dispone de él, podrá ver
in-situ la carga y ejecución real, así como el comportamiento, de nuestra aplicación.
En primer lugar, ejecutaremos nuestra aplicación utilizando el emulador de Pocket PC 2002
que está integrado en Visual Studio .NET 2003, por lo que pulsaremos F5 para comenzar la
ejecución de nuestra aplicación.
Aparecerá una ventana de ejecución como se muestra en la figura 5.
Figura 5.
Simplemente, pulsaremos la tecla Intro para ejecutar la opción de Pocket PC 2002
Emulator, que es la opción que aparece marcada por defecto.
Esto lanzará el emulador que se pondrá a cargar las partes generales del mismo junto a la
aplicación que hemos creado.
Nota: Tenga paciencia a la hora de arrancar y ejecutar el emulador. Dependiendo de su
configuración hardware, este proceso puede durar un par de minutos.
10. Al principio y por primera vez, el emulador actúa de forma idéntica a un Pocket PC.
Incluso cargará en el emulador, aquellas partes que son o serán necesarias para ejecutar
aplicaciones para estos dispositivos, como por ejemplo el Microsoft .NET Compact
Framework.
En la figura 6, puede ver una captura del emulador de Pocket PC 2002 en fase de ejecución.
Figura 6.
El aspecto de nuestra aplicación después de ser cargada en el emulador de Pocket PC 2002,
es el que se muestra en la figura 7.
12. Figura 8.
Para cerrar nuestra aplicación en ejecución, pulsaremos sobre la opción del menú Salir.
Ahora tan sólo nos quedará probar la opción de enlace de la aplicación con un Pocket PC
2002 real. Para ello, utilizaremos ActiveSync 3.5.
En mi caso, he conectado el Pocket PC 2002 a mi ordenador mediante USB y he
establecido una conexión a través de ActiveSync 3.5.
Pulsaremos nuevamente F5 y seleccionaremos la opción Pocket PC Device que aparece en
la figura 5.
Después de unos breves segundos, se establecerá la comunicación entre Visual Studio .NET
2003 y nuestro Pocket PC 2002, enviándose los archivos necesarios para ejecutar la
13. aplicación. Pocos segundos después, nuestra aplicación aparecerá en ejecución en la
pantalla de nuestro Pocket PC 2002.
Así de sencillo.
Conclusión
En este artículo, hemos visto cómo crear una aplicación para Pocket PC 2002 con Visual
Studio .NET 2003 y cómo ejecutarla en el emulador de Pocket PC 2002 que viene con
Visual Studio .NET 2003 y como establecer una conexión con nuestro Pocket PC 2002 a
través de ActiveSync.
Nota: Hay un conjunto de botones en la barra de herramientas, que establecen diferentes
funciones que conviene conocer:
Esta imagen, está compuesta por un ComboBox desplegable en el que podremos
seleccionar el dispositivo o emulador, que será lanzado por defecto al pulsar F5.
De los tres iconos que aparecen, el de la derecha del todo, nos permite construir el archivo
cab de nuestra aplicación, para distribuirla fácilmente.El icono de la izquierda de los tres,
nos permite conectar con el Pocket PC (ya sea con el emulador o con el dispositivo
conectado a nuestro sistema directamente).El icono del medio, nos permite modificar
diferentes propiedades de conexión de nuestro dispositivo, como la conexión con IrDA o
con TCP.