Sie sind auf Seite 1von 30

Introducción a Visual Studio .NET y Microsoft .

NET Compact
Framework

Larry Roof
larryroof.com

Marzo de 2002

Este artículo se aplica a:


Microsoft® .NET Compact Framework 1.0
Microsoft® Visual Studio .NET 2003
Microsoft® Windows® CE .NET

Resumen: en este artículo aprenderá a desarrollar robustas aplicaciones de dispositivos de cliente


inteligentes con .NET Compact Framework 1.0 y Visual Studio .NET 2003. (34 páginas impresas.)
Contenido

Introducción

Tiempo de ejecución en lenguaje común

Biblioteca de clases de .NET Compact Framework

Características a la carta

Características no incluidas en .NET Compact Framework

Desarrollo con Visual Studio .NET 2003

Adiciones a IDE

Lenguajes admitidos

Documentación en pantalla

Creación de una aplicación .NET Compact Framework

Inicio de un proyecto de Visual Basic .NET

Inicio de un proyecto de Visual C# .NET

Asistente Smart Device Application

Tipos de proyectos de Pocket PC

Tipos de proyectos de Windows CE

Definición de las propiedades del proyecto

Creación de la interfaz

Adición de código

Comprobación de la aplicación

Comprobación en el emulador

Comprobación en un dispositivo

Depuración de la aplicación

Implementación de la aplicación

Requisitos

Creación de un archivo CAB

Ubicación de los archivos CAB generados

Creación de un programa de instalación de escritorio

Resumen
Información adicional

Introducción

Microsoft ha desarrollado .NET Compact Framework con un claro objetivo: la creación de aplicaciones.
Nos referimos a aplicaciones capaces de mostrar, recopilar, procesar y enviar datos; el tipo de aplicación
que justifica que los usuarios decidan llevar encima un dispositivo. Aunque normalmente estas
aplicaciones tienen una interfaz, no siempre es necesario. Los datos con los que estas aplicaciones
trabajan pueden ser locales, remotos o tal vez una combinación de ambos.

.NET Compact Framework simplifica el desarrollo de aplicaciones para dispositivos inteligentes.


Actualmente, esto incluye a los dispositivos Pocket PC, Pocket PC 2002, Pocket PC Phone Edition y otros
dispositivos que ejecuten Windows CE.NET 4.1 o posterior.

Necesitará Visual Studio .NET 2003 para crear aplicaciones destinadas a .NET Compact Framework.
Puede crear aplicaciones utilizando Visual C# .NET, Visual Basic .NET o ambos.

.NET Compact Framework tiene dos componentes principales: el tiempo de ejecución en lenguaje común
y la biblioteca de clases de .NET Compact Framework.

El tiempo de ejecución es la base de .NET Compact Framework, ya que se encarga de administrar el


código en el momento de la ejecución, proporcionando servicios esenciales como la administración de la
memoria y de los subprocesos, al mismo tiempo que garantiza la seguridad y la precisión. Si el código
está destinado al tiempo de ejecución se denomina código administrado, si no lo está, como ocurre con
eMbedded Visual C++, se denomina código no administrado o nativo.

La biblioteca de clases de .NET Compact Framework es una colección de clases reutilizables que se
pueden utilizar para desarrollar aplicaciones de manera fácil y rápida. Este marco se ha diseñado
pensando en la portabilidad, tanto para plataformas Microsoft como de otros fabricantes. ¿Qué significa
esto? Sencillamente que las técnicas de codificación y las aplicaciones creadas hoy en un Pocket PC se
pueden ejecutar en otras plataformas, como un teléfono móvil o un PDA de otro fabricante, si se ha
creado una versión de .NET Compact Framework para dicha plataforma.

Tiempo de ejecución en lenguaje común

El tiempo de ejecución en lenguaje común proporciona un entorno de ejecución de código que


administra el código destinado a .NET Compact Framework. La administración de código se refiere a la
administración de la memoria, de los subprocesos y de la seguridad, así como a la verificación y
compilación del código en otros servicios del sistema.

El tiempo de ejecución se ha diseñado para mejorar el rendimiento. Utiliza compilación directa (JIT), que
permite que el código administrado se ejecute en el lenguaje del equipo nativo de la plataforma en el
que se está ejecutando la aplicación. De esta manera es posible crear aplicaciones destinadas a una gran
variedad de plataformas, sin que haya que preocuparse de volver a compilar o generar ejecutables
destinados a cada plataforma concreta.

Aunque la aplicación móvil esté escrita en Visual Basic .NET o C# .NET, al tratarse de código
administrado, seguirá siendo posible incorporar funciones y subrutinas almacenadas externamente en
bibliotecas de vínculos dinámicos (DLL), incluidas las API de Windows CE. .NET Compact Framework
proporciona los tipos de datos y la compatibilidad con las estructuras necesaria para incorporar con
facilidad funciones de las API de Windows CE en su aplicación.

Biblioteca de clases de .NET Compact Framework

La biblioteca de clases de .NET Compact Framework es una colección de clases reutilizables que se
integra estrechamente con el tiempo de ejecución en lenguaje común. Las aplicaciones aprovechan estas
bibliotecas para obtener ciertas funcionalidades.

Como es de esperar en una biblioteca de clases orientada a objetos, los tipos de .NET Compact
Framework permiten llevar a cabo una serie de tareas de programación habituales, entre las que se
incluye el diseño de interfaces, el uso de XML, el acceso a bases de datos, la administración de
subprocesos y la E/S de archivos.
A continuación, se incluye una lista de funcionalidades habituales disponibles en .NET Compact
Framework.

Clases relacionadas con formularios

.NET Compact Framework implementa un subconjunto de las clases System.Windows.Forms y


System.Drawing, que permite crear una cómoda interfaz de usuario basada en Windows CE para la
aplicación del dispositivo. El diseñador de formularios de Visual Studio.NET se ocupa automáticamente
de gran parte de la interacción utilizando estas clases.

La implementación de Windows Forms con .NET Compact Framework incluye la posibilidad de utilizar
formularios, la mayoría de los controles de .NET Framework, el alojamiento de controles de otros
fabricantes, mapas de bits y menús. La tabla 1 indica los controles que se incluyen con .NET Compact
Framework.

Tabla 1. Controles incluidos con .NET Compact Framework

Control Descripción

Button botón de comando simple

CheckBox casilla de verificación habitual

ComboBox lista desplegable de elementos

ContextMenu implementa un menú contextual

DataGrid cuadrícula que se puede enlazar a un origen de datos

DomainUpDown lista de elementos que se puede explorar mediante una barra de


desplazamiento

HScrollBar barra de desplazamiento horizontal

ImageList contenedor que almacena imágenes

InputPanel controla el Soft Input Panel (SIP)

Label control simple para mostrar texto

ListBox proporciona una lista de elementos

ListView proporciona cuatro vistas de los datos: iconos grandes, iconos pequeños, lista y
detalles

MainMenu implementa un menú en un formulario

NumericUpDown campo de entrada numérica que incluye una barra de desplazamiento

OpenFileDialog proporciona acceso al cuadro de diálogo nativo para abrir archivo

Panel contenedor utilizado para acoger otros controles

PictureBox muestra imágenes

ProgressBar indicador visual del progreso de una tarea

RadioButton botón de opción habitual

SaveFileDialog proporciona acceso al cuadro de diálogo nativo para guardar archivo

StatusBar panel simple para mostrar texto

TabControl proporciona una interfaz de fichas para una aplicación

TextBox campo de entrada de texto estándar

Timer componente de temporizador básico

ToolBar implementa una barra de herramientas en un formulario

TrackBar interfaz de control deslizante utilizado con datos numéricos

TreeView presenta datos en formato jerárquico


VScrollBar barra de desplazamiento vertical

Al ser .NET Compact Framework un subconjunto de .NET Framework, los controles incluidos ofrecen un
subconjunto de las funcionalidades de sus equivalentes para equipos de escritorio. Debido a
consideraciones de tamaño y de rendimiento, los controles de .NET Compact Framework no incluyen
algunas propiedades, métodos y eventos de los controles. Con un poco de codificación, usted mismo
puede implementar estas funcionalidades en caso de que sean necesarias, ya que .NET Compact
Framework le permite crear sus propios controles mediante herencia de la clase base del control. A
partir de esta base, puede agregar sus propios métodos, propiedades y eventos para crear exactamente
el control que necesita.

