plataforma net

19
Este documento recopila información relacionada con la plataforma .NET; si bien la primera parte del documento hace un recorrido muy rápido por las generalidades de esta plataforma, en la segunda se entra en profundidad para examinar la parte específica, que es la relacionada con los dispositivos móviles. El documento ha sido conformado con información proveniente de varias fuentes todas ellas obtenidas en la Internet. Al comienzo de cada fragmento se especifica la dirección de donde fue obtenido. Los textos que aparecen en color verde, no están en el texto original; han sido agregados para dar claridad al texto ARQUITECTURA .NET PRIMERA PARTE .NET FRAMEWORK Arquitectura básica de la plataforma .Net. Descripción del Framework y sus principales componentes: Lenguajes, biblioteca de clases y CLR. Por Francisco Recio y David Provencio http://www.desarrolloweb.com/manuales/48/ La nueva tecnología de Microsoft ofrece soluciones a los problemas de programación actuales, como son la administración de código o la programación para Internet. Para aprovechar al máximo las características de .Net es necesario entender la arquitectura básica en la que está implementada esta tecnología y así beneficiarse de todas las características que ofrece esta nueva plataforma. El Framework de .Net es una infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta herramienta se ofrece un entorno de ejecución altamente distribuido, que permite crear aplicaciones robustas y escalables. Los principales componentes de este entorno son: Lenguajes de compilación Biblioteca de clases de .Net CLR (Common Language Runtime) Actualmente, el Framework de .Net es una plataforma no incluida en los diferentes sistemas operativos distribuidos por Microsoft, por lo que es necesaria su instalación previa a la ejecución

Upload: didierv

Post on 25-Jun-2015

1.178 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Plataforma net

Este documento recopila información relacionada con la plataforma .NET; si bien la primera

parte del documento hace un recorrido muy rápido por las generalidades de esta plataforma, en

la segunda se entra en profundidad para examinar la parte específica, que es la relacionada con

los dispositivos móviles.

El documento ha sido conformado con información proveniente de varias fuentes todas ellas

obtenidas en la Internet. Al comienzo de cada fragmento se especifica la dirección de donde fue

obtenido. Los textos que aparecen en color verde, no están en el texto original; han sido

agregados para dar claridad al texto

ARQUITECTURA .NET

PRIMERA PARTE

.NET FRAMEWORK

Arquitectura básica de la plataforma .Net. Descripción del Framework

y sus principales componentes: Lenguajes, biblioteca de clases y CLR.

Por Francisco Recio y David Provencio

http://www.desarrolloweb.com/manuales/48/

La nueva tecnología de Microsoft ofrece soluciones a los problemas de programación actuales,

como son la administración de código o la programación para Internet. Para aprovechar al

máximo las características de .Net es necesario entender la arquitectura básica en la que está

implementada esta tecnología y así beneficiarse de todas las características que ofrece esta

nueva plataforma.

El Framework de .Net es una infraestructura sobre la que se reúne todo un conjunto de

lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante esta

herramienta se ofrece un entorno de ejecución altamente distribuido, que permite crear

aplicaciones robustas y escalables. Los principales componentes de este entorno son:

Lenguajes de compilación

Biblioteca de clases de .Net

CLR (Common Language Runtime)

Actualmente, el Framework de .Net es una plataforma no incluida en los diferentes sistemas

operativos distribuidos por Microsoft, por lo que es necesaria su instalación previa a la ejecución

Page 2: Plataforma net

de programas creados mediante .Net. El Framework se puede descargar gratuitamente desde la

web oficial de Microsoft.

.Net Framework soporta múltiples lenguajes de programación y aunque cada lenguaje tiene sus

características propias, es posible desarrollar cualquier tipo de aplicación con cualquiera de estos

lenguajes. Existen más de 30 lenguajes adaptados a .Net, desde los más conocidos como C# (C

Sharp), Visual Basic o C++ hasta otros lenguajes menos conocidos como Perl o Cobol.

Common Language Runtime (CLR)

El CLR es el verdadero núcleo del Framework de .Net, ya que es el entorno de ejecución en el

que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de

servicios que ofrece el sistema operativo estándar Win32.

La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportados

por .Net en un mismo código, denominado código intermedio (MSIL, Microsoft Intermediate

Lenguaje). Para generar dicho código el compilador se basa en el Common Language

Specification (CLS) que determina las reglas necesarias para crear código MSIL compatible con

el CLR.

De esta forma, indistintamente de la herramienta de desarrollo utilizada y del lenguaje elegido,

el código generado es siempre el mismo, ya que el MSIL es el único lenguaje que entiende

directamente el CLR. Este código es transparente al desarrollo de la aplicación ya que lo genera

automáticamente el compilador.

Sin embargo, el código generado en MSIL no es código máquina y por tanto no puede ejecutarse

directamente. Se necesita un segundo paso en el que una herramienta denominada compilador

