Compact Framework .NET 2.0 - Adrián Couñago Silva

Página creada Osana Merayo
 
SEGUIR LEYENDO
Compact Framework .NET 2.0 - Adrián Couñago Silva
Compact Framework .NET 2.0

                   Adrián Couñago Silva
Compact Framework .NET 2.0 - Adrián Couñago Silva
Índice

Índice......................................................................................................... 1

1. Introducción........................................................................................ 2

2. Diferencias de .NET Compact Framework ...................................... 3
  2.1. Respecto .NET Framework .......................................................... 3
  2.2. Respecto .NET Compact Framework 1.0..................................... 3

3. Generalidades y novedades Compact Framework 2.0 .................. 9
  3.1. Generalidades CF........................................................................... 9
  3.2. Novedades .....................................................................................10

4. Optimizando Compact Framework 2.0 ...........................................13
  4.1. Motor de ejecución .......................................................................14
  4.2. Colector de basura .......................................................................14
  4.3. Excepciones ..................................................................................15
  4.4. Windows Forms ............................................................................15
  4.5. Servicios web ................................................................................15

5. Mejoras y avances en CF 2.0 ...........................................................17
  5.1. Interfaz de usuario ........................................................................17
  5.2. Controles de Windows Forms .....................................................17
  5.3. Gestión de pantalla .......................................................................18
  5.4. Dibujo personalizado ....................................................................19
  5.5. Control de teclado.........................................................................19
  5.6. Gestión de datos ...........................................................................20
  5.7. XML .................................................................................................20
  5.8. Seguridad y criptografía ...............................................................21
  5.9. Threadings .....................................................................................21

6. Conclusiones.....................................................................................22

7. Glosario..............................................................................................23

8. Referencias ........................................................................................27

                                                                                                                    1
1. Introducción
Todos los servicios actuales de telecomunicaciones e informática tienden a la exigencia de la
movilidad. El desarrollo de aplicaciones para dispositivos móviles es cada vez mayor.
Las principales restricciones de estos equipos son los recursos finitos de energía así como la
capacidad de procesado y memoria. Los dispositivos móviles deben ser pequeños así que el uso de
periféricos como el teclado o el ratón es impensable. La interoperabilidad con el usuario esta
restringida debido al compromiso entre la movilidad y el tamaño.
En este contexto nace la necesidad de crear herramientas de trabajo que nos permitan desarrollar
aplicaciones para este tipo de equipos.
Compact Framework es la una de las herramientas que se ha creado con este fin. Esta herramienta
nos permite adaptar aplicaciones, que usaríamos en un equipo de sobremesa, a un nuevo entorno
móvil.
Con las nuevas capacidades de transmisión de datos aparecen nuevos servicios y prestaciones.
Necesitamos renovar nuestras herramientas de trabajo de acuerdo a estos cambios. CF como
herramienta ha evolucionado para satisfacer las nuevas necesidades.
En este estudio se pretende definir las características y novedades que aporta Compact Framework
.NET 2.0 disponible en la nueva plataforma Microsoft Visual Studio .NET 2005. Es un estudio
orientativo y gran parte de la información recabada pertenece a las propias fuentes de Microsoft como
señalamos en las referencias.
Compact Framework 2.0 ofrece muchas mejoras sobre su predecesora versión (1.0) Cabe destacar
que las posibles variaciones entre ambas versiones son muchísimas y trataremos las más
destacables y las trataremos de forma superficial.
Básicamente podríamos destacar los siguientes objetivos que persigue la nueva versión:
    •    Mejorar la productividad del desarrollador
    •    Proveer mayor compatibilidad con el marco completo Framework .NET
    •    Aumentar la ayuda para las características del dispositivo
En Compact Framework 2.0 destacan sus nuevas características y la integración del marco .NET
como citamos anteriormente, así por ejemplo existen numerosas características que pueden
introducir variaciones que veremos posteriormente. Son el caso de, por ejemplo, gestión de basura,
servicios web XML, acceso a datos, soporte a criptografía, excepciones...
Aparte de las características de la nueva versión repasaremos también brevemente como se lleva a
cabo alguna de las optimizaciones de la versión posterior, las actualizaciones que hubo y la nueva
versión vigente.
Por último, hablaremos sobre alguna de las conclusiones que hayamos podido extraer de la
información leída y este propio estudio.

                                                                                                   2
2. Diferencias
2.1. Respecto .NET Framework
Además, en la siguiente figura podemos hacer un repaso básico sobre los namespaces y librerías de
clases disponibles para CF respecto el paquete Framework .NET completo.

                                 Fig 1. Namespaces y librerías de clases

2.2. Respecto .NET Compact Framework 1.0
Debemos saber que CF 2.0 cumple con todos los namespaces disponibles en la versión anterior
excepto unos tipos y métodos que comentaremos. Según esto siempre se cumplirá el siguiente
esquema:

                                             .NET
                                            CF 1.0
                                        .NET CF
                                          2 .0
                             Fig 2. CF 1.0 como subconjunto de la versión 2.0

                                                                                               3
Las diferencias se pueden clasificar según:

Descripción                                   Prestaciones y/o diferencias
Clases y Tipos                                Compact Framework soporta como dijimos un
                                              subconjunto de librerías de clases de Framework
                                              .NET. Este subconjunto está destinado para el
                                              diseño de aplicaciones con una serie de
                                              limitaciones     que      corren    en     dispositivos
                                              generalmente móviles y que también tienen una
                                              serie de limitaciones.
COM Interop                                   Disponibles en la versión 2.0 de CF.
Common Language Runtime                       Encargado de operaciones como el gestor de
                                              basura, compilación de código Just in Time y
                                              otras. Existe aproximadamente el 12% del total
                                              del Common Language Runtime de Framework
                                              .NET
Controles                                     En esta asignatura hemos podido comprobar que
                                              la gran mayoría de controles de Windows Forms
                                              disponibles en un formulario de aplicación común
                                              están también disponibles para CF. Así como
                                              existen controles específicos de CF.
Directorio actual                             La funcionalidad de directorio actual no está
                                              presente en Windows CE, por lo que Compact
                                              Framework        no       soporta    los      métodos
                                              GetCurrentDirectory y SetCurrentDirectory. No
                                              obstante,      Compact      Framework       posee    la
                                              propiedad      WorkingDirectory      para      obtener
                                              información sobre el proceso de inicio.
Datos                                         CF contempla un subconjunto de ADO .NET e
                                              incluye también el proveedor de datos SQL
                                              Server Mobile. No está soportado el namespace
                                              System.Data.OleDb.