Clases de XML y de datos

.NET Compact Framework incluye un conjunto de clases que permiten incorporar con facilidad datos (ya
sea de un origen de datos relacional o no), entre los que se incluye el contenido XML, en sus
aplicaciones móviles. Estas clases se definen para los espacios de nombres System.Data y
System.Xml. La implementación de clases de XML y de datos en .NET Compact Framework es un
subconjunto de la que se encuentra en .NET Framework.

Servicios Web

.NET Framework presta una atención especial a los servicios Web. En el espacio de nombres
System.Web de .NET Compact Framework, hay una versión a escala reducida de las posibilidades y
funcionalidades que ofrece el correspondiente espacio de nombres de .NET Framework. La característica
más destacable es que se pueden crear clientes de servicios Web pero no se pueden alojar servicios Web
en .NET Compact Framework.

Estos clientes de servicios Web XML pueden ser sincrónicos o asincrónicos. Se pueden crear fácilmente
clientes de servicios Web XML destinados a .NET Compact Framework. El IDE de Visual Studio .NET hace
automáticamente la mayor parte del trabajo.

Compatibilidad con GDI

.NET Compact Framework proporciona compatibilidad con los elementos básicos de dibujo de GDI
incluidos mapas de bits, pinceles, fuentes, iconos y plumas mediante el espacio de nombres
System.Drawing.

Clases base

.NET Compact Framework proporciona un conjunto robusto de clases base que expone una amplia
variedad de funcionalidades que los desarrolladores pueden aprovechar. Esta infraestructura subyacente
le permite escribir cómodas aplicaciones .NET que incluyen la posibilidad de crear aplicaciones con varios
subprocesos (System.Threading), aprovechar recursos de red (System.Net) y trabajar con archivos
(System.IO).

Compatibilidad con IrDA

Algunos dispositivos con Windows CE, por ejemplo, Pocket PC y Pocket PC 2002, incluyen la posibilidad
de comunicarse mediante infrarrojos (IR). Para poder aprovechar esta posibilidad, .NET Compact
Framework incluye clases que le permiten aprovechar la comunicación mediante infrarrojos desde la
aplicación. Estas clases son parte del espacio de nombres System.Net.IrDA. Puede utilizar infrarrojos
para comunicarse con equipos Pocket PC, impresoras y otros dispositivos compatibles con infrarrojos.

Compatibilidad con Bluetooth

.NET Compact Framework no incorpora compatibilidad nativa con Bluetooth. Puede obtener acceso a la
mayoría de implementaciones de Bluetooth en equipos Pocket PC de otros fabricantes mediante las
comunicaciones del puerto serie o mediante una API del proveedor.

Compatibilidad con Visual Basic


Visual Basic .NET utiliza bastante las funciones auxiliares de la biblioteca auxiliar de Visual Basic. .NET
Compact Framework incluye también un subconjunto de estas funciones, consideradas por los
desarrolladores de Visual Basic como una parte esencial del lenguaje, por lo que se ha decidido
incluirlas.

Para los desarrolladores de Visual Basic o eMbedded Visual Basic que están comenzando a trabajar con
.NET Compact Framework, esto significa que la mayoría de las funciones del lenguaje Visual Basic con
las que está acostumbrado a trabajar también estarán disponibles en Visual Basic .NET.

Características a la carta

Para ahorrar recursos en el dispositivo de destino, Microsoft ha dividido .NET Compact Framework en
componentes lógicos. Al suministrar los componentes como DLL independientes (o ensamblados, según
se les denomina en .NET Compact Framework) Microsoft le ofrece la oportunidad de decidir y seleccionar
las características que necesita y sólo aquéllas para las que el dispositivo de destino tiene espacio.

Un ejemplo de esto es el ensamblado System.SR, que contiene las cadenas de los mensajes de error. Si
incluye este ensamblado en su aplicación podrá ver descripciones detalladas de todos los errores
detectados, lo cual es ciertamente útil durante una sesión de depuración, pero normalmente no es
necesario una vez que se ha lanzado a producción. Si no se incluye este ensamblado, no se verán
afectados ni el rendimiento ni la funcionalidad de la aplicación, pero no podrá ver mensajes de error
detallados.

Otro ejemplo del enfoque a la carta de .NET Compact Framework son los componentes SQL Server CE,
que se entregan en un conjunto de DLL cuyo tamaño total apenas supera 1 MB. A menos que agregue
explícitamente una referencia a los ensamblados System.Data.SqlServerCe, estas DLL no se incluirán en
la aplicación.

Características no incluidas en .NET Compact Framework

Ha sido necesario realizar importantes recortes en .NET Framework para adaptarlo a las limitaciones de
funcionamiento de Windows CE. En esta sección se abordarán las características más destacables de
.NET Framework que no se han incluido en .NET Compact Framework.

Sobrecargas de métodos

La sobrecarga de un método ofrece manera alternativas de llamar a dicho método. También aumenta el
tamaño de Framework. Por este motivo, .NET Compact Framework ha eliminado las sobrecargas de
prácticamente todos los métodos.

Hay dos consecuencias básicas de esto. Primero, es bastante probable que una determinada sobrecarga
de un método que solía utilizar con una aplicación de escritorio no esté disponible a la hora de
desarrollar aplicaciones basadas en .NET Compact Framework. Segundo, cuando esté leyendo la
documentación, preste mucha atención a si se admite un determinado método en .NET Compact
Framework.

Controles no incluidos

Hay una serie de controles de .NET Framework que no se han incluido en .NET Compact Framework. La
ausencia de la mayoría de estos controles carece de importancia para los desarrolladores de aplicaciones
móviles. Teniendo en cuenta que las aplicaciones móviles apenas imprimen, no es ningún problema
eliminar la familia completa de controles relacionados con la impresión. Por tanto, se han eliminado los
controles CrystalReportViewer, PageSetupDialog, PrintDialog, PrintDocument, PrintPreviewControl y
PrintPreviewDialog. Puede sustituir la mayoría de los cuadros de diálogo que faltan por sus propios
cuadros de diálogo o bien utilizar directamente los cuadros de diálogo del sistema mediante la API de
Windows CE.

También están empezando a aparecer controles de otros fabricantes que sustituyen a los controles que
no se han incluido en .NET Compact Framework. Si desea ver una lista de controles de .NET Compact
Framework de otros fabricantes, consulte las referencias que se incluyen al final de este artículo.

Funcionalidad XML
Aunque se ha incluido buena parte de la funcionalidad de XML de .NET Compact Framework, ha sido
necesario recortarla. El componente clave relacionado con el XML que no se ha incluido es el espacio de
nombres System.Xml.XPath. El espacio de nombres XPath hacía la interpretación del XML mucho más
fácil que los métodos que incorpora .NET Compact Framework. Para compensar esto, puede utilizar una
combinación de las búsquedas recursivas e iterativas con el modelo de objetos de documento (DOM,
Document Object Model).

Hay otro componente clave XML que no se ha incluido en .NET Compact Framework: XSLT (Extensible
Stylesheet Language Transformation). Mediante XSLT, es posible convertir un documento XML en
diferentes formatos.

En relación con el XML, .NET Compact Framework no ofrece actualmente compatibilidad para el
desarrollo de servicios Web XML basados en dispositivos.

Compatibilidad con bases de datos

.NET Compact Framework ofrece un conjunto robusto de herramientas relacionadas con los datos. La
compatibilidad con la base de datos local la proporciona SQL Server CE. En el servidor, .NET Compact
Framework ofrece compatibilidad con SQL Server.

Tenga en cuenta que hay un fabricante que ofrece un componente de .NET Compact Framework que
permite trabajar con bases de datos de Pocket Access. Para obtener más información, consulte las
referencias que aparecen al final de este artículo.

Serialización binaria

Debido a consideraciones de tamaño y de rendimiento, no se han incluido las clases BinaryFormatter y


SoapFormatter en .NET Compact Framework.

Acceso al registro de Windows

.NET Framework incorpora el espacio de nombres Microsoft.Win32.Registry, que facilita el trabajo con el
registro de Windows desde una aplicación. Obviamente, este espacio de nombres no se ha incluido en
.NET Compact Framework, ya que hace referencia a Win32 y no a Windows CE. Puede tener acceso al
registro de Windows CE llamando a las correspondientes API de Windows.

Aprovechamiento de los componentes COM