JIT (Just-In-Time) genera el código máquina real que se ejecuta en la plataforma que tenga la

computadora.

De esta forma se consigue con .Net cierta independencia de la plataforma, ya que cada

plataforma puede tener su compilador JIT y crear su propio código máquina a partir del código

MSIL.

La compilación JIT la realiza el CLR a medida que se invocan los métodos en el programa y, el

código ejecutable obtenido, se almacena en la memoria caché de la computadora, siendo

Page 3: Plataforma net

recompilado sólo cuando se produce algún cambio en el código fuente.

Biblioteca de clases de .Net

Cuando se está programando una aplicación muchas veces se necesitan realizar acciones como

manipulación de archivos, acceso a datos, conocer el estado del sistema, implementar

seguridad, etc. El Framework organiza toda la funcionalidad del sistema operativo en un espacio

de nombres jerárquico de forma que a la hora de programar resulta bastante sencillo encontrar

lo que se necesita.

Para ello, el Framework posee un sistema de tipos universal, denominado Common Type System

(CTS). Este sistema permite que el programador pueda interactuar los tipos que se incluyen en

el propio Framework (biblioteca de clases de .Net) con los creados por él mismo (clases). De

esta forma se aprovechan las ventajas propias de la programación orientada a objetos, como la

herencia de clases predefinidas para crear nuevas clases, o el polimorfismo de clases para

modificar o ampliar funcionalidades de clases ya existentes.

La biblioteca de clases de .Net Framework incluye, entre otros, tres componentes clave:

ASP.NET para construir aplicaciones y servicios Web.

Windows Forms para desarrollar interfaces de usuario.

ADO.NET para conectar las aplicaciones a bases de datos.

Page 4: Plataforma net

La forma de organizar la biblioteca de clases de .Net dentro del código es a través de los

espacios de nombres (namespaces), donde cada clase está organizada en espacios de nombres

según su funcionalidad. Por ejemplo, para manejar ficheros se utiliza el espacio de nombres

System.IO y si lo que se quiere es obtener información de una fuente de datos se utilizará el

espacio de nombres System.Data.

La principal ventaja de los espacios de nombres de .Net es que de esta forma se tiene toda la

bliblioteca de clases de .Net centralizada bajo el mismo espacio de nombres (System). Además,

desde cualquier lenguaje se usa la misma sintaxis de invocación, ya que a todos los lenguajes se

aplica la misma biblioteca de clases.

Ensamblados

Uno de los mayores problemas de las aplicaciones actuales es que en muchos casos tienen que

tratar con diferentes archivos binarios (DLL´s), elementos de registro, conectividad abierta a

bases de datos (ODBC), etc.

Para solucionarlo el Framework de .Net maneja un nuevo concepto denominado ensamblado. Los

ensamblados son ficheros con forma de EXE o DLL que contienen toda la funcionalidad de la

aplicación de forma encapsulada. Por tanto la solución al problema puede ser tan fácil como

copiar todos los ensamblados en el directorio de la aplicación.

Con los ensamblados ya no es necesario registrar los componentes de la aplicación. Esto se debe

a que los ensamblados almacenan dentro de sí mismos toda la información necesaria en lo que

se denomina el manifiesto del ensamblado. El manifiesto recoge todos los métodos y

propiedades en forma de meta-datos junto con otra información descriptiva, como permisos,

dependencias, etc.

Para gestionar el uso que hacen la aplicaciones de los ensamblados .Net utiliza la llamada caché

global de ensamblados (GAC, Global Assembly Cache). Así, .Net Framework puede albergar en el

GAC los ensamblados que puedan ser usados por varias aplicaciones e incluso distintas versiones

de un mismo ensamblado, algo que no era posible con el anterior modelo COM.

Page 5: Plataforma net

Algunas de las ventajas e inconvenientes de la plataforma .Net.

A continuación se resumen las ventajas más importantes que proporciona .Net Framework:

Código administrado: El CLR realiza un control automático del código para que éste

sea seguro, es decir, controla los recursos del sistema para que la aplicación se ejecute

correctamente.

Interoperabilidad multilenguaje: El código puede ser escrito en cualquier lenguaje

compatible con .Net ya que siempre se compila en código intermedio (MSIL).

Compilación just-in-time: El compilador JIT incluido en el Framework compila el

código intermedio (MSIL) generando el código máquina propio de la plataforma. Se

aumenta así el rendimiento de la aplicación al ser específico para cada plataforma.

Garbage collector: El CLR proporciona un sistema automático de administración de

memoria denominado recolector de basura (garbage collector). El CLR detecta cuándo el

programa deja de utilizar la memoria y la libera automáticamente. De esta forma el

programador no tiene por qué liberar la memoria de forma explícita aunque también sea

posible hacerlo manualmente (mediante el método disponse() liberamos el objeto para

que el recolector de basura lo elimine de memoria).