Debugging en la consola de comandos           La posterior versión de Compact Framework no
                                              soporta el nuevo debugger (MDbg.exe) por línea
                                              de comandos que provee la versión 2.0. El
                                              antiguo        debugger       (DbqCLR.exe)          fue
                                              descatalogado en la versión 2.0 de Framework
                                              .NET.

                                                                                                    4
Despliegue de aplicaciones                 Desplegar aplicaciones es tan fácil como copiar
                                           el   assembly     al   dispositivo   que        queramos
                                           utilizando un cable desde el puerto de conexión
                                           del PC de sobremesa. En la nueva versión de
                                           Visual Studio, se pueden desplegar directamente
                                           sobre el dispositivo en el momento de debugar.
Trazo de diagnóstico                       Compact     Framework       .NET     no    soporta     la
                                           configuración de archivos de trazo pero se
                                           pueden usar contadores de funcionamiento.
Objetos dispuestos                         Framework      .NET    no    garantiza     que     estén
                                           accesibles las propiedades y métodos que un
                                           objeto siempre tuvo disponibles. Sin embargo,
                                           acceder    a    algunas     propiedades         como   la
                                           propiedad Text en el entorno Framework resulta
                                           normalmente satisfactorio. En cambio, debido a
                                           la implementación y a las diferencias que existen
                                           entre Framework .NET y CF .NET el acceso de
                                           propiedades y métodos pueden fallar en CF
                                           .NET.
Codificación y localización                Compact     Framework       depende       del    sistema
                                           operativo en relación a los datos de clases, por
                                           lo que los resultados de las clases pueden ser
                                           inesperados para algunas culturas. CF .NET no
                                           soporta ajustes en per-thread CurrentUICulture.
Eventos                                    CF .NET soporta los eventos GotFocus y
                                           LostFocus pero no soporta los eventos Activated
                                           y Desactivated.
Secuencias de descripción de excepciones   Compact Framework provee secuencias de
                                           descripción de excepciones mediante mensajes
                                           de error separados en una DLL diferente
                                           (System.SR.DLL). También permite que cada
                                           uno pueda crear sus propias secuencias de
                                           excepción para otras culturas con el objetivo de
                                           localizar aplicaciones.
Nombres de archivo y rutas                 Windows CE resuelve un nombre de fichero sin
                                           información de ruta como si estuviese en el
                                           directorio raíz del dispositivo, no en el directorio
                                           de la aplicación desarrollada. Para asegurar la
                                           consecución de operaciones se debe especificar
                                           información acerca de la ruta absoluta.

                                                                                                   5
Alta resolución              El recurso HiDPI se añadirá automáticamente en
                             los proyectos de VS 2005.
Entrada/Salida               Debido     a      las     diferencias         entre     sistemas
                             operativos, existen apremios y restricciones en el
                             modelo     de        E/S.       CF       .NET     no         provee
                             notificaciones de cambio de archivos.
Instalación y ficheros CAB   Es   posible        utilizar     ficheros      CAB       y    crear
                             aplicaciones MSI para distribuirlas.
Lenguajes                    Compact Framework 2.0 soporta el desarrollo
                             utilizando VB y VC#, en cambio no soporta el
                             actual C++.
Matemáticas                  Los métodos matemáticos no están disponibles
                             en su totalidad en todas las plataformas, sin
                             embargo, están incluidas en la API para su
                             compatibilidad.
Memoria                      Compact Framework 2.0 está optimizado para
                             sistemas alimentados por baterías y nos avisa de
                             grandes usos de RAM o de ciclos de CPU.
Red                          CF .NET provee clases compatibles con la
                             tecnología     IrDA       con      el    objetivo       de    crear
                             conexiones        mediante         infrarrojos      y    también
                             incluye clases de escucha para peticiones HTTP
                             al dispositivo.
Test de funcionamiento       CF .NET no soporta perfiles de código o el
                             archivo Perfmin.exe en Monitor de Sistema. Sin
                             embargo,       se       pueden         usar    contadores       de
                             funcionamiento.
Código Proxy                 CF .Net no soporta todo el código generado por
                             la herramienta de descripción de lenguaje de
                             servicios web (WDSL).
Reflection                   Compact Framework no soporta el namespace
                             System.Reflection.Emit.                CF     actualmente       no
                             soporta el operador de equidad (==) en objetos
                             de    comparación              tales     como       MethodInfo,
                             FieldInfo, PropertyInfo, EventInfo, MemberInfo,
                             MethodBase, ConstructorInfo y ParameterInfo.
                             Se pueden utilizar hasta 64 bits usando el campo
                             OpCodes.Shl. Cualquier especificación superior
                             será reseteada con 64 bits.

                                                                                               6
Control Remoto         CF no permite control remoto.
Mensajería segura      Compact Framework no soporta certificados del
                       cliente ni autenticación mediante HTTPS. Sólo
                       es posible usar autenticación básica.
Seguridad              Existen          importantes        diferencias       y
                       consideraciones que comentaremos.
Serialización          Debido al tamaño y a consideraciones de
                       funcionamiento, no se soporta la serialización
                       binaria utilizando el “BinaryFormatter” (visto en la
                       asignatura) o serialización SOAP mediante el
                       “SoapFormatter”.
                       Sin   embargo,       es   posible    la    serialización
                       mediante la transmisión de objetos de datos
                       utilizando SOAP en servicios web XML y la
                       serialización de datasets con XML.
Tamaño                 CF tiene alrededor del 8% del paquete completo
                       de Framework .NET. El tamaño que ocupa en el
                       disco duro es de un 50% más pequeño debido a
                       la compresión de archivos de sistemas de
                       Windows CE.
Sockets                No todas las opciones de Sockets están
                       disponibles en CF.
Threads                Existen   hasta     cuatro     threads    creados   por
                       Compact Framework .NET.
Intervalos de tiempo   El valor retornado desde “Now” se especifica
                       únicamente en segundos, no milisegundos. Se
                       puede obtener una medida precisa mediante la
                       propiedad “TickCount”.
Temporizadores         Los métodos “Start” y “Stop” disponibles en un
                       objeto    tipo     System.Timers.Timer        no    son
                       soportados, pero es posible parar e iniciar el
                       temporizador utilizando la propiedad booleana
                       “Enabled”                 disponible                 en
                       System.Windows.Forms.Timer.
Objetos My en VB       CF soporta la característica de VB de los objetos
                       My, exceptuando los siguientes objetos My:
                       My.Application,      My.Computer,         My.User     y
                       My.Settings.

                                                                              7
Web Services   Los servicios web del cliente ejecutan el archivo
               wsdl.exe generado directamente por el código.
               No se pueden montar servicios web sobre un
               dispositivo como host local porque el host local
               se refiere al dispositivo que ejecuta la aplicación
               como en el dispositivo mismo. En lugar de esto,
               se debería usar el nombre de otra máquina o la
               dirección IP.