El proceso de incorporación de objetos COM en una aplicación basada en .NET Compact Framework
consta de dos pasos. Primero, debe escribir un empaquetador DLL no administrado (es decir, en
eMbedded Visual C++) que exponga el objeto COM. Dependiendo de la complejidad del objeto COM,
hacer esto puede ser muy sencillo o extremadamente complicado. Segundo, debe utilizar PInvoke para
tener acceso al empaquetador DLL. Afortunadamente, la comunidad de desarrolladores ya ha
comenzado a trabajar en proporcionar acceso a los componentes COM utilizados con más frecuencia,
varios de los cuales se incluyen en las referencias que aparecen al final del artículo.

Seguridad

.NET Compact Framework no impide el acceso al código no administrado. Cualquier aplicación puede
llamar a una API, ya sea del sistema o no.

Actualmente, no hay ningún tipo de seguridad basada en funciones en .NET Compact Framework. El
objeto principal no entiende de identidad conocida o de función conocida.

Servicios Web XML

La exclusión más notable de las posibilidades de los servicios Web XML de .NET Compact Framework es
la posibilidad de utilizar cookies. Las cookies se utilizan con frecuencia para almacenar el estado en el
servidor entre diferentes llamadas desde un cliente. Aunque el uso de las cookies en los servicios Web
no es tan frecuente como su uso en sitios Web, también se utilizan.

.NET Compact Framework ofrece posibilidades de cifrado limitadas respecto a los servicios Web.
Impresión

.NET Compact Framework no ofrece ninguna función para imprimir. No hay ninguna manera fácil de
interaccionar con impresoras de red ni con impresoras externas mediante infrarrojos.

La solución para tener acceso a las impresoras de red es crear una aplicación basada en el servidor, que
acepte e imprima las tareas enviadas por la aplicación móvil.

Puede enviar una salida mediante el puerto de infrarrojos directamente a impresoras compatibles con
infrarrojos. Puede utilizar el espacio de nombres System.Net.IrDA para tener acceso al puerto de
infrarrojos del dispositivo.

GDI+

Windows CE no es compatible de manera nativa con GDI+, por lo que las funcionalidades relacionadas
con GDI+ se han eliminado de .NET Compact Framework.

Entorno remoto

La primera versión de .NET Compact Framework no es compatible con el entorno remoto.

Desarrollo con Visual Studio .NET 2003

Visual Studio .NET 2003 ofrece un entorno de desarrollo robusto para la creación de aplicaciones
destinadas a .NET Compact Framework. Junto con Visual Studio .NET se incluyen un conjunto de perfiles
de dispositivos ya creados. Un perfil de dispositivo contiene la información necesaria para crear
aplicaciones destinadas a determinados dispositivos. Con Visual Studio .NET, hay perfiles que le permiten
crear aplicaciones para Pocket PC, Pocket PC 2002 y Windows CE .NET 4.1 y posterior. Estos perfiles le
permiten crear aplicaciones que incluyen Windows Forms y ADO.NET, y ofrecen la posibilidad de
consumir servicios Web.

Los perfiles pueden ser específicos de los dispositivos, como los destinados a Pocket PC, plataformas
menos específicas destinadas a la plataforma Windows CE en general o perfiles genéricos destinados a
cualquier plataforma a la que se haya transferido .NET Compact Framework.

Visual Studio .NET es compatible con los kits de dispositivos (anteriormente conocidos como SDK). Al
igual que las versiones anteriores de las herramientas incrustadas, los kits de dispositivos están
separados de Visual Studio .NET y se pueden instalar y actualizar de manera independiente.

Adiciones a IDE

Además de todas las características que se encuentran de manera nativa en Visual Studio .NET, están las
siguientes características específicas de los dispositivos:

• Plantillas: configuraciones predefinidas para tipos de proyectos habituales. Las plantillas se

proporcionan para los dispositivos Pocket PC y Windows CE.

• Controles específicos de los dispositivos: controles específicamente diseñados para utilizarlos con

Pocket PC y Windows CE. La interfaz, el consumo de recursos y la funcionalidad se han adaptado a

estos entornos.

• Emuladores de dispositivos: entornos de prueba que simulan determinados dispositivos. Los

emuladores se ejecutan en el equipo del desarrollador, lo que permite realizar pruebas sin utilizar

directamente el dispositivo.
• Distribución automática de aplicaciones: permite realizar pruebas fácilmente en un emulador o un

dispositivo, ofreciendo a los desarrolladores un entorno de pruebas perfectamente integrado.

• Depuración remota: permite aprovechar las herramientas de depuración que ofrece el IDE de Visual

Studio .NET con las aplicaciones del dispositivo. Todas las herramientas de depuración se pueden

utilizar con las aplicaciones basadas en .NET Compact Framework que se ejecuten en un emulador o

en un dispositivo.

Lenguajes admitidos

.NET Compact Framework admite dos lenguajes de desarrollo, C# .NET y Visual Basic .NET. Mientras que
las versiones anteriores de las herramientas de desarrollo de Windows CE favorecían el uso de lenguajes
basados en C (concretamente, eMbedded Visual C++) con .NET Compact Framework apenas importa el
lenguaje que se utilice, ya que todos son igualmente eficaces y funcionales.

Al ser una adición posterior al entorno de desarrollo Visual Studio .NET, .NET Compact Framework no es
compatible con J#.

También debe tener en cuenta que hay otra limitación de lenguaje en .NET Compact Framework que no
existe en .NET Framework. Con .NET Framework puede utilizar componentes en diferentes lenguajes en
un único proyecto. En comparación, los proyectos de .NET Compact Framework están restringidos a un
único lenguaje, ya sea C# .NET o Visual Basic .NET. La solución que permite superar esta limitación de
utilizar un único lenguaje en cada proyecto impuesta por .NET Compact Framework es crear proyectos
adicionales utilizando la plantilla Class. Agregue el código del lenguaje alternativo a la plantilla y, a
continuación, sólo tiene que agregar referencias a estas clases en el proyecto de la aplicación.

Documentación en pantalla

La documentación incluida con Visual Studio .NET proporciona información acerca de .NET Compact
Framework. Encontrará temas específicos de .NET Compact Framework, por ejemplo acerca de la
creación de controles personalizados con .NET Compact Framework, así como la identificación de
elementos de línea de características admitidas en .NET Compact Framework.

La figura 1 muestra un ejemplo de las propiedades DataTable admitidas en .NET Compact Framework.
Cada una de las propiedades admitidas incluye la nota "Supported by the .NET Compact Framework"
(Compatible con .NET Compact Framework). Se trata de una manera práctica de ver las características
que admite un objeto y determinar rápidamente las diferencias existentes entre .NET Framework y .NET
Compact Framework.

Figura 1. Ayuda en pantalla

Creación de una aplicación de .NET Compact Framework


Al iniciar Visual Studio .NET, se muestra la página de inicio, como muestra la figura 2. Desde la página
de inicio, puede abrir proyectos existentes y crear nuevos proyectos, incluidos proyectos destinados a
.NET Compact Framework.

Figura 2. Página de inicio de Visual Studio .NET

Si se hace clic en el botón Nuevo proyecto aparecerá el cuadro de diálogo Nuevo proyecto, como
muestra la figura 3. Desde este cuadro de diálogo, puede seleccionar una plantilla para crear varios tipos
de proyectos, incluidos dos destinados a .NET Compact Framework. Tanto en la carpeta de proyectos de
Visual Basic como en la carpeta de proyectos de Visual C# hay una plantilla Smart Device Application.

Figura 3. Cuadro de diálogo Nuevo proyecto

Inicio de un proyecto de Visual Basic .NET


Para crear un proyecto de Visual Basic .NET

1. Inicie Visual Studio .NET 2003.

2. En la página de inicio, haga clic en el botón Nuevo proyecto.

3. Aparecerá el cuadro de diálogo Nuevo proyecto, como muestra la figura 3. En la lista Tipos de
proyecto, seleccione la carpeta Proyectos de Visual Basic.

4. Aparecerán las plantillas de proyectos de Visual Basic. Seleccione la plantilla Smart Device
Application.

5. En el campo Nombre, escriba el nombre del proyecto.

6. En el campo Ubicación, escriba la ubicación en la que se creará el proyecto.

7. Haga clic en Aceptar.

Inicio de un proyecto de Visual C# .NET

Para crear un proyecto de Visual C# .NET

