Plataforma net

1,392 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,392
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Plataforma net

  1. 1. Este documento recopila información relacionada con la plataforma .NET; si bien la primeraparte del documento hace un recorrido muy rápido por las generalidades de esta plataforma, enla segunda se entra en profundidad para examinar la parte específica, que es la relacionada conlos dispositivos móviles.El documento ha sido conformado con información proveniente de varias fuentes todas ellasobtenidas en la Internet. Al comienzo de cada fragmento se especifica la dirección de donde fueobtenido. Los textos que aparecen en color verde, no están en el texto original; han sidoagregados para dar claridad al texto ARQUITECTURA .NET PRIMERA PARTE.NET FRAMEWORKArquitectura básica de la plataforma .Net. Descripción del Frameworky sus principales componentes: Lenguajes, biblioteca de clases y CLR.Por Francisco Recio y David Provenciohttp://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 almá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 estanueva plataforma.El Framework de .Net es una infraestructura sobre la que se reúne todo un conjunto delenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante estaherramienta se ofrece un entorno de ejecución altamente distribuido, que permite crearaplicaciones 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 sistemasoperativos distribuidos por Microsoft, por lo que es necesaria su instalación previa a la ejecución
  2. 2. de programas creados mediante .Net. El Framework se puede descargar gratuitamente desde laweb oficial de Microsoft..Net Framework soporta múltiples lenguajes de programación y aunque cada lenguaje tiene suscaracterísticas propias, es posible desarrollar cualquier tipo de aplicación con cualquiera de estoslenguajes. Existen más de 30 lenguajes adaptados a .Net, desde los más conocidos como C# (CSharp), 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 elque se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto deservicios que ofrece el sistema operativo estándar Win32.La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportadospor .Net en un mismo código, denominado código intermedio (MSIL, Microsoft IntermediateLenguaje). Para generar dicho código el compilador se basa en el Common LanguageSpecification (CLS) que determina las reglas necesarias para crear código MSIL compatible conel 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 entiendedirectamente el CLR. Este código es transparente al desarrollo de la aplicación ya que lo generaautomáticamente el compilador.Sin embargo, el código generado en MSIL no es código máquina y por tanto no puede ejecutarsedirectamente. Se necesita un segundo paso en el que una herramienta denominada compiladorJIT (Just-In-Time) genera el código máquina real que se ejecuta en la plataforma que tenga lacomputadora.De esta forma se consigue con .Net cierta independencia de la plataforma, ya que cadaplataforma puede tener su compilador JIT y crear su propio código máquina a partir del códigoMSIL.La compilación JIT la realiza el CLR a medida que se invocan los métodos en el programa y, elcódigo ejecutable obtenido, se almacena en la memoria caché de la computadora, siendo
  3. 3. recompilado sólo cuando se produce algún cambio en el código fuente.Biblioteca de clases de .NetCuando se está programando una aplicación muchas veces se necesitan realizar acciones comomanipulación de archivos, acceso a datos, conocer el estado del sistema, implementarseguridad, etc. El Framework organiza toda la funcionalidad del sistema operativo en un espaciode nombres jerárquico de forma que a la hora de programar resulta bastante sencillo encontrarlo 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 enel propio Framework (biblioteca de clases de .Net) con los creados por él mismo (clases). Deesta forma se aprovechan las ventajas propias de la programación orientada a objetos, como laherencia de clases predefinidas para crear nuevas clases, o el polimorfismo de clases paramodificar 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.
  4. 4. La forma de organizar la biblioteca de clases de .Net dentro del código es a través de losespacios de nombres (namespaces), donde cada clase está organizada en espacios de nombressegún su funcionalidad. Por ejemplo, para manejar ficheros se utiliza el espacio de nombresSystem.IO y si lo que se quiere es obtener información de una fuente de datos se utilizará elespacio de nombres System.Data.La principal ventaja de los espacios de nombres de .Net es que de esta forma se tiene toda labliblioteca 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 seaplica la misma biblioteca de clases.EnsambladosUno de los mayores problemas de las aplicaciones actuales es que en muchos casos tienen quetratar con diferentes archivos binarios (DLL´s), elementos de registro, conectividad abierta abases de datos (ODBC), etc.Para solucionarlo el Framework de .Net maneja un nuevo concepto denominado ensamblado. Losensamblados son ficheros con forma de EXE o DLL que contienen toda la funcionalidad de laaplicación de forma encapsulada. Por tanto la solución al problema puede ser tan fácil comocopiar 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 debea que los ensamblados almacenan dentro de sí mismos toda la información necesaria en lo quese denomina el manifiesto del ensamblado. El manifiesto recoge todos los métodos ypropiedades 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 elGAC los ensamblados que puedan ser usados por varias aplicaciones e incluso distintas versionesde un mismo ensamblado, algo que no era posible con el anterior modelo COM.
  5. 5. 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 factoresde 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 queel código sea bueno. En contrapartida el consumo de recursos durante la ejecución es muchomayor, aunque con los procesadores actuales esto cada vez es menos inconveniente.
  6. 6. El nivel de administración del código dependerá en gran medida del lenguaje que utilicemos paraprogramar. 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 unlenguaje administrado. Mientras que C++ es un lenguaje no administrado en el que se tiene uncontrol mucho mayor del uso de la memoria que hace la aplicación SEGUNDA PARTE.NET COMPACT FRAMEWORKhttp://es.wikipedia.org/wiki/.NET_Compact_FrameworkMicrosoft. 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 comoPDAs, teléfonos móviles, los controladores de fábrica, set-top boxes, etc. .NET CompactFramework utiliza algunas de las mismas bibliotecas de clases que utiliza.NET Framework comotambién algunas bibliotecas diseñadas específicamente para dispositivos móviles, como WindowsCE 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.NET2003, en Visual Studio 2005, en Visual Studio 2008, en C# o Visual Basic.NET y en Lexico. Unaaplicación desarrollada con Basic4ppc también eventualmente se compila para el .NET CF. Lasaplicaciones resultantes están diseñadas para ejecutarse en un compilador especial JIT, endispositivos móviles de alto rendimiento..NET Compact Framework se puede ejecutar en equipos de escritorio con el pleno .NETFramework, pero su interfaz de usuario no se puede actualizar para parecerse a la de unaaplicación desarrollada para PC de escritorio. Microsoft .NET Compact Framework 3.5Redistributable 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 aplicacionescreadas para la versión 1.0 y 2.0. .NET Compact Framework 3.5 ofrece nuevas característicascomo 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áginahttp://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 paramayor información), nuevas herramientas de soporte en tiempo de ejecución, y muchas otrascaracterísticas.
  7. 7. 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ácilmentecon Visual Studio colocando los controles sobre el formulario. Características como enlace adatos, también están disponibles en .NET CF. Una gran desventaja del desarrollo de UI es quelas aplicaciones modernas con soporte para ‘touch screen’ no son fáciles de implementar debidoprincipalmente al concepto de orientación a aplicaciones de escritorio, aunque ya estándisponibles algunas librerías para personalizar controles.Una versión del. NET Compact Framework también está disponible para la consola Xbox 360. Sibien las características del tiempo de ejecución igual a la normal .NET CF, sólo un subconjunto dela biblioteca de clases está disponible. Esta versión es utilizada por XNA Framework para ejecutarlos juegos gestionados en la consola. Hay otras limitaciones tales como que el número de hilosestá limitado a 256. A diferencia de otras versiones de .NET CF, la versión de Xbox 360 permiteestablecer la afinidad del procesador a los hilos creados. Los hilos están programados entre cuatroprocesos 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 LanguageRuntime para ejecutar código administrado. Proporciona interoperabilidad con el sistema operativoWindows CE de un dispositivo para tener acceso a funciones nativas e integrar los componentes nativosfavoritos en una aplicación.Puede ejecutar aplicaciones nativas y administradas de manera simultánea. El host del dominio deaplicación, que también es una aplicación nativa, inicia una instancia del Common Language Runtimepara ejecutar el código administrado.ArquitecturaEn la ilustración siguiente se resume la arquitectura de la plataforma .NET Compact Framework.
  8. 8. Windows CE.NET Compact Framework utiliza el sistema operativo Windows CE para la funcionalidad central y paradiversas características específicas de dispositivos. Varios tipos y ensamblados, como los de losformularios Windows Forms, gráficos, dibujos y servicios Web, se han recompilado para que se ejecuteneficazmente 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 RuntimeTambién el Common Language Runtime (CLR) de .NET Compact Framework se ha vuelto a generar parapermitir que los recursos restringidos se ejecuten en memoria limitada y lograr un uso eficaz de laenergía.Entre Windows CE y el Common Language Runtime existe una capa de adaptación de plataforma, que noaparece en la ilustración, para asignar las interfaces de servicios y dispositivos necesarias para CLR yFramework a los servicios e interfaces de Windows CE.Framework.NET Compact Framework es un subconjunto de .NET Framework pero también contiene característicasdiseñadas en exclusiva. Ofrece prestaciones y facilidad de uso para acercar a los desarrolladores deaplicaciones nativas para dispositivos a .NET Framework, y para acercar a quienes desarrollan aplicacionesde escritorio a los dispositivos.
  9. 9. Visual StudioDesarrollar aplicaciones para dispositivos inteligentes con Microsoft Visual Studio 2005 es tan sencillocomo desarrollar aplicaciones para escritorio. El desarrollo de dispositivos inteligentes en Visual Studioincluye 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 delentorno .NET Framework completo y representa aproximadamente el 8 por ciento de su tamaño. Paramantener 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 lacompatibilidad 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 seplanea 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ónMicrosoft.WindowsMobile.DirectX Programación de Direct3D MobileMicrosoft.WindowsMobile.DirectX.Direct3D Programación de Direct3D MobileMicrosoft.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
  10. 10. Cómo: Enviar una notificación Cómo: Establecer los modos de entrada de SmartphoneIrDAEndPoint Conexiones de infrarrojosIrDACharacterSet Cómo: Realizar una transferencia de archivos por infrarrojosIrDAClientIrDADeviceInfoIrDAHintsIrDAListenerSystem.Data.SqlServerCe Lo nuevo en SQL Server Compact EditionVisual Studio y .NET Compact FrameworkMicrosoft .NET Compact Framework está plenamente integrado en Visual Studio, siempre que la opciónde instalación Programación de Smart Device esté seleccionada para el desarrollo en Visual Basic y VisualC#. Esta opción está seleccionada de forma predeterminada. En la actualidad, .NET Compact Frameworkno admite el desarrollo en C++. Vea Desarrollo de dispositivos inteligentes en los temas de Ayuda paraobtener más información sobre cómo desarrollar aplicaciones de dispositivos inteligentes en VisualStudio.Desarrollo e implementación de Visual StudioVisual Studio proporciona el tipo de proyecto de Smart Device que permite desarrollar aplicaciones paraPocket PC, Smartphone y otras plataformas basadas en Windows Embedded CE. Si no dispone de undispositivo inteligente, puede crear y probar las aplicaciones para este tipo de dispositivos mediante latecnologí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 Mobileinstalando 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 dela plataforma en los proyectos del dispositivo y no es necesario instalar el SDK.
  11. 11. Dispositivos y plataformas admitidos por .NET Compact Framework.NET Compact Framework está disponible como componente del sistema operativo en todos losdispositivos inteligentes de Microsoft, incluidos los dispositivos Pocket PC, Pocket PC Phone Edition ySmartphone, así como otros dispositivos que se ejecutan bajo Windows CE.Lista de compatibilidadesLa tabla siguiente muestra las plataformas y los dispositivos admitidos por .NET Compact Framework.Versión de .NET Dispositivo PlataformaCompactFramework1.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 PC1.0 Smartphone Windows Mobile 2003 para Smartphone Windows Mobile 5,0 para Smartphone1.0 Otros dispositivos para Windows Windows CE 4,1 Embedded CE Windows CE 4,2 Windows CE 5.02.0 Pocket PC Windows Mobile 2003 para Pocket
  12. 12. PC Windows Mobile 2003 para Pocket PC SE Windows Mobile 5,0 para Pocket PC Windows Mobile 6 Professional2.0 Smartphone Software Windows Mobile 5.0 para Smartphone Windows Mobile 6 Standard2.0 Otros dispositivos para Windows Windows CE 4.2 Embedded CE Windows CE 5.0 Windows Embedded CE 6.03.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 Professional3.5 Smartphone Software Windows Mobile 5.0 para Smartphone Windows Mobile 6 Standard3.5 Otros dispositivos para Windows Windows Embedded CE 6.0 Embedded CE Nota:
  13. 13. 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énpersistente de los dispositivos Pocket PC 2003, Windows CE 5.0 y Windows Mobile 5.0 para Pocket PC ySmartphones. .NET Compact Framework 3.5 no está actualmente disponible en ROM, pero se puedeinstalar en RAM en los dispositivos compatibles mostrados en la tabla anterior.Dominios de aplicación de .NET Compact FrameworkTodas las aplicaciones de .NET Compact Framework se ejecutan dentro de una construcción en tiempode ejecución llamada dominio de aplicación, que es similar a un proceso del sistema operativo. .NETCompact Framework asegura que todos los recursos administrados que utiliza una aplicación durante suejecució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 hostde un dominio de aplicación inicia una instancia del Common Language Runtime y, en sí mismo, es uncódigo nativo del sistema operativo. El Common Language Runtime puede vincularse de forma estática odinámica al host del dominio de aplicación..NET Compact Framework no impone restricciones al comportamiento del host del dominio deaplicación. Dicho host puede ser una extensión sencilla de un shell interactivo ya existente que se utilicepara iniciar y detener la ejecución de programas. En los sistemas de aplicaciones dinámicas comoWindows, el host del dominio de aplicación puede ser una extensión del cargador de la aplicación, paraque las aplicaciones de .NET Compact Framework puedan iniciarse y detenerse mediante el mismomecanismo que una aplicación nativa.Tamaño de almacenamiento de .NET Compact FrameworkPara 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)
  14. 14. Tamaños de la aplicación típicos: 5 - 100 KBInstalación de archivos CABDurante la instalación de .NET Compact Framework 2.0 SP 1, se pide que se realice la instalación en eldispositivo o en una tarjeta de almacenamiento, si está presente. Si se opta por la instalación en la tarjetade almacenamiento, la caché de ensamblados global se coloca en una tarjeta de almacenamiento y losarchivos de Common Language Runtime (CLR) se colocan en el directorio Windows. La caché deensamblados 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 laimplementación de memoria en el hardware y software. Para algunos dispositivos, se obtiene un mejorrendimiento al instalar la caché de ensamblados global en una tarjeta de almacenamiento..NET MICRO FRAMEWORKEl.NET Micro Framework es .NET para dispositivos pequeños y de recursos limitados. Ofrece un entornode ejecución y desarrollos innovadores que trae la productividad de las herramientas informáticasmodernas para esta clase de dispositivos completos.Para los actuales desarrolladores .NET, esto significa que ahora pueden crear aplicaciones que se ejecutanen una gama de dispositivos específicos como control remoto para PC y servidores y aplicaciones en lanube, todos con el mismo modelo de programación y herramientas.Para los desarrolladores de Embedded actuales, esto significa que ahora pueden aprovechar laproductividad 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 dedesarrollo productivo y confiable para el mundo incrustado.Con.NET Framework Micro, usted puede:Desarrollar fácilmente aplicaciones complejas, poderosas e interactivasConectar los dispositivos de forma segura sobre protocolos con cables o inalámbricosDesarrollar soluciones confiables y más rápidas a menor costoDesarrollar soluciones completas mediante .NET, incluyendo la nube, dispositivos y servidores
  15. 15. Para obtener una información más completa vaya a la dirección http://msdn.microsoft.com/en-us/netframework/bb278106A continuación se listan algunos consejos para tener en cuenta al momento de hacer desarrollo en laplataforma .NET para móvilesCómo Mejorar el rendimientoLas prácticas de programación siguientes pueden ahorrar memoria y aumentar el rendimiento de lasaplicaciones 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
  16. 16. 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.
  17. 17. 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
  18. 18. 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 FrameworkEl vínculo a continuación le permitirá obtener temas acerca de códigos de ejemplo yprocedimientos para desarrollar aplicaciones en esta plataforma.http://www.desarrolloweb.com/articulos/1681.phpUno de los componentes de la plataforma .NET CF que utilizaremos en nuestroproyecto de formación son los Smart Clients (Clientes Inteligentes): Son dispositivos muyvariados. Lo que los hace Smart o inteligentes es su capacidad para hacer uso de serviciosWeb.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.
  19. 19. 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 uncaso es Windows CE.2. Sobre Windows está la plataforma .NET compacta (CF o Compact Framework .NET) o WindowsMobile.3. Sobre el Sistema operativo o sobre la plataforma están los programas más generales.

×