XML            Debido a numerosas consideraciones, CF no
               soporta la validación del esquema XML. Pero sí
               soporta el Modelo de Objeto de Documento
               (DOM).

                                                                 8
3. Generalidades y novedades
3.1. Generalidades
Como sabemos, Compact Framework es un subset de Framework .NET. Consiste en una serie de
librerías de clases y tiene algunas clases adicionales específicas para dispositivos que requieren
movilidad. CF .NET se ejecuta sobre el compilador de altas prestaciones JIT. El “Common Language
Runtime” (CLR) está construido especialmente para CF por lo que resultan códigos finales mucho
más eficientes para esta clase de dispositivos. Debemos imaginar las limitaciones que supone utilizar
estos dispositivos como por ejemplo su memoria, los recursos y sobretodo el consumo de baterías y
el tiempo limitado de estas. Para soportar aplicaciones diseñadas con CF los dispositivos deben
hacer uso de una plataforma que lo permita, esta es el sistema operativo de Microsoft diseñado para
este objetivo. El sistema utilizado es una parte reducida del sistema conocido como Windows CE.
CF es compatible con los siguientes dispositivos y plataformas de desarrollo:

       Versión Dispositivo              Plataforma

       1.0        Pocket PC             Pocket PC 2000, Pocket PC 2002, Windows Mobile 2003 para
                                        Pocket PC, Windows Mobile 2003 para Pocket PC SE,
                                        Windows Mobile Version 5.0 y software para Pocket PC

       1.0        Smartphone            Windows Mobile 2003 para Smartphones
                                        Windows Mobile Version 5.0 software for Smartphone

       1.0        Otros dispositivos Windows CE 4.1
                  Windows CE         Windows CE 4.2
                                        Windows CE 5.0

       2.0        Pocket PC             Windows Mobile 2003 para Pocket PC, Windows Mobile 2003
                                        para Pocket PC SE, Windows Mobile 5.0 software para Pocket
                                        PC

       2.0        Smartphone            Windows Mobile Version 5.0 software para Smartphone

       2.0        Otros dispositivos Windows CE 5.0
                  Windows CE
                     Recordemos que Smartphone 2002 no soporta CF pero sí Smartphone 2003
En relación con lo anterior, podemos ver una clasificación de los diferentes dispositivos para los que
podemos diseñar, bajo qué versión de Windows CE funciona y las capacidades que aporta. Esto lo
podemos observar en la siguiente figura:

                                 Fig 3. Dispositivos, versiones CE y capacidades

                                                                                                      9
La arquitectura de Compact Framework cumple con el siguiente esquema:

                               Fig 4. Arquitectura de Compact Framework .NET

3.2. Novedades
Como dijimos, la nueva versión de Compact Framework aporta numerosas novedades. Debemos
recordar que Compact Framework .NET proviene de Framework .NET por lo que muchas de estas
novedades y/o mejoras suponen la incorporación de nuevas clases y métodos que provienen de
Framework .NET o bien optimizaciones de las clases y métodos existentes.
P.ej:\\ En el proyecto del juego Snake que tenemos, debíamos utilizar threads. System.Threading
pertenece a Compact Framework y, por supuesto obligatoriamente, a Framework .NET.
Lamentablemente, no disponíamos de los métodos Abort() y Join() en la versión 1.0 mientras que en
CF 2.0 están disponibles.
Compact Framework 2.0 añade una nueva característica en C#, es que permite incluir el
direccionamiento mediante eventos en un código delegado como mostramos en el siguiente ejemplo:
P.ej:\\
Antes en VS 2003:
this.menuItem8.Click += new System.EventHandler(this.menuItem8_Click);
private void menuItem8_Click(object sender, System.EventArgs e)
{
//CODIGO A EJECUTAR
}
En VS 2005 donde se dispone de CF 2.0:
this.menuItem8.Click += new System.EventHandler(sender,args);
//EL OBJETO sender Y EL EVENTO args YA PUEDEN INICIALIZAR EL EVENTO CONTROL
DEL MENUITEM, ESTOS DOS INDICAN EL CODIGO QUE SE DEBE EJECUTAR Y EL EVENTO
SECUNDARIO LANZADO

Criptografia
Se añaden nuevas características de soporte a criptografía. Estas son:
    •   Certificados de seguridad X.509
    •   Hashing: MD5 y SHA1
    •   Encriptación simétrica: RC2, RC4, 3DES, DES
    •   Encriptación asimétrica: RSA, DSA

                                                                                              10
DataSet
Otras nuevas implementaciones son las realizadas en la clase System.Data.DataSet. Este alberga el
método GetChanges y otros métodos disponibles en el namespace System.Data.

Eventos
En las excepciones también existen sustanciales cambios, se incluye un evento para cuando el índice
cambia en un TabControl, otro para el cambio del valor de una TrackBar, se añaden eventos en vista
de árbol (Treeview) y todos los eventos de selecion de objeto en un ComboBox o ListBox, como por
ejemplo el evento SelectedIndexChanged.

Excepciones
Se implementan excepciones en casos que antes no se contemplaban, más que nada suponemos
que como medio de ayuda al desarrollador.
P.ej:\\
CF 2.0 incluye un método llamado Substring perteneciente a la clase String que lanza una excepción
si el índice de inicio es mayor que la longitud del string. En la versión posterior, cuando depuramos la
aplicación se para cuando llegamos a este punto.

Red
En cuanto a red, también podemos destacar varias mejoras como la compatibilidad para el futuro
protocolo de Internet Ipv6, así como optimización de la serialización mediante XML. Además CF 2.0
soporta SOAP 1.2 y los siguientes protocolos de autenticación: Negotiate, NTLM y Kerberos.
En CF 2.0 disponemos de encolamiento de mensajes, las clases disponibles en el namespace
System.Messaging están disponibles como también se implementa soporte para clases parciales,
luego pueden usarse en VS2005 cuando se crea un nuevo proyecto.

Control del teclado
La clase RegistryKey está disponible y por tanto se pueden hacer accesos al registro de Windows, la
profundidad máxima de la clave de un registro es de 15 ya que es la limitación que pone Windows CE
Con la nueva versión podemos acceder a puertos serie, se puede soportar hasta 4 puertos
simultáneamente. Además de todo esto, también existen nuevas clases disponibles en la nueva
versión de SQL Mobile Edition.

XML
En relación a los textos en XML, que antes mencionamos sutilmente podemos añadir que se
incorpora la clase XmlSerializer así como los namespaces System.Xml.Xpath y System.Xml.Schema
Se definen tres tipos de My objects: My.Resources Object, My,WebServices Object y My.Forms
Object.