1. Inicie Visual Studio .NET 2003.

2. En la página de inicio, haga clic en el botón Nuevo proyecto.

3. Aparecerá el cuadro de diálogo Nuevo proyecto, como muestra la figura 3. En la lista Tipos de
proyecto, seleccione la carpeta Proyectos de Visual C#.

4. Aparecerán las plantillas de proyectos de Visual C#. Seleccione la plantilla Smart Device
Application.

5. En el campo Nombre, escriba el nombre del proyecto.

6. En el campo Ubicación, escriba la ubicación en la que se creará el proyecto.

7. Haga clic en Aceptar.

Asistente Smart Device Application

Al seleccionar la plantilla Smart Device Application se cargará el asistente Smart Device Application
Wizard, como muestra la figura 4. Este asistente le guiará a través del proceso de selección del tipo de
proyecto de la aplicación.
Figura 4. Asistente Smart Device Application Wizard

La interfaz de este asistente consta de dos cuadros de listas. El cuadro de lista superior le permite
seleccionar la plataforma de destino. Contiene dos opciones, Pocket PC o Windows CE. Mientras que
Pocket PC está destinado a una plataforma de dispositivo específica, la plantilla Windows CE se utiliza
para crear una aplicación con fines más generales, que se puede ejecutar en un gran número de
dispositivos que ejecutan dicho sistema operativo.

El cuadro de lista inferior muestra los tipos de proyectos que están disponibles para el dispositivo de
destino (Pocket PC o Windows CE) que ha seleccionado.

Tipos de proyectos de Pocket PC

Hay cuatro tipos de proyectos destinados a las plataformas Pocket PC y Pocket PC 2002, como muestra
la figura 5. Estos tipos son Windows Application, Class Library, Non-graphical Application y Empty
Project. Se incluye una descripción de cada uno de estos tipos de proyectos en la tabla 2.
Figura 5. Tipos de proyectos de Pocket PC

Estos tipos de proyectos se pueden utilizar para crear aplicaciones destinadas a dispositivos Pocket PC
que ejecuten procesadores SH3, MIPS o ARM y dispositivos Pocket PC 2002 con procesadores ARM o
XScale.

Tabla 2. Tipos de proyectos de Pocket PC

Tipo de proyecto Descripción

Windows Application Proyecto basado en Windows Forms que incluye controles específicos
de Pocket PC. Se trata de la plantilla utilizada con más frecuencia, ya
que genera aplicaciones basadas en Windows.

Class Library Las bibliotecas de clases permiten empaquetar componentes


relacionados en un único archivo. Se pueden utilizar para desarrollar
otras aplicaciones o como base para que hereden otros componentes.
Este tipo de proyecto es el más adecuado para crear módulos de
código que se reutilizarán en varias aplicaciones.

Non-graphical Application Se utiliza para crear ejecutables que no tendrán una interfaz de
usuario. Se adapta mejor a las aplicaciones de segundo plano y de
mantenimiento que no requieren la interacción del usuario.

Empty Project Define un proyecto sin ningún componente predefinido, lo que le


permite generar todo de manera personalizada a partir de cero.

Nota El dispositivo Pocket PC no incorpora compatibilidad con consola. Una solución


posible es cargar usted mismo console.dll, que se incluye con Platform Builder.

Tipos de proyectos de Windows CE

Como se muestra en la figura 6, hay cuatro tipos de proyectos destinados a la plataforma Windows CE.
Estos tipos son Windows Application, Class Library, Console Application y Empty Project. Se incluye una
descripción de cada uno de estos tipos de proyectos en la tabla 3.
Figura 6. Tipos de proyectos de Windows CE

Tipo de proyecto Descripción

Windows Application Proyecto basado en Windows Forms que incluye controles específicos
de Windows CE .NET. Se trata de la plantilla utilizada con más
frecuencia, ya que genera aplicaciones basadas en Windows.

Class Library Las bibliotecas de clases permiten empaquetar componentes


relacionados en un único archivo. Se pueden utilizar para desarrollar
otras aplicaciones o como base para que hereden otros componentes.
Este tipo de proyecto es el más adecuado para crear módulos de
código que se reutilizarán en varias aplicaciones.

Console Application Se utiliza para crear ejecutables que se ejecutarán en la ventana de


la consola. Se adapta mejor a las aplicaciones de segundo plano y de
mantenimiento que tal vez requieran o no la interacción del usuario.
A diferencia de Pocket PC, Windows CE admite de manera nativa las
aplicaciones de consola.

Empty Project Define un proyecto sin ningún componente predefinido, lo que le


permite generar todo de manera personalizada a partir de cero.

Definición de las propiedades del proyecto

Al igual que con todos los proyectos de Visual Studio .NET, los proyectos de .NET Compact Framework se
configuran utilizando el cuadro de diálogo Páginas de propiedades del proyecto. Mediante este cuadro de
diálogo, puede configurar los espacios de nombres que desea incluir; el formulario que desea utilizar
como formulario de inicio; el icono que se va a asociar con la aplicación; la forma en que se generará la
aplicación; el lugar donde se generará; la forma de distribución; las configuraciones de optimización y
muchos otros parámetros.

Hay dos maneras de abrir el cuadro de diálogo Páginas de propiedades:

• Mediante el Explorador de soluciones: haga clic con el botón secundario en el proyecto y, a

continuación, haga clic en Propiedades. Aparecerá el cuadro de diálogo Página de propiedades,

como se muestra en la figura 7.


• Mediante el menú Proyecto: primero seleccione el proyecto en la ventana Explorador de soluciones.

A continuación, en el menú Proyecto, haga clic en Propiedades. Aparecerá el cuadro de diálogo

Páginas de propiedades.

Figura 7. Cuadro de diálogo Páginas de propiedades

Creación de la interfaz

Si ya está familiarizado con Visual Studio .NET, apenas necesitará ayuda para comenzar a crear las
interfaces de usuario de las aplicaciones destinadas a .NET Compact Framework. Para aquéllos que no
conocen el IDE de Visual Studio .NET, los nuevos proyectos basados en la plantilla Windows Application
aparecerán automáticamente en el formulario predeterminado que se muestra en la figura 8.

En este ejemplo, el tipo de proyecto es una aplicación para Windows destinada al Pocket PC. La plantilla
de este tipo de aplicación incluye un formulario cuyo tamaño es el correcto para la plataforma Pocket PC.
Se incluye con el formulario un control de menú, como se muestra debajo del formulario, ya que la
mayoría de las aplicaciones para Pocket PC incluyen menús.
Figura 8. Formulario predeterminado para Pocket PC

Controles que se incluyen

.NET Compact Framework incluye un subconjunto de los controles que se pueden utilizar para crear una
aplicación para el escritorio de Windows. Para la mayoría de ellos, verá que estos controles ofrecen un
subconjunto de los controles equivalentes que se encuentran en.NET Framework. La diferencia tiene que
ver con las limitaciones de recursos impuestas por las plataformas de destino.

Los controles proporcionados con.NET Compact Framework se muestran en la tabla 4.

Tabla 4. Controles incluidos con .NET Compact Framework

Button CheckBox ComboBox ContextMenu DomainUpDown

HScrollBar ImageList InputPanel Label ListBox

ListView MainMenu NumericUpDown OpenFileDialog Panel

PictureBox ProgressBar RadioButton SaveFileDialog StatusBar

TabControl TextBox Timer Toolbar TrackBar

TreeView VScrollBar DataGrid

Nota también hay disponibles una serie de controles de terceros. Consulte la sección
de referencia incluida al final de este documento si desea conocer más detalles.

Creación de controles personalizados

Una de las características más interesantes de.NET Compact Framework es que permite superar las
limitaciones mediante codificación. Por ejemplo, tomemos el caso de los controles. Todos los controles
suministrados con.NET Compact Framework son limitados en comparación con sus equivalentes
completos de Framework. Tienen menos propiedades, menos métodos y menos eventos. Mediante .NET
Compact Framework, puede modificar la funcionalidad de los controles estándar para adaptarlos a sus
necesidades.

