31
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.)

Introducción a Visual Studio NET y Microsoft

Embed Size (px)

Citation preview

Page 1: Introducción a Visual Studio  NET y Microsoft

Introducción a Visual Studio .NET y Microsoft .NET Compact Framework

Larry Rooflarryroof.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.)

Page 2: Introducción a Visual Studio  NET y Microsoft

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

Page 3: Introducción a Visual Studio  NET y Microsoft

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

Page 4: Introducción a Visual Studio  NET y Microsoft

.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

Page 5: Introducción a Visual Studio  NET y Microsoft

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.

Page 6: Introducción a Visual Studio  NET y Microsoft

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.

Page 7: Introducción a Visual Studio  NET y Microsoft

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.

Page 8: Introducción a Visual Studio  NET y Microsoft

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

Page 9: Introducción a Visual Studio  NET y Microsoft

.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.

Page 10: Introducción a Visual Studio  NET y Microsoft

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.

Page 11: Introducción a Visual Studio  NET y Microsoft

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.

Page 12: Introducción a Visual Studio  NET y Microsoft

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.

Page 13: Introducción a Visual Studio  NET y Microsoft

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.

Page 14: Introducción a Visual Studio  NET y Microsoft

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.

Page 15: Introducción a Visual Studio  NET y Microsoft

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

Page 16: Introducción a Visual Studio  NET y Microsoft

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 FrameworkDeveloping Custom Controls in C# with Smart Device ExtensionsDesign-time Functionality for Custom Controls in Compact Framework and SDECreating 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.

Page 17: Introducción a Visual Studio  NET y Microsoft

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

Page 18: Introducción a Visual Studio  NET y Microsoft

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.ClickMessageBox.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.

Page 19: Introducción a Visual Studio  NET y Microsoft

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) _

Page 20: Introducción a Visual Studio  NET y Microsoft

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.

Page 21: Introducción a Visual Studio  NET y Microsoft

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:

Page 22: Introducción a Visual Studio  NET y Microsoft

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

Page 23: Introducción a Visual Studio  NET y Microsoft

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.

Page 24: Introducción a Visual Studio  NET y Microsoft

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

Page 25: Introducción a Visual Studio  NET y Microsoft

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.

Page 26: Introducción a Visual Studio  NET y Microsoft

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.

Page 27: Introducción a Visual Studio  NET y Microsoft

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

Page 28: Introducción a Visual Studio  NET y Microsoft

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