Threads
Además de disponer los métodos Join() y Abort() para los threads que antes comentamos, también se
incluyen los métodos BeginInvoke, EndInvoke y parámetros útiles con el método Invoke.

                                                                                                     11
Aunque la compilación en línea de comandos es soportada en versiones anteriores de CF, la nueva
versión provee más facilidad y soporte para la compilación y la debugación mediante una Terminal de
comandos.

Controles
CF cuenta con nuevos controles disponibles en Microsoft.WindowsCE.Forms, más adelante
repasaremos qué mejoras presentan los formularios de Windows y el objeto Graphics utilizado en el
proyecto de Snake.

Librería de clases soportadas y no soportadas por el Compact Framework:
Compact Framework es compatible con el 28 por 100 de las librerías que se encuentran en la versión
completa. Algunas de las prestaciones que no soporta el CF son las siguientes:
   •    ASP .NET
   •    Gestión remota del dispositivo nativo.
   •    Funcionalidad como servidor Web.
   •    Desarrollo de aplicaciones en C++, J# y JSP.
   •    Seguridad por palabra clave.
Sin embargo ofrece algunas funcionalidades propias que no se encuentran en la versión completa
como son:
   •    Microsoft.WindowsMobile.DirectX
   •    Microsoft.WindowsMObile.DirectX.Direct3D
   •    Microsoft.WindowsCE.Forms
   •    Infrared Connections
   •    System.Data.SqlServerCe

La necesidad de librerías propias relacionadas con el movimiento de gráficos en 3D y de controles
con DirectX se debe a la menor capacidad del procesador del equipo nativo entre otras limitaciones.
Los formularios se han readaptado al nuevo tamaño de pantalla y a la manera de gestionar los
eventos producidos por el usuario. Se han incluido librerías propias relacionadas con la gestión de
los sockets y la transmisión de datos a través de infrarrojos. La librería SQLServer permite la
interoperabilidad con las bases de datos de un servidor SQL móvil.
Algunas de estas funcionalidades requieren la instalación de herramientas específicas para ser
utilizadas. Un ejemplo es un kit propio de desarrollo para la versión 5.0 de Windows Mobile,
normalmente llamados paquetes SDK.

                                                                                                 12
4. Optimizando Compact Framework
Muchas de las diferencias que distinguen la versión de Compact Framework con su predecesora es
precisamente la optimización de muchas de sus principales características. Es decir, de una versión a
su posterior, además de agregar funciones inexistentes, se realizan mejoras que aumentan la
eficiencia de ejecución de la aplicación. Debemos recordar que este es uno de los objetivos
primordiales que busca el programador.
Así podemos destacar, por ejemplo, las particularidades relacionadas con el almacenaje de variables
en memoria donde podemos distinguir los siguientes elementos:
    •   Almacenaje – Flash/ROM
    •   Memoria física
    •   Memoria virtual – 32 MBytes por proceso
Compact Framework 2.0 está diseñado según:
    •   Cubrir el 28% del total de Framework .NET
    •   Compilador Just in Time (JIT) para dispositivos móviles (generación rápida de código)
    •   Llamadas virtuales interpretadas
    •   Carga escasa de metadatos
En resumen, podemos consultar la siguiente tabla donde se encuentran algunas de las llamadas y la
optimización que han tenido al respecto de sus versiones predecesoras y distinguidas según su
optimización se vea incrementada por su tamaño o tiempo de ejecución. La tabla es la siguiente:

        Grande
        es mejor

        Pequeño
        es mejor

Podemos comprobar como algunas de las características destacadas en la tabla aumentan su
eficiencia dependiendo las llamadas por segundo, iteraciones, bytes por segundo o segundos. Estas
unidades de medida se distinguen en las que mejoran minimizándolas o maximizándolas.
Para la medida del funcionamiento y la optimización del mismo se utilizan más contadores de
funcionamiento con el objetivo de verificar los tiempos de ejecución que se desean obtener o

                                                                                                  13
simplemente los tiempos que han logrado conseguir los desarrolladores de la nueva versión. A esto
se le añaden estadísticas que ayudan a conseguir el objetivo marcado. Estos contadores los
podríamos resumir en:
    •   De utilización genérica
    •   De utilización para interoperaciones COM
    •   Control de threadings
    •   Objetos GUI
    •   Control de actividad de red (bytes recibidos/enviados por socket)
Cabe destacar que también se añaden nuevos colectores de basura (GC) que optimizan el espacio
estático disponible ya que eliminan posibles variables y/u objetos que no serán utilizados dado que
sus tiempos de latencia son también menores.

4.1 Motor de la ejecución
En relación a la optimización de llamadas podemos distinguir dos tipos:
    •   Llamadas controladas (requieren más recursos que las nativas)
             1. Llamada a instancias
             2. Llamada virtual
             3. Invocación de plataforma:
    •   Propiedades: son llamadas
El compilador de ejecución JIT es el mismo en todas las versiones, no obstante se han incluido
también optimizaciones como son el método “inlining” para métodos simples, registro de variables y
en aspectos internos de la secuencia de ejecución del compilador.
Gracias a las mejoras aportadas en las llamadas a funciones se han obtenido resultados muy
interesantes donde, por ejemplo, una llamada a una función virtual se reduce el tiempo de ejecución
en un 30% del valor anterior.

4.2 Colector de basura (GC)
El colector de basura de Compact Framework realiza más rápidamente las asignaciones de espacio,
concretamente de 7.5 bytes/segundo.
Lo más importante es que el propio colector de basura gestiona su propia pila en bloques de 64
KBytes y 1 Mbytes de cache. Además utiliza una función para devolver memoria virtual y física al
sistema llamada VirtualAlloc.
Si existe fragmentación de la información a almacenar, GC puede comprimir su propia pila.
Los elementos que accionan el GC son:
    •   Fallo en la localización de memoria
    •   Existencia de un millón de objetos localizados por GC
    •   Que una aplicación pase a ejecutarse en segundo plano
    •   Mediante GC.Collect() método que avisa a GC
En el tiempo en el cuál se ejecuta el colector de basura se realizan las siguientes acciones:
    1. Parada de todos los threads mediante un punto seguro

                                                                                                14
2. Encontrar todos los objetos vivos (en uso) y marcarlos
    3. Desmarcar los objetos que están inactivos y añadirlos a la cola finalizadora
    4. Se compacta la pila del colector de basura si así se requiriese
    5. Se retorna el total de memoria libre obtenida al sistema operativo