Los controles personalizados se pueden dividir en tres categorías: de usuario, heredados y dibujados por
el propietario. Los controles de usuario son los más sencillos de crear, pero desgraciadamente no son
compatibles con .NET Compact Framework. Los controles heredados comienzan a partir de un control de
.NET Compact Framework. A continuación se agregan, eliminan o modifican las propiedades, los
métodos y los eventos de dicho control base según sea necesario. En lo que se refiere a la complejidad
del control, los controles heredados tienen una posición intermedia entre los controles de usuario y los
controles dibujados por el propietario. Los controles dibujados por el propietario ofrecen la mayor
flexibilidad en lo que se refiere a su interfaz. También son los que requieren un mayor esfuerzo.

Aunque este artículo no explica el proceso de creación de controles personalizados para .NET Compact
Framework, descubrirá que la mayoría de las técnicas y enfoques que se utilizan en .NET Framework
también son válidos en .NET Compact Framework.

Los siguientes vínculos (en inglés) proporcionan más detalles acerca de la creación de controles
personalizados para su utilización con .NET Compact Framework:

Creating Custom Controls for the .NET Compact Framework


Developing Custom Controls in C# with Smart Device Extensions
Design-time Functionality for Custom Controls in Compact Framework and SDE
Creating Custom Controls with the .NET Compact Framework

Creación de un menú

En todas las aplicaciones para Pocket PC que han tenido éxito hay siempre una barra de menús.
Prácticamente sin ninguna excepción, para crear una aplicación para Pocket PC que sea muy efectiva con
un buen conjunto de funcionalidades es necesario utilizar una barra de menús.

El uso de barras de menús es tan habitual que la plantilla predeterminada de Pocket PC Windows
Application incluye automáticamente una barra de menús en el formulario inicial que crea. Con Visual
Studio .NET y .NET Compact Framework, la creación de menús es fácil y directa. Sólo tiene que crear
una jerarquía de menús mediante una herramienta gráfica que se incluye con el diseñador de
formularios.

Aunque la creación de menús con la herramienta de tiempo de diseño es la manera más sencilla, no es
la única manera posible. También se pueden crear menús mediante código. Aunque es ligeramente más
complicado, hay casos en los que deseará crear los menús directamente mientras se está ejecutando la
aplicación.

Se trata del control MainMenu que implementa físicamente una barra de menús en un formulario. El
diseñador de menús ofrece una interfaz gráfica para configurar un control MainMenu. Puede utilizar el
diseñador de menús para crear los menús y los elementos de menús que formarán la barra de menús
global.

Para activar el diseñador de menús

1. En el IDE de Visual Studio .NET, abra el formulario al que desea agregar el menú. Si el formulario no
contiene todavía un control MainMenu, agregue uno en este momento.

2. Haga clic en el icono MainMenu en la bandeja del icono. Se activará la barra de menús en el
formulario.

3. Haga clic en la barra de menús del formulario. Se activará el diseñador de menús. Se resaltará el
espacio correspondiente al primer menú, como muestra la figura 9.
Figura 9. Menú vacío en el diseñador de menús

4. Escriba el nombre del primer menú (el situado más a la izquierda) en el área resaltada. En el
ejemplo que se muestra en la figura 10, se define el menú Nuevo.

5. Ahora puede agregar más menús o bien definir los elementos que aparecerán en el menú Nuevo.
Para agregar más menús, sólo tiene que escribir el nombre del siguiente menú en el cuadro Escriba
aquí situado exactamente a la derecha del primer menú definido. En la figura 10, esto sería
exactamente a la derecha de New. En nuestro ejemplo, agregaremos un menú Edición.

Figura 10. Adición del menú Nuevo


6. Para definir un elemento de menú para el menú Edición, haga clic en el cuadro Escriba aquí situado
inmediatamente encima de Edición y escriba el nombre del elemento de menú. La figura 11 muestra
cómo se agrega el elemento de menú Cortar al menú Edición.

7. Repita estos pasos para crear los menús y sus correspondientes elementos hasta que haya
terminado de definir el menú.

Figura 11. Adición de elementos al menú Edición

Codificación de un elemento de menú

Si está creando un menú, deberá proporcionar una respuesta cuando el usuario Haga Clicko haga clic en
un elemento de menú. Todo elemento de menú tiene un procedimiento de evento Click que se ejecuta
cuando el usuario puntea dicho elemento. El listado 1 muestra un ejemplo de dicho procedimiento.

Listado 1. Procedimiento de evento Click para un elemento de menú