Seguridad de acceso al código: Se puede especificar que una pieza de código tenga

permisos de lectura de archivos pero no de escritura. Es posible aplicar distintos niveles

de seguridad al código, de forma que se puede ejecutar código procedente del Web sin

tener que preocuparse si esto va a estropear el sistema.

Despliegue: Por medio de los ensamblados resulta mucho más fácil el desarrollo de

aplicaciones distribuidas y el mantenimiento de las mismas. El Framework realiza esta

tarea de forma automática mejorando el rendimiento y asegurando el funcionamiento

correcto de todas las aplicaciones.

¿Todo son ventajas?

Procesos como la recolección de basura de .Net o la administración de código introducen factores

de sobrecarga que repercuten en la demanda de más requisitos del sistema.

El código administrado proporciona una mayor velocidad de desarrollo y mayor seguridad de que

el código sea bueno. En contrapartida el consumo de recursos durante la ejecución es mucho

mayor, aunque con los procesadores actuales esto cada vez es menos inconveniente.

Page 6: Plataforma net

El nivel de administración del código dependerá en gran medida del lenguaje que utilicemos para

programar. Por ejemplo, mientras que Visual Basic .Net es un lenguaje totalmente administrado,

C Sharp permite la administración de código de forma manual, siendo por defecto también un

lenguaje administrado. Mientras que C++ es un lenguaje no administrado en el que se tiene un

control mucho mayor del uso de la memoria que hace la aplicación

SEGUNDA PARTE

.NET COMPACT FRAMEWORK

http://es.wikipedia.org/wiki/.NET_Compact_Framework

Microsoft. NET Compact Framework (.NET CF) es una versión del .NET Framework que está

diseñado para funcionar en Windows CE basado en móviles/dispositivos embebidos tales como

PDAs, teléfonos móviles, los controladores de fábrica, set-top boxes, etc. .NET Compact

Framework utiliza algunas de las mismas bibliotecas de clases que utiliza.NET Framework como

también algunas bibliotecas diseñadas específicamente para dispositivos móviles, como Windows

CE InputPanel. Sin embargo, las bibliotecas no son copias exactas de .NET Framework. Las de

.NET Compact Framework escalan hacia abajo para ocupar menos espacio.

Es posible desarrollar aplicaciones que utilizan .NET Compact Framework en Visual Studio.NET

2003, en Visual Studio 2005, en Visual Studio 2008, en C# o Visual Basic.NET y en Lexico. Una

aplicación desarrollada con Basic4ppc también eventualmente se compila para el .NET CF. Las

aplicaciones resultantes están diseñadas para ejecutarse en un compilador especial JIT, en

dispositivos móviles de alto rendimiento.

.NET Compact Framework se puede ejecutar en equipos de escritorio con el pleno .NET

Framework, pero su interfaz de usuario no se puede actualizar para parecerse a la de una

aplicación desarrollada para PC de escritorio. Microsoft .NET Compact Framework 3.5

Redistributable contiene Common Language Runtime y las bibliotecas de clases creadas para

.NET Compact Framework. Además de la versión 3.5 de apoyo, también admite las aplicaciones

creadas para la versión 1.0 y 2.0. .NET Compact Framework 3.5 ofrece nuevas características