Todas las mejoras hechas en el colector de basura suponen una increíble eficiencia en contra de la
versión antigua, ya que la localización y gestión de objetos activos e inactivos también es mucho más
eficiente. De esta manera es como se obtienen fantásticos resultados de prueba, donde se sitúan
contadores de tiempo que desvelan un decremento del tiempo de ejecución del 10000%. Mientras en
la versión predecesora un código de prueba producía una cadena de 20040 objetos de secuencia en
memoria en la nueva versión el mismo código obtenía solamente 56 cadenas. Por este motivo
podemos afirmar que el colector de basura es uno de los elementos mejor optimizados o que el salto
dado de una versión a otra es mucho más evidente.

4.3 Excepciones
Las excepciones en la nueva versión de Compact Framework son mucho más eficientes y trabajan en
segundo plano de forma más sutil, haciendo presencia en el momento de lanzar la propia excepción.
Esta es la permisa que busca la nueva versión, ya que normalmente una excepción no entra en juego
hasta que es lanzada y, además, se lanza en circunstancias limitadas. De aquí la importancia de
hacer que consuman menos recursos del sistema.
La nueva versión añade contadores de funcionamiento para controlar el número de excepciones
lanzadas para que el propio sistema a la vez tenga un caudal más constante de trabajo a lo largo del
tiempo, minimizando así los recursos dedicados.
Recordemos, que en el VS2003 ya se incluían las sentencias “try/catch/finally” en lugar de “on
error/go to”.

4.4 Windows Forms
Los formularios de Windows han tenido muchos avances entre los que se encuentran:
    •   Carga de formularios en segundo plano.
    •   Carga más rápida del formulario.
    •   Optimización de buffers para minimizar el parpadeo en la pantalla (hasta un 50% mejor).
    •   Renderización previa de imágenes antes de su representación en el formulario: requiere un
        tratamiento básico previamente, pero posteriormente aumenta la eficiencia de manipulación
        de estas imágenes.

4.5 Web Services
En la nueva versión de CF se ha intentado resolver en la medida de lo posible los embotellamientos
en servicios Web. Normalmente, estos problemas en los servicios Web son debidos a dos problemas
básicos: que la red esté limitando o bien que la propia CPU del dispositivo limite el servicio.

                                                                                                  15
Como indicamos antes, se utilizan contadores de funcionamiento que controlan los bytes recibidos y/o
enviados por un socket en concreto. De esta forma se intenta optimizar partiendo de la base que el
servicio vaya alcanzando su límite sin llegar a él maximizando así la eficiencia sin llegar al colapso.
Además de estos contadores, se añade mensajería específica para el control y la gestión de una
sesión de un servicio Web.
Por último, como último recurso se recomienda optimizar el esquema de serialización en el caso de
tener al límite el uso de CPU.

                                                                                                          16
5. Mejoras y avances
5.1.       Interfaz de usuario

La interfaz de usuario de Compact Framework se distingue claramente del paquete completo
Framework .NET ya que los controles y el aspecto global de la interfaz se ve empobrecido.
Como hemos visto en clase, el desarrollo de aplicaciones visuales para dispositivos móviles y
smartphones está limitado porque los controles disponibles no son los mismos, las propiedades y
tamaños de las pantallas tampoco y el teclado no ofrece la misma versatilidad que un teclado
convencional.
Los avances recientes en capacidades de exhibición, tales como pantallas de alta resolución y
distintas orientaciones, han hecho el trabajo del desarrollo de la interfaz de usuario una labor más
desafiante.       Para simplificar la tarea de crear interfaces de usuario, Compact Framework 2.0
proporciona nuevas características disponibles para la personalización de la misma.

5.2.       Controles de Windows Forms

A continuación enumeramos los distintos controles que incorpora la nueva versión. Entre algunos de
estos se encuentran:
       •    MonthCalendar: es un control de calendario personalizado que provee una visualización
            gráfica de la fecha y es bastante útil para que los usuarios seleccionen una fecha de forma
            gráfica.
       •    DateTimePicker: es un control personalizado para mostrar por pantalla y permitir a los
            usuarios introducir una fecha, incluso la hora. Es especialmente utilizada para aplicaciones de
            SmartPhones debido a que su combinación de una disposición gráfica reducida y el cómodo
            formato de selección de fecha. Cuando queremos mostrar esta información por pantalla, el
            control DataTimePicker tiene un aspecto muy similar a un TextBox, sin embargo, cuando el
            usuario está seleccionando una fecha, un calendario emergente similar al control
            MonthCalendar se muestra por pantalla.
       •    WebBrowser: el control WebBrowser encapsula la herramienta Web Browser, provee de altas
            capacidades gráficas y expone una gran variedad de eventos que permite a la aplicación la
            interacción entre el usuario y el contenido del navegador web además de permitir que la
            aplicación tenga comportamientos personalizados (eventos).
       •    Notification: este control encapsula la capacidad de notificación que permite a las
            aplicaciones para PocketPC enviar una notificación al usuario sin cambiar el contexto en el
            que la actividad del usuario transcurre. El texto de la notificación puede ser texto plano o bien
            lenguaje HTML. Además para mostrar información por pantalla, las notificaciones pueden
            recibir entradas por parte del usuario incluyendo botones HTML y hipervínculos en el propio
            texto de la notificación.
       •    DocumentList: el control DocumentList provee de un mecanismo estandar para gestionar y
            mostrar archivos tales como los que se usan cuando abrimos hojas de cálculo de Excel
            Mobile o documentos de texto de Word Mobile. Este control le da la posibilidad al usuario de
            navegar por los archivos del sistema, borrar, copiar, mover y renombrar archivos. El usuario

                                                                                                          17
también puede usar este control para enviar correos electrónicos y archivos mediante el uso
            de puertos infrarrojos, Bluetooth u otros sistemas de comunicación.
       •    DataGrid en SmartPhones: en esta versión es posible implementar el control DataGrid sobre
            dispositivos SmartPhones. Tal y como para PocketPC, el control DataGrid sobre
            SmartPhones soporta configurar el tamaño de las columnas, múltiples estilos de
            visualización, manipulación de valores nulos y eventos de selección.
       •    LinkLabel: simplemente es un control que permite mostrar hipervínculos en nuestra
            aplicación.
       •    Splitter: es un control que permite la capacidad de configurar el tamaño de los controles fijos.
       •    ToolBar: control que añade una barra de herramientas de Windows capaz de mostrar
            imágenes como botones.
       •    Controles de usuario: la nueva versión soporta controles de usuario. Con la ventaja añadida
            de que en CF 2.0 las aplicaciones pueden crearse gráficamente mediante controles. Tal y
            como sucede con el paquete completo Framework .NET de VS2005, en CF 2.0 .NET los
            controles de usuario aparecen automáticamente en el control Toolbox y solamente
            arrastrándolos sobre el formulario ya los tenemos funcionales en la aplicación.