[Visual Basic]
Private Sub mnuEditCut_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuEditCut.Click
MessageBox.Show("cortar...")
End Sub
[Visual C#]
private void mnuEditCut_Click(object sender, System.EventArgs e)
{
MessageBox.Show("cortar...");
}

Creación de una barra de herramientas

Los desarrolladores de aplicaciones para equipos de escritorio deben tener en cuenta que las barras de
herramientas que las barras de herramientas que existen en el entorno Pocket PC son diferentes de las
que se incluyen con una aplicación de escritorio estándar. La diferencia que primero resulta visible es
que las barras de herramientas de Pocket PC aparecen en la parte inferior de la interfaz, en vez de en la
parte superior. Además, siempre están limitadas a un pequeño número de botones, una restricción
impuesta por el mínimo espacio de pantalla real del que dispone un Pocket PC. Ambas características
pueden observarse en la figura 12.
Figura 12. Barra de herramientas de ejemplo

Las barras de herramientas desempeñan dos importantes funciones en una aplicación. En primer lugar,
hacen que la presentación sea más atractiva. En general las aplicaciones para Pocket PC, debido a lo
limitado de su tamaño, tienden a tener un aspecto bastante plano. Las barras de herramientas (y los
botones que contienen) puede darle a la interfaz de la aplicación un cierto "toque".

En segundo lugar, las barras de herramientas simplifican la interacción con el usuario. Las características
y las funciones utilizadas con mayor frecuencia se pueden colocar en una barra de herramientas en vez
de anidarlas en un menú. La ventaja de hacerlo así es que para seleccionar un botón de la barra de
herramientas basta con puntearlo. En comparación, un elemento de menú requiere al menos dos
punteos y posiblemente un tercero si el elemento forma parte de un submenú.

El proceso de construcción de una barra de herramientas se divide en tres pasos:

1. Agregar y configurar un control ImageList. El control ImageList proporciona las imágenes que
finalmente se mostrarán en los botones del menú.

2. Agregar y configurar un control ToolBar. El control ToolBar define los botones que formarán la barra
de herramientas física, tal como la verá el usuario final.

3. Escriba un procedimiento de evento para responder a los punteos de los botones. El control ToolBar
utiliza un único procedimiento de evento para responder a los punteos de cualquiera de sus
botones.

Codificación de una barra de herramientas

Con las barras de herramientas, sólo le preocupa un único evento, el que se dispara cuando el usuario
puntea un botón. Dicho evento es un evento ButtonClick. El procedimiento de evento correspondiente al
evento ButtonClick se comparte entre todos los botones.

El único problema que plantea trabajar con este procedimiento de evento es determinar el botón que se
ha punteado. Se puede llevar a cabo fácilmente haciendo referencia a los argumentos del evento que se
pasan al procedimiento. Mediante una referencia a e.Button.ImageIndex, puede determinar la imagen
que se ha asociado con el botón que se ha punteado. Este índice es el que se asignó originalmente a las
imágenes cuando se almacenaron en el control ImageList. El listado 2 muestra un ejemplo del manejo
de los punteos de los botones.

Listado 2. Manejo de los punteos de los botones de la barra de herramientas

[Visual Basic]
Private Sub tlbMain_ButtonClick(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) _
Handles tlbMain.ButtonClick
Select Case e.Button.ImageIndex
Case 0
MessageBox.Show("imprimir...")
Case 1
MessageBox.Show("tarea...")
End Select
End Sub
      
[Visual C#]      
private void tlBMain_ButtonClick(object sender,       
System.Windows.Forms.ToolBarButtonClickEventArgs e)      
{
switch (e.Button.ImageIndex)      
{
case 0:      
MessageBox.Show("imprimir...");    
case 1:      
MessageBox.Show("tarea...");     
}
}

Adición de código

Ahora que ya ha visto los conceptos básicos de la creación de una interfaz, podemos centrarnos en cómo
agregar código a la aplicación. Al igual que ocurre con numerosas aplicaciones desarrolladas con el IDE
de Visual Studio .NET, el código se agrega a través de la ventana Código.

Si no está familiarizado con Visual Studio .NET, el entorno le resultará enormemente atractivo. La
ventana Código proporciona un gran número de funcionalidades, todo desde completar las instrucciones,
hasta listar de manera automática los miembros, ofrecer información sobre los parámetros y regiones de
código que se pueden contraer, por nombrar sólo algunas de ellas.

La manera más fácil de desplazarse por el código es utilizar los dos cuadros combinados que hay en la
parte superior de la ventana. El cuadro combinado situado en la parte superior izquierda de la ventana
Código permite seleccionar una clase dentro de un módulo. El cuadro combinado situado en la parte
superior derecha de la ventana permite seleccionar un método de dicha clase.

Comprobación de la aplicación

Una vez que se ha terminado la interfaz de usuario y se ha escrito el código, ha llegado el momento de
centrarse en la realización de pruebas con la aplicación. Visual Studio .NET ofrece dos maneras de
realizar pruebas con las aplicaciones destinadas a .NET Compact Framework: mediante un emulador y
en un dispositivo. Ya sea con uno o con otro, Visual Studio .NET administra la distribución tanto de la
aplicación como de todos los componentes que dicha aplicación requiere, incluido .NET Compact
Framework y SQL Server CE.

Todo esto se administra al comprobar una aplicación de .NET Compact Framework desde Visual Studio
.NET 2003. Se realiza una comprobación de la plataforma de destino para confirmar que está instalado
.NET Compact Framework. Si Visual Studio .NET determina que falta .NET Compact Framework, lo
copiará e instalará automáticamente antes de intentar ejecutar la aplicación. Este proceso de instalación
ocurrirá la primera vez que se realicen pruebas en un dispositivo o en el emulador, y si se realiza un
reinicio duro en el dispositivo o en el emulador.

Se utiliza un proceso similar si la aplicación utiliza SQL Server CE. Visual Studio .NET comprobará la
plataforma de destino para confirmar que se han instalado los componentes de SQL Server CE. Si Visual
Studio .NET no los encuentra, copiará e instalará automáticamente los componentes necesarios de SQL
Server CE antes de ejecutar la aplicación.

Una vez que se ha determinado que se dispone de todos los componentes que requiere la aplicación, se
copiará la aplicación en la plataforma de destino, se colocará en el directorio especificado en las
configuraciones del proyecto y, por último, se iniciará.

Ejecución de una prueba

Hay varias maneras de ejecutar una prueba de la aplicación:

• En la barra de herramientas de Visual Studio .NET, haga clic en el botón Iniciar.

• En el menú Depurar, seleccione Iniciar o Iniciar sin depurar.

• Presione las teclas F5 (iniciar y depurar) o Ctrl+F5 (iniciar sin depurar).

Comprobación en el emulador

El emulador proporciona un entorno en su PC de escritorio que imita la funcionalidad y el funcionamiento


de la plataforma de dispositivo a la que está destinada su aplicación. El emulador es útil en aquellas
situaciones en las que no tiene un dispositivo o bien no está disponible.

Tenga en cuenta la siguiente advertencia: las pruebas realizadas en el emulador tienen puntos débiles.
La primera y más importante es que el emulador se ejecuta en su PC de escritorio, que tiene muchos
más recursos de procesamiento que el dispositivo de destino, por lo que puede dar una impresión
equivocada acerca del funcionamiento de la aplicación. Además, la entrada en el emulador se realiza
mediante un teclado y un mouse en vez del lápiz que utilizará el usuario final. Si no es consciente de
esta diferencia, es posible que cree una aplicación que sea fácil de utilizar en el emulador pero incómoda
en el dispositivo. Por último, el emulador ofrece una representación "que se parece" al dispositivo, pero
no es exacta. Todos los emuladores presentan ligeras diferencias.

Requisitos del emulador

Los emuladores que se incluyen con Visual Studio .NET no funcionarán a menos que el equipo de
desarrollo en el que se está ejecutando disponga de una conexión de red. Si su PC no tiene una conexión
de red, para utilizar el emulador deberá instalar un adaptador de red de bucle invertido de Microsoft.
Este adaptador simula una conexión de red y consigue engañar al emulador para que funcione.

Instalación de un adaptador de bucle invertido en Windows 2000

En Windows 2000, para instalar el adaptador de red de bucle invertido de Microsoft es necesario seguir
estos pasos:

1. En el Panel de control, haga clic en Agregar o quitar hardware.

2. En la página de bienvenida del Asistente para agregar o quitar hardware, haga clic en Siguiente.

3. Haga clic en Agregar dispositivo o solucionar problemas y, a continuación, haga clic en


Siguiente. El proceso hará una pausa mientras se explora el sistema para detectar dispositivos
plug-and-play.

4. En la página Seleccione un dispositivo de hardware, haga clic en Agregar un dispositivo nuevo y,


a continuación, haga clic en Siguiente.

5. En la página Búsqueda de nuevo hardware, haga clic en No, deseo seleccionar el hardware de
una lista y, a continuación, haga clic en Siguiente.

6. En la página Tipo de hardware, haga clic en Adaptadores de red y, a continuación, en Siguiente.


Tendrá que esperar un momento mientras se genera una lista con los adaptadores de red.
7. En la página Seleccione adaptador de red, haga primero clic en Microsoft en el cuadro de lista
Fabricantes y, a continuación, en Adaptador de bucle invertido de Microsoft en el cuadro de
lista Adaptador de red. Haga clic en el botón Siguiente.

8. En la página de inicio de instalación de hardware, haga clic en Siguiente. Se instalará el adaptador


de bucle invertido.

Configuración de un adaptador de bucle invertido en Windows 2000

Al igual que con cualquier otro adaptador de red, la instalación de un adaptador de bucle invertido es
sólo la mitad del proceso. También deberá configurar un nuevo adaptador. Siga estos pasos para
configurar el adaptador de bucle invertido:

1. En el menú Inicio, haga clic en Configuración, seleccione Conexiones de red y de acceso


telefónico y, a continuación, haga clic en Conexión de área local. Aparecerá el cuadro de diálogo
Estado de Conexión de área local.

2. Haga clic en Propiedades. Aparecerá la ventana Propiedades de Conexión de área local.

Nota Compruebe que está trabajando con la conexión adecuada. En el campo


que indica la conexión que se está utilizando en este cuadro de diálogo debe
aparecer "Adaptador de bucle invertido de Microsoft".

3. Seleccione Protocolo de Internet (TCP/IP) y, a continuación, haga clic en Propiedades. Aparecerá


la ventana Protocolo Internet.

4. Configure las propiedades de la dirección IP.

5. Haga clic en Aceptar para cerrar la ventana Protocolo Internet.

6. Haga clic en Aceptar para cerrar la ventana Propiedades de Conexión de área local.

7. Haga clic en Cerrar para cerrar la ventana Estado de Conexión de área local.

Transferencia de archivos al emulador

Las versiones anteriores de los emuladores de Windows CE/Pocket PC ofrecían dos enfoques distintos
para crear el entorno del emulador. La primera generación de emuladores utilizaba un entorno cerrado,
al que no se podía tener acceso desde las herramientas de administración de archivos estándar basadas
en Windows del equipo de desarrollo. Todos los archivos que se necesitasen en el emulador debían
crearse dentro del emulador o bien copiarse al emulador mediante utilidades especializadas incluidas con
eMbedded Visual Tools.

Los emuladores de segunda generación ofrecían un entorno más abierto, al que se tenía acceso
mediante herramientas habituales, como el Explorador de archivos. La estructura del directorio del
emulador existía en un subdirectorio en el equipo de desarrollo. Para copiar archivos en el emulador o
desde él, bastaba con arrastrar y colocar los archivos.

El emulador que se incluye con Visual Studio .NET vuelve a utilizar un entorno de emulador cerrado.
Para complicarlo todo, a diferencia de versiones anteriores de eMbedded Visual Tools, Visual Studio .NET
no incluye una herramienta de administración de archivos del emulador. Esta ausencia requiere la
invención de una solución creativa.

Hay tres maneras habituales de proporcionar archivos en el entorno del emulador. Una manera es crear
los archivos mediante las aplicaciones que se ejecutan en el emulador. No creo que este enfoque
requiera ninguna explicación más. Puede utilizar las técnicas estándar de programación de .NET para
crear archivos de texto, XML o de base de datos.

Los otros dos enfoques, agregar archivos al proyecto o copiar los archivos desde un recurso compartido,
requieren ciertas explicaciones adicionales.

Adición de archivos al proyecto


La manera más fácil de transferir archivos al emulador es incluirlos como parte del proyecto. Una
ventaja de utilizar este método es que en el caso de que se realice un reinicio duro en el emulador, sólo
tendrá que volver a generar el proyecto para continuar con las pruebas.

El proceso que hay que seguir para utilizar este método es el siguiente:

1. Abra el proyecto en Visual Studio .NET.

2. En el menú Proyecto, haga clic en Agregar elemento existente....

3. En el cuadro de diálogo Agregar elemento existente, seleccione el archivo que desea copiar al
emulador.

4. Haga clic en Abrir. El archivo se agregará al proyecto.

5. En la ventana Explorador de soluciones, seleccione al archivo que desea agregar.

6. En la ventana Propiedades, compruebe que la propiedad Generar está definida como Contenido.
Los elementos configurados como "Contenido" se copian en el dispositivo de destino como archivos
independientes. Los elementos configurados como "Recurso incrustado" forman parte del ejecutable
de la aplicación.

7. Genere el proyecto. El archivo se copiará en el dispositivo junto con la aplicación.

Copia de archivos desde un recurso compartido

El segundo método ofrece una mayor flexibilidad y requiere un mínimo esfuerzo adicional. Utiliza la
funcionalidad de recursos compartidos de archivos de red que incorpora el sistema operativo de Pocket
PC, también disponible en el emulador que se incluye con Visual Studio .NET.

Este método se divide en dos partes: configuración de un recurso compartido en el equipo de desarrollo
y, a continuación, acceso a dicho recurso compartido mediante el Explorador de archivos del emulador.

Para configurar un recurso compartido hay que seguir dos pasos. En primer lugar, debe configurar el
equipo para que admita recursos compartidos. En segundo lugar, debe indicar las carpetas que desea
compartir.

Para activar los recursos compartidos en un equipo de desarrollo que ejecute Windows 2000

1. En el menú Inicio, haga clic en Configuración, seleccione Conexiones de red y de acceso


telefónico y, a continuación, haga clic en la conexión de red de área local.

2. En la ventana Conexión de área local, haga clic en Propiedades.

3. En la ventana Propiedades de Conexión de área local, active Compartir impresoras y archivos


para redes Microsoft.

4. Haga clic en Aceptar para cerrar la ventana Propiedades de Conexión de área local.

5. Haga clic en Cerrar para cerrar la ventana Conexión de área local.

Llegados a este punto, ya está configurado su PC de desarrollo para poder compartir archivos. A
continuación, necesitará compartir una carpeta en la que colocará los archivos que desea copiar al
emulador.

Para compartir una carpeta en Windows 2000

1. Inicie el Explorador de archivos.

2. En el Explorador de archivos, haga clic con el botón secundario en la carpeta que desea compartir y,
a continuación, haga clic en Propiedades.

3. En la ventana Propiedades, haga clic en la ficha Compartir.


4. En la ficha Compartir, seleccione que desea compartir la carpeta y escriba el nombre del recurso
compartido.

5. Haga clic en Aceptar para cerrar la ventana Propiedades.

Una vez que ha configurado el equipo de desarrollo, ya puede comenzar a copiar archivos. En primer
lugar, deberá colocar todos los archivos destinados al emulador en la carpeta compartida. A
continuación, para transferir los archivos al emulador, siga estos pasos:

1. Inicie el emulador.

2. Desde el emulador, inicie el Explorador de archivos.

3. En el menú Explorador de archivos, haga clic en Abrir.

4. Aparecerá el cuadro de diálogo Abrir. Especifique el nombre del equipo de desarrollo, seguido por el
nombre del recurso compartido que ha creado, con este formato:
\\miequipo\mirecursocompartido

5. Haga Clic en Aceptar.

En función de la configuración de seguridad de su PC, puede que se le pida un nombre de usuario y


una contraseña antes de que se le permita tener acceso al recurso compartido.

Llegados a este punto, ya puede copiar archivos en el recurso compartido y desde él en el equipo de
desarrollo y en el emulador.

Nota Estos mismos métodos para copiar archivos funcionan igualmente bien al
utilizar un dispositivo, pero se ha detectado un problema. Los dispositivos Pocket PC de
manera predeterminada tienen el nombre de dispositivo "Pocket PC". Debe cambiar
este nombre o no tendrá acceso a los recursos compartidos.

Comprobación en un dispositivo

La realización de pruebas en un dispositivo permite experimentar de manera directa el funcionamiento


de la aplicación. Con Visual Studio .NET puede realizar pruebas en dispositivos conectados al equipo de
desarrollo mediante USB, puerto serie o Ethernet.

Nota Utilice Ethernet para conectar el dispositivo al equipo de desarrollo, ya que es


con diferencia la manera más rápida y fácil de realizar las pruebas y la depuración.

Distribución a dispositivos

Puede distribuir a un dispositivo mediante cualquiera de las siguientes maneras:

• En la barra de herramientas de Visual Studio .NET, seleccione Pocket PC Device en el cuadro

combinado Deployment Device.

• En la página Dispositivo del cuadro de diálogo Propiedades del proyecto, seleccione Pocket PC

Device en el cuadro combinado Deployment Device.

• En la ventana Propiedad, defina la propiedad Deployment Device del proyecto en Pocket PC Device.

Depuración de la aplicación

El entorno de depuración que se incluye con Visual Studio .NET IDE es robusto. Permite hacer una pausa
en la aplicación, examinar su funcionamiento interno, modificar el código, examinar los valores y
desplazarse por la aplicación de manera sistemática.
El núcleo de la funcionalidad de depuración se puede encontrar en el menú Depurar del IDE de Visual
Studio .NET. Desde este menú, puede iniciar y detener una sesión de depuración, establecer puntos de
interrupción y examinar la aplicación mientras está en modo Depurar.

Nota Los puntos de interrupción identifican una línea de código de la aplicación en la


que desea hacer una pausa o interrumpir la ejecución de la aplicación cuando se llegue
a dicho punto.

Visual Studio .NET le permite depurar de manera remota las aplicaciones que se ejecutan en un
dispositivo o en un emulador desde la comodidad de su PC de desarrollo. Puede utilizar la ventana
Comando para introducir instrucciones, consultar y establecer variables, ejecutar líneas de código y otras
tareas similares.

Nota Para que el entorno de depuración sea óptimo, utilice Ethernet para conectar el
dispositivo a su PC.

Implementación de la aplicación

La creación de programas de instalación para una aplicación de .NET Compact Framework es similar al
método que se utiliza para otras aplicaciones de Windows. Dichos programas de instalación se
distribuyen mediante archivos contenedores, más conocidos como archivos "CAB", debido a la extensión
.cab. Los archivos CAB tienen dos objetivos: 1) comprimen y almacenan archivos para que sea posible
distribuirlos con facilidad; 2) aseguran que todos los archivos y las configuraciones que requiere una
aplicación se administren correctamente.