como Windows Communication Foundation (consulte la página http://msdn.microsoft.com/es-

es/library/ms731082(v=vs.90).aspx para mayor información), LINQ (consulte la página

http://msdn.microsoft.com/es-es/library/bb397897.aspx para mayor información), SoundPlayer

(consulte la página http://msdn.microsoft.com/es-es/library/ms171679(v=vs.80).aspx para

mayor información), nuevas herramientas de soporte en tiempo de ejecución, y muchas otras

características.

Page 7: Plataforma net

El desarrollo de interfaces de usuario (UI) se basa en Windows Forms que también está

disponible en la versión para escritorio del .NET Framework. Las UI se pueden crear fácilmente

con Visual Studio colocando los controles sobre el formulario. Características como enlace a

datos, también están disponibles en .NET CF. Una gran desventaja del desarrollo de UI es que

las aplicaciones modernas con soporte para ‘touch screen’ no son fáciles de implementar debido

principalmente al concepto de orientación a aplicaciones de escritorio, aunque ya están

disponibles algunas librerías para personalizar controles.

Una versión del. NET Compact Framework también está disponible para la consola Xbox 360. Si

bien las características del tiempo de ejecución igual a la normal .NET CF, sólo un subconjunto de

la biblioteca de clases está disponible. Esta versión es utilizada por XNA Framework para ejecutar

los juegos gestionados en la consola. Hay otras limitaciones tales como que el número de hilos

está limitado a 256. A diferencia de otras versiones de .NET CF, la versión de Xbox 360 permite

establecer la afinidad del procesador a los hilos creados. Los hilos están programados entre cuatro

procesos simultáneos en ejecución en el procesador de varios núcleos del sistema.

http://msdn.microsoft.com/es-es/library/f44bbwa1(v=VS.90).aspx para (Visual Studio 2008)

Arquitectura de .NET Compact Framework

.NET Compact Framework hereda la arquitectura .NET Framework completa de Common Language

Runtime para ejecutar código administrado. Proporciona interoperabilidad con el sistema operativo

Windows CE de un dispositivo para tener acceso a funciones nativas e integrar los componentes nativos

favoritos en una aplicación.

Puede ejecutar aplicaciones nativas y administradas de manera simultánea. El host del dominio de

aplicación, que también es una aplicación nativa, inicia una instancia del Common Language Runtime

para ejecutar el código administrado.

Arquitectura

En la ilustración siguiente se resume la arquitectura de la plataforma .NET Compact Framework.

Page 8: Plataforma net

Windows CE

.NET Compact Framework utiliza el sistema operativo Windows CE para la funcionalidad central y para

diversas características específicas de dispositivos. Varios tipos y ensamblados, como los de los

formularios Windows Forms, gráficos, dibujos y servicios Web, se han recompilado para que se ejecuten

eficazmente en los dispositivos, en lugar de copiarse de .NET Framework completo.

.NET Compact Framework ofrece la siguiente interoperabilidad con Windows CE:

Compatibilidad con seguridad nativa.

Integración completa con programas de instalación nativos.

Interoperabilidad con código nativo (lenguaje de máquina) mediante la interoperabilidad COM

(en la dirección http://msdn.microsoft.com/es-es/library/6bw51z5z(v=vs.80).aspx se explica

ampliamente este concepto) y la invocación de plataformas.

Common Language Runtime

También el Common Language Runtime (CLR) de .NET Compact Framework se ha vuelto a generar para

permitir que los recursos restringidos se ejecuten en memoria limitada y lograr un uso eficaz de la

energía.

Entre Windows CE y el Common Language Runtime existe una capa de adaptación de plataforma, que no

aparece en la ilustración, para asignar las interfaces de servicios y dispositivos necesarias para CLR y

Framework a los servicios e interfaces de Windows CE.

Framework

.NET Compact Framework es un subconjunto de .NET Framework pero también contiene características

diseñadas en exclusiva. Ofrece prestaciones y facilidad de uso para acercar a los desarrolladores de

aplicaciones nativas para dispositivos a .NET Framework, y para acercar a quienes desarrollan aplicaciones

de escritorio a los dispositivos.

Page 9: Plataforma net

Visual Studio

Desarrollar aplicaciones para dispositivos inteligentes con Microsoft Visual Studio 2005 es tan sencillo

como desarrollar aplicaciones para escritorio. El desarrollo de dispositivos inteligentes en Visual Studio

incluye un conjunto de emuladores y tipos de proyecto que cubren el desarrollo para Pocket PC,

Smartphone y Windows CE incrustado.

.NET Compact Framework admite alrededor del 28 por ciento de los espacios de nombres y clases del

entorno .NET Framework completo y representa aproximadamente el 8 por ciento de su tamaño. Para

mantener reducido el tamaño, sólo se admiten los miembros y clases más importantes.

Para obtener información sobre cómo utilizar la biblioteca de clases con el fin de determinar la

compatibilidad y las versiones de .NET Compact Framework, vea Cómo: Utilizar la biblioteca de clases de

.NET Compact Framework.

.NET Compact Framework no admite las siguientes tecnologías:

Funcionalidad de servidor

ASP.NET

Entorno remoto

Emisión de la reflexión

Desarrollo en C++

Desarrollo en J# y JSL

.NET Compact Framework no admite la seguridad de acceso a código en las versiones 1.0 y 2.0, pero se

planea incluirla en futuras versiones.

Los siguientes espacios de nombres y clases están disponibles sólo en .NET Compact Framework.

Espacio de nombres o tipo Para obtener más información

Microsoft.WindowsMobile.DirectX Programación de Direct3D Mobile

Microsoft.WindowsMobile.DirectX.Direct3D Programación de Direct3D Mobile

Microsoft.WindowsCE.Forms Cómo: Utilizar la clase MessageWindow

Cómo: Utilizar un control DocumentList

Cómo: Utilizar el componente HardwareButton

Cómo: Utilizar el componente InputPanel

Cómo: Establecer los modos de entrada de Pocket PC

Page 10: Plataforma net

Cómo: Enviar una notificación

Cómo: Establecer los modos de entrada de Smartphone

IrDAEndPoint

IrDACharacterSet

IrDAClient

IrDADeviceInfo

IrDAHints

IrDAListener

Conexiones de infrarrojos

Cómo: Realizar una transferencia de archivos por infrarrojos

System.Data.SqlServerCe Lo nuevo en SQL Server Compact Edition

Visual Studio y .NET Compact Framework

Microsoft .NET Compact Framework está plenamente integrado en Visual Studio, siempre que la opción

de instalación Programación de Smart Device esté seleccionada para el desarrollo en Visual Basic y Visual

C#. Esta opción está seleccionada de forma predeterminada. En la actualidad, .NET Compact Framework

no admite el desarrollo en C++. Vea Desarrollo de dispositivos inteligentes en los temas de Ayuda para

obtener más información sobre cómo desarrollar aplicaciones de dispositivos inteligentes en Visual

Studio.

Desarrollo e implementación de Visual Studio

Visual Studio proporciona el tipo de proyecto de Smart Device que permite desarrollar aplicaciones para

Pocket PC, Smartphone y otras plataformas basadas en Windows Embedded CE. Si no dispone de un

dispositivo inteligente, puede crear y probar las aplicaciones para este tipo de dispositivos mediante la

tecnología de emulación sin dejar el entorno de desarrollo integrado (IDE) de Visual Studio.

Para desarrollar aplicaciones en Visual Studio destinadas a dispositivos basados en Windows Mobile

instalando sus SDK. Instálelos en un equipo con Visual Studio. Cuando cree un nuevo proyecto, podrá

elegir el tipo de proyecto que corresponde a su versión del SDK de Windows Mobile.

Nota:

En algunas plataformas, como Windows Mobile 5.0 para Pocket PC, ya está presente la compatibilidad de

la plataforma en los proyectos del dispositivo y no es necesario instalar el SDK.

Page 11: Plataforma net

Dispositivos y plataformas admitidos por .NET Compact Framework

.NET Compact Framework está disponible como componente del sistema operativo en todos los

dispositivos inteligentes de Microsoft, incluidos los dispositivos Pocket PC, Pocket PC Phone Edition y

Smartphone, así como otros dispositivos que se ejecutan bajo Windows CE.

Lista de compatibilidades

La tabla siguiente muestra las plataformas y los dispositivos admitidos por .NET Compact Framework.

Versión de .NET

Compact

Framework

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 5,0 para Pocket

PC

1.0 Smartphone Windows Mobile 2003 para

Smartphone

Windows Mobile 5,0 para

Smartphone

1.0 Otros dispositivos para Windows

Embedded CE

Windows CE 4,1

Windows CE 4,2

Windows CE 5.0

2.0 Pocket PC Windows Mobile 2003 para Pocket

Page 12: Plataforma net

PC

Windows Mobile 2003 para Pocket

PC SE

Windows Mobile 5,0 para Pocket

PC

Windows Mobile 6 Professional

2.0 Smartphone Software Windows Mobile 5.0 para

Smartphone

Windows Mobile 6 Standard

2.0 Otros dispositivos para Windows

Embedded CE

Windows CE 4.2

Windows CE 5.0

Windows Embedded CE 6.0

3.5 Pocket PC Windows Mobile 2003 para Pocket

PC

Windows Mobile 2003 para Pocket

PC SE

Software Windows Mobile 5.0 para

Pocket PC

Windows Mobile 6 Professional

3.5 Smartphone Software Windows Mobile 5.0 para

Smartphone

Windows Mobile 6 Standard

3.5 Otros dispositivos para Windows

Embedded CE

Windows Embedded CE 6.0

Nota:

Page 13: Plataforma net

Para Smartphone, .NET Compact Framework versión 2.0 requiere que se ejecute Windows

Mobile versión 5.0 en el dispositivo. Para obtener información acerca de cómo se instalan

los SDK de Windows Mobile 5.0 para Pocket PC y Smartphone en Visual Studio, vea Visual

Studio y .NET Compact Framework.

Si .NET Compact Framework 2.0 aún no está presente en ROM, se puede instalar en RAM o en el almacén

persistente de los dispositivos Pocket PC 2003, Windows CE 5.0 y Windows Mobile 5.0 para Pocket PC y

Smartphones. .NET Compact Framework 3.5 no está actualmente disponible en ROM, pero se puede

instalar en RAM en los dispositivos compatibles mostrados en la tabla anterior.

Dominios de aplicación de .NET Compact Framework

Todas las aplicaciones de .NET Compact Framework se ejecutan dentro de una construcción en tiempo

de ejecución llamada dominio de aplicación, que es similar a un proceso del sistema operativo. .NET

Compact Framework asegura que todos los recursos administrados que utiliza una aplicación durante su

ejecución se liberan o se devuelven al sistema operativo del host cuando la aplicación finaliza.

Los dominios de aplicación ofrecen muchas de las ventajas de los procesos, como aislamiento de errores,

mayor solidez y seguridad, sin necesidad de asistencia del sistema operativo del host subyacente. El host

de un dominio de aplicación inicia una instancia del Common Language Runtime y, en sí mismo, es un

código nativo del sistema operativo. El Common Language Runtime puede vincularse de forma estática o

dinámica al host del dominio de aplicación.

.NET Compact Framework no impone restricciones al comportamiento del host del dominio de

aplicación. Dicho host puede ser una extensión sencilla de un shell interactivo ya existente que se utilice

para iniciar y detener la ejecución de programas. En los sistemas de aplicaciones dinámicas como

Windows, el host del dominio de aplicación puede ser una extensión del cargador de la aplicación, para

que las aplicaciones de .NET Compact Framework puedan iniciarse y detenerse mediante el mismo

mecanismo que una aplicación nativa.

Tamaño de almacenamiento de .NET Compact Framework

Para la versión 2.0 de .NET Compact Framework, el tamaño de almacenamiento es el siguiente:

5,5 MB (ROM), sin comprimir, en Windows Mobile 5.0. (La compresión del almacenamiento

persistente ha dejado de realizarse a partir de Windows Mobile 5.0.)

Para la versión 1.0 de .NET Compact Framework, el tamaño de almacenamiento es el siguiente:

1,55 MB (ROM), comprimidos, en Pocket PC 2000/2002

1,35MB (ROM), comprimidos, en Windows Mobile 2003 para Pocket PC y Windows Mobile 2003

para Smartphone.

Requisitos de ejecución de RAM

,5 MB+ (depende de la aplicación)

Page 14: Plataforma net

Tamaños de la aplicación típicos:

5 - 100 KB

Instalación de archivos CAB

Durante la instalación de .NET Compact Framework 2.0 SP 1, se pide que se realice la instalación en el

dispositivo o en una tarjeta de almacenamiento, si está presente. Si se opta por la instalación en la tarjeta

de almacenamiento, la caché de ensamblados global se coloca en una tarjeta de almacenamiento y los

archivos de Common Language Runtime (CLR) se colocan en el directorio \Windows. La caché de

ensamblados global requiere aproximadamente 4,5 MB de espacio y CLR requiere 1,0 MB.

El rendimiento de .NET Compact Framework varía para la instalación de los archivos CAB en función de la

implementación de memoria en el hardware y software. Para algunos dispositivos, se obtiene un mejor

rendimiento al instalar la caché de ensamblados global en una tarjeta de almacenamiento.

.NET MICRO FRAMEWORK

El.NET Micro Framework es .NET para dispositivos pequeños y de recursos limitados. Ofrece un entorno

de ejecución y desarrollos innovadores que trae la productividad de las herramientas informáticas

modernas para esta clase de dispositivos completos.

Para los actuales desarrolladores .NET, esto significa que ahora pueden crear aplicaciones que se ejecutan

en una gama de dispositivos específicos como control remoto para PC y servidores y aplicaciones en la

nube, todos con el mismo modelo de programación y herramientas.

Para los desarrolladores de Embedded actuales, esto significa que ahora pueden aprovechar la

productividad que se han logrado en el escritorio y reducir su tiempo de salida al mercado.

El.NET Micro Framework es una experiencia totalmente integrada de Visual Studio trae un sistema de

desarrollo productivo y confiable para el mundo incrustado.

Con.NET Framework Micro, usted puede:

Desarrollar fácilmente aplicaciones complejas, poderosas e interactivas

Conectar los dispositivos de forma segura sobre protocolos con cables o inalámbricos

Desarrollar soluciones confiables y más rápidas a menor costo

Desarrollar soluciones completas mediante .NET, incluyendo la nube, dispositivos y servidores

Page 15: Plataforma net

Para obtener una información más completa vaya a la dirección http://msdn.microsoft.com/en-us/netframework/bb278106

A continuación se listan algunos consejos para tener en cuenta al momento de hacer desarrollo en la

plataforma .NET para móviles

Cómo Mejorar el rendimiento

Las prácticas de programación siguientes pueden ahorrar memoria y aumentar el rendimiento de las

aplicaciones para dispositivos.

Para ahorrar memoria con formularios Windows Forms y gráficos

Utilice los métodos BeginUpdate y EndUpdate en los controles que los proporcionen, como

ComboBox, ListBox, ListView, ToolStripComboBox y TreeView.

Utilice los métodos SuspendLayout y ResumeLayout al cambiar la posición de los controles.

Cargue formularios adicionales en segundo plano y rellene los controles con datos antes de

utilizar el método Show.

Limite el código de control de eventos para realizar sólo las tareas básicas. De esta forma pueden

proseguir los procesos pendientes.

Utilice un mapa de bits fuera de la pantalla. Para obtener un ejemplo, vea Cómo: Dibujar

imágenes fuera de la pantalla.

Reemplace los métodos OnKeyDown, OnKeyPress y OnKeyUp en los controles en vez de agregar

los controladores de eventos clave.

Para ahorrar memoria con datos y cadenas

Utilice las variables de tipo entero (Int32 o Int64) en bucles for en vez de las variables de objeto.

Evite el uso del método ToString de una enumeración por el impacto que tiene en el rendimiento

al buscar por tablas de metadatos.

Evite los errores OutOfMemoryException. El Common Language Runtime puede producir esta

excepción si no hay suficiente memoria que pueda asignarse para fines internos o para nuevas

instancias de objetos. Para evitar esta excepción, evite programar métodos extensos que

consuman 64 o más kilobytes de memoria.

Quite System.SR.dll, que contiene las cadenas de mensajes de error para los cuadros de diálogo

de excepciones. Puede implementar la aplicación sin este archivo para ahorrar memoria. .NET

Page 16: Plataforma net

Compact Framework carga dinámicamente las cadenas de error contenidas en System.SR.dll, si

este archivo está presente.

Si el archivo .dll no está presente en el dispositivo, todas las excepciones contienen el mensaje

"No se puede cargar el ensamblado de recurso". No obstante, durante el desarrollo siempre es útil

agregar una referencia a System.SR.dll en el proyecto de Microsoft Visual Studio 2005, para poder

ver mensajes de excepción con significado.

Las cadenas son inmutables; por tanto, se crea un nuevo objeto String cada vez que modifique la

cadena. Considere usar StringBuilder al construir una cadena que se modificará a menudo.

Utilice el método ParseExact para DateTime si conoce el formato exacto utilizado para la

serialización DateTime. De lo contrario, el analizador DateTime intentará aplicar secuencialmente

varios formatos específicos de la referencia cultural.

Limite el número de objetos SqlCeCommand abiertos y elimínelos al finalizar.

Para ahorrar memoria al interoperar con código nativo

En operaciones de invocación de plataforma, utilice tipos que puedan representarse en bits o

bytes que tienen una representación común en memorias tanto administradas como no

administradas, por ejemplo Int32 o IntPtr. Los tipos de valores representables como bits o bytes

mayores que 32 bits se pasan más rápidamente por referencia que por valor. Para obtener más

información sobre tipos representables como bits o bytes, vea Tipos que pueden representarse

como bits o bytes en .NET Compact Framework.

Utilice los atributos InAttribute y OutAttribute para los argumentos de la firma de función con el

fin de reducir el cálculo innecesario de referencias.

Utilice los métodos de la clase Marshal para realizar conversiones manualmente entre IntPtr y

objetos administrados, como PtrToStructure, PtrToStringBSTR, GetObjectForNativeVariant y

GetObjectForIUnknown.

Utilice los métodos Prelink y PrelinkAll para provocar la compilación JIT del código auxiliar que

admita llamadas nativas a administradas.

Si espera que el objeto COM nativo devuelva S_FALSE como caso habitual u otros valores que no

sean S_OK HRESULT, establezca el campo PreserveSig en true y haga que la firma administrada

coincida con la nativa. De esta forma, se evita la sobrecarga de un bloque try/catch necesario

cuando el motor en tiempo de ejecución traduce los valores HRESULT a excepciones en las

llamadas COM.

Trabaje todo lo que pueda en una llamada de invocación de plataforma en vez de usar varias

llamadas.

Para ahorrar memoria en las colecciones

Utilice los indizadores si la colección está basada en una matriz.

Siempre que sea posible, especifique el tamaño de la colección, puesto que si se cambia el

tamaño dinámicamente, se puede incrementar muchísimo el espacio libre de

almacenamiento.

Utilice colecciones genéricas para evitar sobrecargas de conversiones boxing y unboxing de

los tipos de valores. Si define su propia colección optimizada, obtendrá el máximo

rendimiento.

Page 17: Plataforma net

Para ahorrar memoria en XML

Utilice XmlTextReader y XmlTextWriter en lugar de XmlDocument, que utiliza más memoria.

Especifique la configuración de XmlReaderSettings y XmlWriterSettings para mejorar el

rendimiento. Los valores de las propiedades IgnoreWhitespace y IgnoreComments, si se

pueden aplicar, pueden mejorar significativamente el rendimiento.

Utilice las codificaciones de caracteres de UTF-8, ASCII y UTF-16, que son más rápidas que las

de las páginas de códigos ANSI y Windows.

Evite utilizar un esquema para analizar, ya que se requiere trabajo de validación adicional.

Asigne las columnas como atributos y utilice un DataSet con tipo al rellenar código fuente

XML desde un formulario DataSet.

Evite lo siguiente al rellenar el formulario DataSet:

Interferencia de esquema.

Tablas anidadas.

Varias columnas DateTime. Para obtener un rendimiento mejor, utilice el valor de la

propiedad Ticks en su lugar.

Las instrucciones siguientes mejoran el rendimiento al utilizar deserialización XML:

Mantenga los nombres de los elementos y atributos lo más cortos posible ya que se

debe validar cada carácter.

XML basado en datos de atributo es más rápido que XML basado en datos de

elemento.

Utilice el método System.Xml.XmlNodeReader.Skip cuando se pueda aplicar.

Considere la serialización binaria cuando el rendimiento sea algo básico.

Utilice una instancia de XmlSerializer por tipo de serialización XML para reducir el período de

tiempo transcurrido buscando metadatos.

Puesto que serializar grandes cantidades de XML puede consumir toda la memoria,

considere la creación de un mecanismo de serialización binaria personalizado en su lugar,

mediante BinaryReader y BinaryWriter.

Para ahorrar memoria al utilizar un servicio Web

Utilice un DiffGram al leer y escribir un DataSet. Para obtener más información, vea

DiffGrams.

Guarde un DataSet remoto y su esquema en el dispositivo como XML.

Efectúe una llamada simple al método del servicio Web mientras aparece la pantalla de inicio

porque la primera llamada es más lenta que las posteriores.

Tenga cuidado al controlar los errores de red y datos.

En algunos casos, se puede obtener un rendimiento mejor si se serializa manualmente

DataSet como cadena XML antes de realizar una llamada a un servicio Web.

Para ahorrar memoria en programación avanzada

Procese las operaciones grandes de forma asincrónica.

Evite llamadas virtuales. Las llamadas virtuales del motor en tiempo de ejecución de .NET

Compact Framework son aproximadamente un 30 por ciento más lentas que las llamadas

estáticas o a instancias. .NET Compact Framework no utiliza vtables a causa de los recursos

limitados; por tanto, se debe llamar a los métodos recorriendo la jerarquía de clases e

interfaces, pero esta operación es cara. .NET Compact Framework mantiene una caché de

Page 18: Plataforma net

llamadas virtuales resueltas; por consiguiente, no se necesita reinterpretación en la mayoría

de las llamadas de casos.

Utilice campos en lugar de propiedades siempre que sea posible.

Reemplace los métodos GetHashCode y Equals al definir un tipo de valor. Si no se

reemplazan, el motor en tiempo de ejecución utiliza las versiones generalizadas de estos

métodos en la clase base ValueType.

Tenga cuidado con la reflexión. El uso de la reflexión con clases sin instancias, con fines de

investigación, puede repercutir en el rendimiento de los objetos con instancias de la

aplicación.

Asegúrese de que los recursos administrados tienen los nombres de tipo completos y son

correctos en el archivo RESX. Deben tener la versión y los campos PublicKeyToken correctos.

El esfuerzo por encontrar al suplente más adecuado para un tipo especificado

incorrectamente se refleja en el rendimiento.

Tenga en cuenta que, en algunos casos, si se leen los datos de la aplicación del archivo

directamente, puede ser suficiente y más eficaz que utilizar ResourceManager.

ResourceManager puede comprobar varias ubicaciones del sistema de archivos para

encontrar un ensamblado satélite que coincida mejor antes de ubicar el binario de recursos.

Utilice las herramientas adecuadas para el trabajo.

Vea también otras sugerencias siguiendo el vínculo Temas Cómo... de .NET Compact Framework

El vínculo a continuación le permitirá obtener temas acerca de códigos de ejemplo y

procedimientos para desarrollar aplicaciones en esta plataforma.

http://www.desarrolloweb.com/articulos/1681.php

Uno de los componentes de la plataforma .NET CF que utilizaremos en nuestro

proyecto de formación son los Smart Clients (Clientes Inteligentes): Son dispositivos muy

variados. Lo que los hace 'Smart' o inteligentes es su capacidad para hacer uso de servicios

Web.

Sus características son:

Permiten acceder a la información en el formato apropiado, en cualquier momento y

lugar.

Hacen uso de Servicios Web.

Optimizan de distintas maneras la forma en que la información es presentada y

organizada. Por ejemplo: Pueden convertir texto en sonido en un celular o reconocer la

escritura en un TabletPC.

Proveen de una interface sencilla y natural para que el usuario acceda a la información.

Pueden utilizar la identidad del usuario, su perfil y datos para adaptar la información que

es presentada.

Page 19: Plataforma net

Pueden reconocer la presencia de otros dispositivos e intercambiar información.

Pueden adaptarse a las características de la red donde están. Por ejemplo la velocidad

de transmisión.

Tienen capacidad de procesamiento propio, y distribuyen el procesamiento en la red

haciendo uso de los servicios Web.

Ejemplo de éstos son:

PocketPC (PC de bolsillo)

SmartPhone (Teléfono Inteligente)

HandHelds

TabletPC

XBox (Consola de juegos de Microsoft)

En un computador móvil (PocketPC, PDA, Smartphone) ocurre:

1. Sobre el hardware está el software y en éste lo central es el Sistema Operativo del cual solo un

caso es Windows CE.

2. Sobre Windows está la plataforma .NET compacta (CF o Compact Framework .NET) o Windows

Mobile.

3. Sobre el Sistema operativo o sobre la plataforma están los programas más generales.