5.3.       Gestión de pantalla

Como sabemos, la multitud de factores que intervienen en el desarrollo de una aplicación para un
dispositivo móvil (tamaño de ventana, teclado, sin ratón …) requiere que por parte de los
desarrolladores se implementes interfaces que deben ser dinámicas en lugar de estáticas. Esto
quiere decir que se ajusten a las características de cada dispositivo en concreto maximizando las
prestaciones visuales en cada momento.
Aunque en muchas ocasiones esto no es posible (por falta de tiempo, recursos…) Compact
Framework 2.0 intenta simplificar la esta tarea de crear interfaces dinámicas ya que tiene muchas
capacidades de gestión de pantalla.
Entre estas nuevas capacidades podríamos destacar las siguientes:
       •    Control Docking: CF 2.0 soporta este control que permite fijar y marcar zonas de controles
            que dependen de un control padre. Cuando el padre es redimensionado los controles fijados
            también se autoredimensionan rellenando la zona especificada en el control padre. Existe la
            posibilidad de rellenar por completo el control padre.
       •    Control Anchoring: la nueva versión soporta también el “anclaje” de controles. Este término se
            utiliza para denominar a la función que nos permite identificar a uno o más controles y fijar
            una distancia respecto el eje o los ejes de control padre. Cuando se lleve a cabo un
            redimensionamiento del control padre, los controles “anclados” también se redimensionarán
            automáticamente pero conservando la distancia apropiada entre ellos y los ejes del control
            padre.
       •    Automatic Scrolling: aparte de los controles propios de un formulario de poder hacer “scroll”
            en un formulario, se añade la propiedad de Automatic Scrolling. Esta propiedad permite que
            cuando está activada (“trae”) se añade automáticamente un control con una “scroll bar” que

                                                                                                          18
permite al usuario moverse y encontrar aquellos controles que no están visibles en el
            formulario.
       •    Automatic Scaling: es una nueva propiedad incluida que indica como el control debe dibujarse
            cuando debe mostrase por pantalla con una resolución diferente a la resolución original en el
            que fue diseñado.
       Además de esto, en la nueva versión de Compact Framework, tal y como sucedía en Framework
       .NET, están disponibles los métodos “SuspendLayout” y “ResumeLayout”. Estos métodos están
       disponibles en las clases de CF 2.0 y son utilizados en la conjunción con otro grupo de múltiples
       eventos relacionados con la reposición o el redimensionamiento de controles hijos.
       También se añaden clases gráficas que proveen de información como la resolución de la pantalla
       del dispositivo en uso. Por ejemplo, existe una propiedad llamada “DpiX” la que indica el número
       de puntos por píxel horizontales o “DpiY” para los verticales.

5.4.       Dibujo personalizado

Para simplificar la creación de interfaces de calidad, CF 2.0 ha añadido un buen número de
características que permiten a las aplicaciones una manejabilidad mayor y más fácil utilizando dibujos
personalizados.
Entre las nuevas características disponibles podemos destacar:
       •    Fuentes rotativas: se añade la clase “LogFont” que permite a CF 2.0 disponer en pantalla
            texto y el cambio de ángulos de vista y otros efectos de texto.
       •    Paleta personalizada: las aplicaciones ahora se pueden crear con un “Pen” de un tamaño y
            color personalizado.
       •    Bitmaps: como en la versión predecesora es posible trabajar con archivos bitmap. Ahora bien,
            se incluyen más opciones cuando creamos los bitmaps y en el momento de salvar el bitmap
            en un archivo o bien en un stream. En general, resulta más sencillo visualizar y manipular
            bitmaps a través de la combinación de los métodos “LockBits” y “UnlockBits”.
       •    Compatibilidad con DirectX: Windows Mobile 5.0 incluye un buen número de funciones para
            dibujo en dos y tres dimensiones a través de la implementación nativa de las interfaces
            gráficas de programación de DirectX. Las aplicaciones diseñades para un sistema Windows
            Mobile 5.0 tienen la posibilidad de utilizar clases propias que están contenidas en el
            namespace “Microsoft.Windows.DirectX”.

5.5.       Control de teclado

Actualmente, muchos de los nuevos dispositivos de bolsillo ya incluyen teclado, bien sea reducido
(concentrando varios caracteres en una tecla), interactivo en pantalla, etc. Para permitir que los
desarrolladores tengan la ventaja de utilizar las posibilidades y prestaciones que ofrece la utilización
del teclado, CF 2.0 soporta el uso de teclados.
Se añade una propiedad que permiten ordenar los controles de la aplicación de forma que los
usuarios pueden navegar por ellos utilizando el tabulador.
Asimismo, se añaden eventos de teclado como: KeyUp, KeyDown, KeyLeft, KeyRight y KeyPressed.

                                                                                                      19
Además, el control del formulario tiene la propiedad “KeyPreview”. Cuando esta propiedad se
encuentra con el valor booleano “false”, los eventos de teclado se envían directamente hacia el foco
del control. Si está en “true”, todos los eventos se envían mediante una instancia prioritaria al
formulario para ser enviado después al control que en ese momento tenga el foco.

5.6.       Gestión de datos

Los datos son la parte más importante de cualquier aplicación. Las clases orientadas a la gestión de
datos están directamente relacionadas con el nivel de esfuerzo que se requiere la programación para
acceder y trabajar con datos.
Compact Framework .NET provee nuevas clases de datos añadidas a las ya disponibles. Entre las
clases incluidas en la nueva versión son:
       •    Clases de acceso a SQL: permite el acceso a bases de datos SQL Server 2005 Mobile. Este
            acceso es mucho más rápido y una solución mucho más eficiente, en cuanto a consumo de
            recursos del sistema, para el acceso a datos SQL Mobile que la clase DataSet. Tal y como
            sucedía en la clase DataSet, “SqlCeResultSet” puede usarse como fuente de datos
            enlazados.
       •    DataSet: la clase DataSet y las clases relacionadas poseen nuevas características. Estas
            características no sólo proveen una gran funcionalidad sino que también intenta acercar la
            clase DataSet a lo que viene establecido normalmente en el paquete completo de Framework
            .NET.
       •    GetChanges y Merge: son métodos que están añadidos en la nueva versión disponible en la
            clase DataSet. El método GetChanges retorna una copia del objeto DataSet que contiene
            todos los cambios hechos desde la última llamada al método AcceptChanges.
           El método Merge fusiona un objeto DataSet combinándolo con otro. Este método es muy útil
           sobretodo para fusionar cambios desde un objeto DataSet, retornado por el método
           GetChanges, a otro objeto DataSet diferente.
       •    Copy: el método Copy retorna un nuevo objeto DataSet que contiene la misma estructura y
            datos que el objeto original.
       •    Serialización de DataTables: la clase DataTable contiene los métodos WriteXml y ReadXml,
            los cuales disponen de capacidades de serialización y deserialización de texto XML de tablas
            individuales. Además también soporta pasar DataTables como argumentos de un servicio
            Web.