Requisitos

Las aplicaciones generadas con Visual Studio .NET requiere que .NET Compact Framework se encuentre
en el dispositivo de destino. Además, si la aplicación utiliza SQL Server CE, deberá instalar también los
componentes SQL Server CE.

La rutina de instalación también deberá tener esto en cuenta. Puede que sea necesario incluir varios
archivos CAB: uno para la aplicación, otro para los CAB de .NET Compact Framework y SQL Server CE.

Creación de un archivo CAB

La manera más fácil de crear un archivo CAB para la aplicación es dejar que Visual Studio .NET haga
automáticamente todo el trabajo. Una de las características que ofrece Visual Studio .NET es un
elemento de menú del IDE para generar archivos CAB.

Para generar un archivo CAB para una aplicación

1. Abra el proyecto de la aplicación en Visual Studio .NET.

2. Seleccione Liberar en el cuadro combinado desplegable de configuración de soluciones, como se


muestra en la figura 13.

Figura 13. Definición de la configuración de las soluciones

3. En el menú Generar, haga clic en Build CAB File, como se muestra en la figura 14.

4. Aparecerán brevemente varias ventanas de comandos mientras se genera la aplicación. Una vez
que desaparezcan estas ventanas, se habrá terminado el archivo CAB.
Nota No aparecerá ningún mensaje o confirmación que le informe de que se ha
generado el archivo CAB. Una vez que se cierre la última ventana de comandos,
sencillamente volverá a la interfaz de Visual Studio .NET.

Figura 14. Elemento de menú Build CAB File