5.7. XML
La versión 2.0 de CF ofrece nuevas prestaciones respecto al procesado de datos mediante XML
respecto de su predecesora. Estas nuevas prestaciones simplifican el trabajo con este tipo de
archivos ya que se incluyen nuevas clases que nos permiten seleccionar nodos del archivo, realizar
búsquedas dentro de cada nodo y la comunicación entre equipos mediante serialización.

                                                                                                     20
XmlDocument es la clase que nos permite seleccionar nodos y realizar búsquedas de datos dentro
del mismo archivo.
XmlSerializer mejora las capacidades de serialización respecto de la anterior versión. Permite utilizar
servicios web que utilicen esta tecnología.
XmlSchema permite la creación de archivos XML mediante esquema en tiempo de ejecución de la
aplicación.

5.8. Seguridad y criptografía
La seguridad es un factor a considerar en la gran mayoría de aplicaciones, incluyendo aquellas que
se ejecutan en dispositivos móviles. Además las capacidades de seguridad incluidas en la plataforma
Windows Mobile, CF 2.0 incluye criptografía y protocolos de red.
CF 2.0 brinda soporte a la criptografía, por ejemplo soporta el sistema MD5 y SHA1, como también el
RC2, RC4, 3DES y DES (encriptaciones simétricas) y el RSA o DSA (encriptaciones asimétricas).
Además de la autenticación “Digest” incluida en la versión posterior, la nueva versión incluye soporte
para autenticación NTLM y Kerberos.

5.9.   Threadings

Los cambios que se han realizado en Compact Framework 2.0 aportan a las aplicaciones más control
de los threads e incorporan la clase Thread haciéndola prácticamente idéntica a la clase disponible en
la versión completa de Framework .NET
CF 2.0 añade soporte para threads en segundo plano. Estos son threads que no acaban de
ejecutarse mientras haya threads primarios activos hasta que estos últimos estén terminados. Existe
una propiedad de los threads llamada “IsBackground” con el objetivo de definir los threads de
segundo plano.
Además también incluye método para abortar la ejecución de un hilo llamado “Abort”. Cuando se
llama a este método, se lanza una excepción llamada “ThreadAbortException” y normalmente finaliza
el thread abortado.
Existe la posibilidad de establecer una coordinación entre hilos de ejecución diferentes, es decir
podemos bloquear un thread esperando por el inicio de otro.
CF 2.0 permite la identificación de cada uno de los threads por nombres asignando un string a la
propiedad “Name” existente ahora en esta versión.
Ahora está disponible utilizar ejecución asíncrona de un delegado en un thread de interfaz de usuario.
Hasta ahora en la versión 1.0 sólo se soportaba la ejecución síncrona mediante el método
“Control.Invoke” mientras que en 2.0 se provee el método “Control.BeginInvoke” que ejecuta
asíncronamente el delegado. El método “Control.EndInvoke” retorna el resultado de esta operación.

                                                                                                    21
6. Conclusiones
En primer lugar destacar que existen innumerables mejoras en la nueva versión de Compact
Framework 2.0. Además de cubrir un porcentaje mayor del paquete completo de Framework .NET,
también mejora las ya disponibles en la versión posterior, adaptándolas más a las necesidades reales
de los dispositivos y aplicaciones actuales, así como la creación de nuevos métodos con el mismo
objetivo.
En contra de lo anterior, debemos decir que parece que Compact Framework está desarrollado muy
irregularmente. Con esto nos referimos a que el avance en diferentes campos ha sido muy diferente y
no se han llevado a cabo de una forma equitativa. Suponemos que debido, aparte de las nuevas
necesidades tecnológicas, a cuestiones de marketing. Y es que muchos de los grupos de desarrollo
en los que se divide el grupo de trabajo de Microsoft de Compact Framework equiparan la
programación de ciertas clases a nivel de paquete completo mientras que en otros no sucede esto.
Como hemos visto aporta muchas novedades en cuanto a los threads, tema relacionado con el
proyecto de la asignatura. Los métodos y propiedades ahora disponibles quizás se hubieran ajustado
más o de manera más sencilla a los objetivos que perseguíamos en el proyecto.
Resumiendo y como idea general extraemos que la nueva versión de Compact Framework aporta
aquellas novedades que se hacen imprescindibles para la programación de aplicaciones actuales.
Además de la optimización de muchas de las llamadas a métodos ya presentes en versiones
anteriores. Por estas razones suponemos que sería interesante comenzar a migrar nuestra
herramienta de desarrollo .NET por la nueva versión VS2005 disponiendo así de CF 2.0 para el
diseño de aplicaciones sobre PDAs, Smartphones, etc.

                                                                                                   22
7. Glosario
A
Active-x
Un conjunto de tecnologías de interoperabilidad independientes del lenguaje, creadas por Microsoft,
que permiten que los componentes de software escritos en diferentes lenguajes funcionen juntos en
entornos de red. Los elementos fundamentales de la tecnología ActiveX son el Modelo de objetos
componentes (COM) y el Modelo de objetos componentes distribuido (DCOM).

ASP
Active Server Pages: Páginas de Servidor Activo. Es la especificación para páginas Web
dinámicamente creadas, con extensión .ASP, con ActiveX y ejecutadas en servidores con Microsoft
Internet Information Server (IIS). Cuando un browser solicita una página ASP, el servidor Web la
genera con código HTML y se la envía.

B

Bytecode
Es un código intermedio más abstracto que el código máquina. Habitualmente se trata como a un
fichero binario que contiene un programa ejecutable similar a un módulo.

C

CLR
Common Language Runtime es el motor en tiempo de ejecución del nucleo de CF. Permite utilizar
servicios como la compilación de diferentes lenguajes de programación entre otras prestaciones.

COM
Es una arquitectura de software desarrollada por Microsoft para construir aplicaciones basadas en
componentes. Los objetos COM son componentes discretos, cada uno con una identidad única, y con
interfaces que permiten su uso desde otras aplicaciones o componentes. Son más versátiles que los
DLLs de Windows porque son completamente independientes del lenguaje, tienen capacidades de
comunicación intraprocesos, y caben fácilmente en un diseño orientado a objetos.
ActiveX también está basado en COM.

D

DES
Data Encryption Standard.Algoritmo de Encriptacion de Estandar. Algoritmo desarrollado por IBM,
utiliza bloques de datos de 64 bits y una clave de 56 bits. Es utilizado por el gobierno americano.

                                                                                                      23
DCOM
Modelo de objetos componentes distribuido. Extensiones del Modelo de objetos componentes (COM)
que facilita la distribución transparente de objetos a través de redes y de Internet. DCOM forma parte
de la especificación administrada por The Open Group para la distribución en plataformas.

DIRECTX
Interfaz de programación bajo Windows, que permite acceder directamente al hardware (por ejemplo,
tarjetas gráficas y de sonido). Se suele utilizar para programar juegos en este sistema.

E

F

G

GUI

Interfaz gráfica de usuario (GUI) es un método para facilitar la interacción del usuario con el
ordenador a través de la utilización de un conjunto de imágenes y objetos (iconos, ventanas..)
además de texto.

H

Hash
Un hash o función resumen se refiere a una función o método para generar claves o llaves que
representen de manera unívoca a un documento, registro o archivo.

J

JIT (Just In Time)
Compilación en tiempo de ejecución (también conocida como traducción dinámica) es una técnica
para mejorar el rendimiento de sistemas de programación que compilan a bytecode, consistente en
traducir el bytecode a código máquina nativo en tiempo de ejecución.

K

Kerberos:
protocolo de seguridad muy difundido en entornos Unix y adoptado también por otros sistemas
operativos como, por ejemplo, Windows 2000. Básicamente utiliza una aplicación, el servidor de
autenticación, para validar las contraseñas y los esquemas de cifrado.

L

M

                                                                                                   24
MD5
es un algoritmo utilizado para crear firmas digitales. Está orientado al uso con máquinas de 32 bits y
es más seguro que un algoritmo MD4, que puede romperse.
El MD5 es una función hash de un sólo sentido, o sea que toma un mensaje y lo convierte en una
cadena fija de dígitos, también conocida como digest.
Cuando se utiliza una función hash de un sólo sentido, se puede comparar un mensaje digest
calculado contra el mismo digest desencriptado mediante una clave pública para verificar que el
mensaje no fue falsificado. Dicha comparación se denomina "hashcheck".

Metadato:

Los metadatos son información de la información misma. En esencia, intentan responder a las
preguntas quién, qué, cuándo, cómo, dónde y porqué, sobre cada una de las facetas relativas a los
datos que se documentan.

P

PocketPc

PocketPC es un ordenador de bolsillo, también llamado PDA (Personal Digital Assistant). Se trata de
un pequeño ordenador, diseñado para ocupar el mínimo espacio y ser fácilmente transportable que
ejecuta el sistema operativo Windows CE de Microsoft, el cual le proporciona capacidades similares a
los PCs de escritorio.

R

RSA
El sistema criptográfico con clave pública RSA recibe su nombre por la inicial del apellido de sus
inventores: Ronald Rivest, Adi Shamir y Leonard Adleman. Todo usuario de dicho sistema hace
pública una clave de cifrado y oculta una clave de descrifrado. Cuando se envía un mensaje, el
emisor busca la clave pública de cifrado del receptor y una vez que dicho mensaje llega al receptor,
éste se ocupa de descifrarlo usando su clave oculta.

S

SDK

Software Development Kit. Es un paquete de programación que permite desarrollar aplicaciones para
una plataforma específica. Típicamente un SDK incluye una o más APIs, herramientas de
programación y la documentación pertinente.

Serializacion

Codificar una estructura de datos como una tira de bits. Deserializar sería la operación contraria.

SOAP

                                                                                                      25
Simple Object Access Protocol. Es un protocolo de mensajería basado en XML y que se usa para
codificar la información en los mensajes de petición y respuesta en servicios Web antes de enviarlos
por la red. Los mensajes SOAP son independientes de cualquier sistema operativo y pueden
transportarse usando una variedad de protocolos de Internet, como SMTP, MIME, y HTTP.

Socket

Un objeto de software utilizado por un cliente para conectarse a un servidor; los componentes básicos
incluyen el número de puerto y la dirección de red del host local.

SQL
Structured Query Language. Lenguaje de programación que se utliza para recuperar y actualizar la
información contenida en una base de datos.
Históricamente, el SQL ha sido el lenguaje favorito para sistemas de administración de bases de
datos corriendo en minicomputadoras y mainframes. Sin embargo, el SQL está teniendo soporte en
sistemas de base de datos para PC porque soportan bases de datos distribuidos (bases de datos
sobre distintos sistemas de computadoras). Esto permite que varios usuarios sobre una LAN accedan
a la misma base de datos simultáneamente.

W

Windows Ce

Variación minimalista del sistema operativo Windows para equipos móviles. Es compatible con los
procesadores Intel x86,MIPS,ARM y SuperH.

X

X509
Es un standard ampliamente usado para definir certificados digitales. El X.509 es actualmente una
Recomendación de la ITU, lo cual significa que aún no ha sido oficialmente definido o aprobado para
su uso estandarizado.Como resultado, las empresas han implementado este standard en distintas
maneras.

XML

Lenguaje universal de marcado para documentos estructurados y datos en la web, mas amplio, mas
rico y mas dinámico que HTML. No solo es un lenguaje de marcado, sino también un metalenguaje
que permite describir otros lenguajes de marcado. Permite el uso ilimitado de los tipos de datos que
pueden utilizarse en Internet, lo cual resuelve los problemas que surgen entre las organizaciones que
deben intercambiar datos procedentes de standards distintos.

                                                                                                  26
8. Referencias

  Novedades en CF 2.0

  •   http://msdn.microsoft.com/library/default.asp?url=/library/en-
      us/dnnetcomp/html/whats_new_netcf2.asp

  Formularios y gráficos
  • http://msdn2.microsoft.com/en-us/library/hyc18s6t.aspx

  Controles
  • http://msdn2.microsoft.com/en-us/library/5c632yz4.aspx

  Desarrollo para SmartPhones
  • http://msdn2.microsoft.com/en-us/library/ms172541.aspx

  Diferencias
  • http://msdn2.microsoft.com/en-us/library/2weec7k5(en-US,VS.80).aspx

  Librerías de CF 2.0
  • http://www.mperfect.net/cfBcl/

  Soporte Framework y nuevas características
  • http://msdn2.microsoft.com/en-us/library/h1ek3akf.aspx

  Varios (SmartPhones con CF 2.0)
  • http://www.mentores.net/default.aspx?tabid=104&type=art&site=196&par
     entid=51

  Optimización
  • Presentación oficial de Microsoft acerca de CF .NET

                                                                          27
También puede leer