Ubicación de los archivos CAB generados

La salida del proceso de generación de CAB se almacena en un directorio situado dentro del directorio de
la aplicación. Encontrará los diferentes archivos CAB en el subdirectorio \bin\release. Puede ver un
ejemplo de esta jerarquía en la figura 15.

Figura 15. Ubicación de los archivos CAB generados mediante Visual Studio .NET

En el ejemplo que mostraba la figura 15, se generaban varios archivos CAB, uno para cada tipo de
procesador de la plataforma de destino. En esta figura, puede ver cuatro archivos CAB, cada uno de ellos
para los tipos de procesador StrongArm, MIPS, SH3 y X86, ya que el dispositivo de distribución era un
Pocket PC y hay cuatro tipos de procesadores compatibles con dicho dispositivo.

Llegados a este punto, podría copiar el archivo CAB apropiado en el dispositivo de destino, abrir el
Explorador de archivos en el dispositivo, puntear en el archivo CAB y se instalaría la aplicación.
Nota No olvide que para que se pueda ejecutar la aplicación necesitará instalar .NET
Compact Framework y, si es necesario, SQL Server CE.

Creación de un programa de instalación de escritorio

El proceso de instalación resulta ligeramente más complicado si la instalación de la aplicación se va a


realizar en un equipo de escritorio, mediante una base de acoplamiento a un dispositivo. En esta
situación, necesitará dos programas de instalación: uno para el equipo de escritorio y otro para el
dispositivo. El programa de instalación del dispositivo es el archivo CAB. El del escritorio es un ejecutable
que realiza dos funciones. En primer lugar, copia los archivos CAB en el equipo de escritorio. En segundo
lugar, inicia el administrador de aplicaciones (CeAppMgr.exe). A continuación, el administrador de
aplicaciones toma el control y copia el archivo CAB en el dispositivo y, seguidamente, inicia la
instalación.

El administrador de aplicaciones se encarga de agregar y quitar aplicaciones de los dispositivos, así como
de eliminar los archivos de la aplicación del equipo en el que se ha iniciado la instalación. Se utiliza un
archivo .INI para indicarle las instrucciones de instalación al administrador de aplicaciones.

Los programas de instalación de escritorio se pueden crear con cualquier aplicación que permita copiar
los archivos CAB en un equipo y, a continuación, iniciar el administrador de aplicaciones. Existen dos
compañías, InstallShield y Wise, que proporcionan paquetes de desarrollo comerciales con esta
funcionalidad.

Spb Software House ofrece un producto gratuito para crear programas de instalación llamado EZSetup.
Aunque esta aplicación no es tan robusta como los productos de InstallShield y Wise, funciona bastante
bien en la mayoría de los programas de instalación.

Nota Si va a escribir su propio programa de instalación de escritorio, deberá conocer


dónde se encuentra el administrador de aplicaciones en el equipo de instalación. El
nombre completo y la ruta de acceso del administrador de aplicaciones se almacenan
en el valor de registro de HKLM\software\Microsoft\Windows\CurrentVersion\App
Paths\CEAppMgr.exe.

Resumen

.NET Compact Framework ofrece a los desarrolladores una poderosa herramienta para crear aplicaciones
móviles robustas. Le permite aprovechar las ventajas de los conocimientos de .NET de los que ya
dispone para crear aplicaciones destinadas a los dispositivos Pocket PC y Windows CE .NET.

.NET Compact Framework es un componente de .NET Framework. Aunque es similar en aspecto y


funcionamiento a .NET Framework, aprender a programar en .NET Compact Framework requerirá cierto
tiempo y esfuerzo. Necesitará dominar las limitaciones impuestas por los dispositivos con Windows CE y
las exigencias asociadas con la creación de aplicaciones móviles.

Información adicional

Artículos

Introducción

Hacerse con el control de C#: una visión general y una introducción de .NET Compact Framework y
Visual C#

Accessing the Enterprise with Ease (en inglés): una introducción al uso de .NET Compact Framework y
SQL Server para crear aplicaciones móvil que tengan acceso a datos de empresas.

Making the Move from C++ to C# (en inglés): ofrece una comparación entre el desarrollo de una
aplicación utilizando eMbedded Visual C++ frente a .NET Compact Framework con Visual C#

Smart Device Extensions, SQLCE and Me (en inglés): una introducción al desarrollo de aplicaciones con
.NET Compact Framework y SQL Server CE

Introducción a Smart Device Extensions: un primer vistazo al trabajo con .NET Compact Framework
Some Very Smart Software (en inglés): una rápida introducción al uso de servicios Web desde una
aplicación de .NET Compact Framework

Creación de controles personalizados

Creating Custom Controls for the .NET Compact Framework (en inglés)

Developing Custom Controls in C# with Smart Device Extensions (en inglés)

Design-time Functionality for Custom Controls in Compact Framework and SDE (en inglés)

Creating Custom Controls with the .NET Compact Framework (en inglés)

Grupos de noticias

microsoft.public.dotnet.framework.compactframework: información acerca del desarrollo de


aplicaciones con .NET Compact Framework

microsoft.public.pocketpc: información general acerca de Pocket PC

microsoft.public.pocketpc.developer: información para los desarrolladores de Pocket PC

microsoft.public.sqlserver.ce: información sobre el trabajo con Microsoft SQL Server CE

microsoft.public.webservices: información sobre el desarrollo de servicios Web

Sitios Web

Programa de desarrolladores

Mobile Solution Partner Program (en inglés) de Microsoft es una iniciativa mundial diseñada para
ayudarle a desarrollar innovadoras soluciones mediante Microsoft Mobile Software y lanzarlas con éxito
al mercado.

Microsoft Mobile Software tiene todo lo necesario para ofrecer grandes soluciones y servicios capaces de
proporcionar información en cualquier momento, en cualquier lugar y en cualquier dispositivo.

Únase a la revolución móvil de Microsoft y distribuya sus aplicaciones, conecte con nuevos mercados e
imagine nuevas y atractivas maneras de vivir y trabajar.

Mobile2Market Program (en inglés) es un extenso programa para la certificación y la distribución de


aplicaciones móviles diseñadas para Pocket PC y Smartphone. Diseñado para conectar proveedores de
software independientes con distribuidores y operadores móviles, Mobile2Market refuerza y desarrolla el
mercado de aplicaciones móviles creando nuevas oportunidades de ingresos para las aplicaciones
móviles, reduciendo el tiempo que se tarda en lanzar el producto al mercado y ofreciendo a los clientes
una experiencia de usuario perfectamente integrada.

Programas de aprendizaje y de ayuda inmediata

larryroof.com (en inglés) ofrece cursos y consultoría de diseño y desarrollo de aplicaciones móviles. Los
servicios ofertados incluyen cursos de 5 días acerca de .NET Compact Framework y SQL Server CE,
programas de aprendizaje personalizados y combinaciones de cursos y consultoría para ayudarle a
implementar rápidamente soluciones móviles efectivas.

Sitios de información

gotdotnet.com (en inglés) es el sitio principal de .NET Framework e incluye una sección dedicada a .NET
Compact Framework.
innovativedss.com (en inglés) incluye código de ejemplo y foros de desarrolladores.

devbuzz.com (en inglés) es un sitio de desarrolladores que se centra en eMbedded Visual Basic y .NET
Compact Framework. Incluye artículos, código de ejemplo y foros.

Controles y componentes de terceros

DateTimePicker: aunque este control se incluye en .NET Framework, no se encuentra en .NET Compact
Framework. Disponible desde IntelliProg (en inglés).

HTMLViewer: admite la presentación de contenido HTML. Disponible desde IntelliProg (en inglés).

RichInk: permite al usuario escribir y editar texto, al mismo tiempo que proporciona características de
formato enriquecido para Rich Text Format y Rich Ink. Disponible desde IntelliProg (en inglés).

Pocket Outlook: esta biblioteca permite a las aplicaciones escritas en .NET Compact Framework tener
acceso y manipular con facilidad los datos de Pocket Outlook. Para obtener más información, consulte
inthehand.com (en inglés).

Pocket Access: esta biblioteca permite incorporar los datos almacenados en las bases de datos de Pocket
Access a las aplicaciones de .NET Compact Framework. Para obtener más información, consulte
inthehand.com (en inglés).

Ultima actualización: Lunes, 5 de Mayo de 2003

Das könnte Ihnen auch gefallen