.NET Compact Framework 2.0

OpenNETCF.org es un repositorio de información y código fuente sobre Microsoft .NET Compact Framework. OpenNETCF.org empezó como un proyecto de código abierto para extender la funcionalidad de .Net 1.x. A partir del Smart Device Framework 2.0 el código fuente dejo de ser libre.

En el mismo sito de Microsoft hay referencias a ejemplos de aplicaciones móviles que usan las extensiones de OpenNETCF.

El articulo Building a Wi-Fi Discovery Application with the .NET Compact Framework 2.0 explica a detalle una aplicación que usa estas librerías e incluye código fuente. Es un buen ejemplo para empezar a ver el ciclo complete de una aplicación móvil no trivial.

La solución de muestra incluye dos proyectos. La aplicación en si, y el código fuente OpenNETCF referenciado en la misma. Al construir la solución en Visual Studio 2005 se marcan warnings pero los proyectos se construyen con éxito. Se puede probar la aplicación en una Pocket PC 2003. Si la tarjetea de WiFi esta desactivada la aplicación genera una excepción. No es una aplicación de grado comercial pero es una buena referencia de lo que se puede hacer.

El articulo Deploying .NET Compact Framework 2.0 Applications with .cab and .msi Files continua con este ejemplo y explica como hacer un proyecto de instalación.

En un proyecto para aplicaciones inteligentes, cada archivo se marca con una acción de generación que se define en la ventana Propiedades del modo siguiente:

  • Un archivo marcado como Compile, valor predeterminado para todos los archivos y formularios de código, compilará los archivos en el ensamblado resultante.
  • Un archivo marcado como Content permite el empaquetado del archivo en el archivo .cab y su implementación en el proyecto. Asimismo, resulta útil para la implementación de archivos de configuración XML y bases de datos SQL Server CE.
  • Un archivo marcado como None simplemente se ignora. Esta acción resulta útil para incluir documentación en el proyecto, como diagramas de Visio que no se deben implementar.
  • Un archivo marcado como Embedded Resource se incluye en el ensamblado ejecutable como un recurso. Esta acción permite que el código escrito extraiga el recurso mediante programación. Asimismo, resulta eficaz para empaquetar imágenes y archivos de secuencias de comandos que se pueden utilizar posteriormente en la aplicación.


Antes de pasar a construir la aplicación para dispositivos inteligentes y crear los archivos .cab para la implementación, no se debe olvidar cambiar el modo de generación del proyecto de depuración a liberación. Esto reducirá el tamaño del ejecutable en el dispositivo (hecho importante en el caso de los dispositivos inteligentes de almacenamiento restringido) y aumentará la velocidad de ejecución.

Para hacer un proyecto de instalación automatica es necesario efectuar los siguientes pasos:

1. Crear archivos .cab para cada dispositivo donde va a correr la aplicación. Un .cab de instalación puede contener un archivo setup.dll con código no administrado, y por eso se requiere un .cab diferente para cada familia de procesadores. Si la aplicación no requiere de este archivo, entonces un solo .cab es suficiente.

2. Agregar los archivos y entradas de registro de la aplicación a los .cab

3. Proveer el código de acciones especiales a ejecutar durante la instalación y desinstalación de la aplicación.

4. Registrar la aplicación con ActiveSync para que se pueda instalar de la PC de escritorio a la Pocket PC.

5. Empacar todo en un archivo .msi

El primer paso es agregar un proyecto
Other Project types->Setup and deployment->Smart Device Cab Project
a la solución.

Al construir el proyecto se generan 3 archivos un .cab, un .log, y un .inf. El archivo .inf tiene parámetros de instalación que serán usados por ActiveSync.

El .cab es suficiente para instalar una aplicación en la Pocket PC pero es posible agregar un proyecto de instalación de escritorio para simplificar el proceso para el usuario.

Para aplicaciones móviles, hay dos cosas que el instalador debe hacer. Debe presentarle al usuario las pantallas del asistente de instalación en la PC de escritorio y debe instalar la aplicación en la Pocket PC.

La instalación en el Pocket PC se hace a través una aplicación llamada CeAppMgr.exe que es parte de ActiveSync. CeAppMgr.exe requires un archivo .ini que se debe agregar manualmente. En nuestro caso el .ini contiene lo siguiente:

[CEAppManager]
Version = 1.0
Component = OpenNETCF WiFiDiscovery

[OpenNETCF WiFiDiscovery]
Description = Sample WiFi Network Discovery Application using the SDF
CabFiles = WiFiDiscovery.cab

Para activar el modo de depuración de CeAppMgr.exe es necesario meterle mano al Registry. Para los valientes

[HKLMSoftwareMicrosoftWindows CE ServicesAppMgr]
“ReportErrors”=dword:1

Existen algunos requerimientos que, aunque no son estrictamente necesarios técnicamente, son prácticas establecidas y necesarias para certificación.

Aplicaciones registradas con CeAppMgr deben estar en un subfolder de ActiveSync por ejemplo. Estos requerimientos los maneja el instalador utilizando variables predefinidas de Windows para mayor flexibilidad y para facilitar localización del software en varios idiomas. Para ejecutar estas acciones se agrega una clase de instalación.

Agregamos un proyecto de librerí­a de Windows a la solución de Visual Studio. A este proyecto le agregamos la installer class. Esta clase soporta eventos relacionados con el proceso de instalación y permite definir acciones previas y posteriores al proceso de instalación y al de desinstalación. Por ejemplo,

public CustomInstaller()
{
InitializeComponent();
this.BeforeInstall +=
new InstallEventHandler(CustomInstaller_BeforeInstall);
this.AfterInstall +=
new InstallEventHandler(CustomInstaller_AfterInstall);
this.BeforeUninstall +=
new InstallEventHandler(CustomInstaller_BeforeUninstall);
}

Es necesario definir constantes para usar dentro del código en términos de entradas en el Registry, bajo la llave HKLM.

De esta manera el código sigue siendo valido bajo distintos idiomas y versiones de Windows.

private const string CEAPPMGR_PATH =
@”SOFTWAREMicrosoftWindowsCurrentVersionApp PathsCEAPPMGR.EXE”;
private const string ACTIVESYNC_INSTALL_PATH =
@”SOFTWAREMicrosoftWindows CE Services”;
private const string INSTALLED_DIR = “InstalledDir”;
private const string CEAPPMGR_EXE_FILE = @”CEAPPMGR.EXE”;
private const string CEAPPMGR_INI_FILE = @”WiFiDiscovery.ini”;
private const string APP_SUBDIR = @”OpenNETCF WiFiDiscovery”;
private string TEMP_PATH =
Environment.SystemDirectory + @”TEMPWiFiDiscovery”;

El ultimo paso es crear el proyecto de instalación.

Other project types ->Setup and deployment->Setup project

Despues de crear el proyecto, realizamos las siguientes acciones:

1. Cambiar el nombre del archivo de salida.

2. Indicar la ubicación de un directorio para guardar archivos temporales. Este direcorio debe estar ubicado de acuerdo a lo que definimos en la clase de instalación.

3. Definir las propiedades del proyecto como compañí­a, nombre de aplicación, etc.

4. Agregar los archivos de salida del proyecto CAB

5. Agregar en la carpeta de aplicación la salida de la clase de instalación

6. Agregar Custom Action usando la clase de instalación

7. Agregar archivo .ini

8. Construir todos los proyectos en la solución

9. Probar el instalador

Para mayor detalle se pueden consultar los articulos originales en el sitio de Microsoft.

El articulo Developing and Deploying Pocket PC Setup Applications aunque obsoleto tiene información complementaria y discute el caso .Net 1.x

Antes de poder ejecutar la aplicación, es preciso instalar .NET Compact Framework en el dispositivo. Si la aplicación requiere SQL Server CE, también será necesario instalar el archivo .cab adecuado. Aunque ambos se instalan automáticamente al implementar la aplicación desde Visual Studio .NET mediante el menú Implementar o al depurar el dispositivo, en producción será necesario emplear un mecanismo diferente.

Como se mencionó anteriormente, los archivos .cab creados para un proyecto no incluyen los archivos .cab correspondientes a .NET Compact Framework o SQL Server CE. Aunque Pocket PC 2003, y dispositivos posteriores, suelen incluir .NET Compact Framework en ROM, será preciso agregar los archivos .cab específicos de la plataforma en cuestión en el caso en que dichos dispositivos no los incluyan. Un modo sencillo de llevar a cabo esta operación para .NET Compact Framework es descargar y ejecutar el redistribuible.

Referencia:

Patrones de implementación para Microsoft .NET Compact Framework

Google Privacy Policy

We’re getting rid of over 60 different privacy policies across Google and replacing them with one that’s a lot shorter and easier to read. Our new policy covers multiple products and features, reflecting our desire to create one beautifully simple and intuitive experience across Google.
We believe this stuff matters, so please take a few minutes to read our updated Privacy Policy and Terms of Service at http://www.google.com/policies. These changes will take effect on March 1, 2012. 

Got questions?
We’ve got answers.
Visit our FAQ at http://www.google.com/policies/faq to read more about the changes. (We figured our users might have a question or twenty-two.)

Redes sociales

En México, nueve de cada 10 internautas mayores de 15 años utilizan redes sociales, con un promedio de uso de 6.8 horas al mes por persona, lo que coloca al país dentro de los primeros lugares en el manejo de social media a nivel mundial, aseguró Ivan Marchant, líder de Country Manager México de comScore.

videojuego para Wii del Chavo del 8

Tras las múltiples reacciones al articulo sobre el lanzamiento del videojuego para Wii del Chavo del 8, en particular por la afirmación de que es el primer video­juego mexicano para una consola, algunos desarrolladores contactaron a este reportero y negaron la información.
“La industria de los videojuegos tiene años en existencia en México por más pequeña o grande que parezca y se han desarrollado muchos más videojuegos desde hace años, por lo tanto, me parece un insulto dichas afirmaciones”, opinó Mike Olvera, CEO de Alebrije Estudios.
Por su parte, Jorge Morales, CEO de Larva Game Studios, explicó: “Antes de Kaxan ya hemos desarrollado juegos para distintas plataformas en México. Hemos participado en ocho juegos, dos de ellos desarrollos completos para Xbox360, PS3, Wii, iPhone y Facebook”.
Incluso Morales aseguró: “Actualmente desarrollamos uno nuevo con propiedad intelectual para Xbox360 y PS3. Además, hay empresas como Slang Studio, Gran Tiki Games y Xibalba que también tienen experiencia”.
Sin embargo, Ricardo Gómez Quiñones, CEO de Kaxan Media Group, aseguró que son la primer empresa en hacer un videojuego 100% mexicano.
“Hay muchas compañías que hacen videojuegos, principalmente para teléfonos móviles, existen algunas de animación o que colaboran con compañías extranjeras que producen materiales para consolas… Pero nosotros, con El Chavo del 8, somos la primer compañía mexicana en desarrollar un videojuego completo”.
Algunos de los desarrolladores inconformes (y leyendo los comentarios en eleconomista.com.mx) ponen como ejemplos del “error” dos videojuegos “mexicanos”, que por cierto, tampoco lo son. Es el caso de Lucha Libre AAA: Héroes del Ring, que se hizo entre Colombia y Argentina.
Otro es Atrévete a soñar para Wii, una producción de Slang y Televisa Home Entertainment, pero no lo es a 100%, pues la historia y personajes es una adaptación de un concepto argentino.
En México se desarrollan video­juegos desde finales de los 90 y en la actualidad existen más de 30 estudios que se dedican a ello.
Donde más desarrolladores existen es en los estados de Baja California Norte, Jalisco, ciudad de México y Nuevo León.
El de México es el mercado de videojuegos más importante de América Latina y alcanza un valor superior a los 750 millones de dólares.
En el país existen más de 300 puntos de venta especializados en videojuegos, como son Game Rush, Game Planet y Gamers.
Lo relevante de toda la polémica generada por El Chavo del 8 es que la industria de los videojuegos en México se encuentra en crecimiento, cada vez hay más talento y más empresas comienzan a producir contenido de alta calidad. Tal vez no sea importante decidir si El Chavo del 8 para Wii es el primer videojuego 100% mexicano o si ya existen otros que puedan presumir lo mismo… ¿O usted cree que sí?
EN NÚMEROS
Los videojuegos en México
3 millones de dólares es la inversión de El Chavo del 8 para Wii.
750 millones de dólares es el valor aproximado del mercado de los videojuegos en México.
150 millones de pesos es el fondo de Promedia.
30 estudios mexicanos producen videojuegos para distintas plataformas.
300 puntos de venta de video­juegos existen en el país. En Blockbuster, 40% de los ingresos proviene de los videojuegos, no de la renta y venta de películas.
vgutierrez@eleconomista.com.mx

X Window Server

Xming is the leading [WWW]X Window Server for Microsoft XP/2008/Windows7. It is a fully featured X Server and is lean, fast, current, simple to install and because it is standalone native Microsoft Windows®, easily made portable (not needing a machine-specific installation).
Xming is totally secure when used with [WWW]SSH and optionally includes an enhanced PuTTY Link SSH client and a portable PuTTY replacement package. Xming can work completely independent of the Window’s registry when used with Xming-portablePuTTY.

http://www.ece.uvic.ca/computing/win-xsessions.shtml

Cómo Recuperar Correos Borrados En Outlook

Cómo Recuperar Correos Borrados En Outlook

Publicado por urpiano  Miércoles 25 de Abril de 2007

¿Nunca has borrado de manera definitiva un correo en Outlook y una vez borrado te das cuenta de que no debiste hacerlo? Se puede recuperar y hay software que lo hace, como OutlookFIX, pero este software es de pago. ¡¡Qué pague rita la cantadora!! Aquí vamos a ver cómo hacerlo de manera gratuita.

Soy poco amigo de utilizar las papeleras (informáticamente hablando, claro :-)), y suelo tener la costumbre de borrar, tanto en el Explorador de Windows como en Outlook, teniendo pulsada la tecla mayúsculas, de manera que se borra diréctamente, no pasa por la papelera. Este comportamiento no me produce problemas en Windows, pero sí en Outlook, ya que hay veces que, por retraso en el refresco de la aplicación al cambiar de carpeta, creo estar borrando un correo que no deseo y lo que en realidad borro es la carpeta. Cuando esto sucede, por suerte muy de Pascuas a Ramos, la forma de recuperar esa carpeta es la siguiente:

  1. Cerrar Outlook.
  2. Realizar una copia del archivo PST del que queremos recuperar lo borrado (por si las flies).
  3. Abrir el PST con un editor hexadecimal, cambiarle a cualquier valor el primer byte, guardar y cerrar el editor hexadecimal.
  4. Abrir la Herramienta de Reparación de la Bandeja de Entrada, ScanPST.exe que (siempre me pregunto porqué está tan escondida) se encuentra en %ProgramFiles%Archivos comunesSystemMSMAPI3082. En el caso de Office 2007 la ruta es mucho más lógica, pues está en %ProgramFiles%Microsoft OfficeOffice12.
  5. Seleccionamos el PST a reparar y lo reparamos
  6. Una vez reparado, abrimos Outlook y ¡¡Tachán!! recuperado lo perdido.
  7. Revisamos el resultado y si todo ha ido de manera satisfactoria, podemos borrar la copia del PST que hicimos, si así lo deseamos, claro.

La explicación de esto es porque un fichero PST no borra la información, sólo la marca como borrada, pero sigue estando ahí; solo se borrará “de verdad” cuando compactemos el PST. ScanPST cuando analiza un fichero PST y ve que está corrupto, realiza la reparación quitando las marcas de borrado que encuentre, con lo que una vez finalizada la reparación, lo borrado volverá a estar presente. Con el editor hexadecimal lo que hicimos fue corromper el PST y forzar, por tanto, a ScanPST a que nos desmarcase como borrados los elementos que así estuvieran.

http://urpiano.wordpress.com/2007/04/25/como-recuperar-correos-borrados-en-outlook/

Internet y la ciencia

Con solo una PC y conexión a Internet es posible participar en esfuerzos científicos de alcance global.

Explorar el universo

En el sitio www.galaxyzoo.org puedes ayudar a los astrónomos a explorar el universo. El sitio contiene un cuarto de millón de imágenes obtenidas por un telescopio robótico ( Sloan Digital Sky Survey) y voluntarios pueden ayudar a clasificar las imágenes.

La búsqueda de número primos

 GIMPS provee programas que se pueden usar como screen savers y buscan números primos. Inclusive hay recompensa económica para motivar el desarrollo de esta tecnología a través de EFF Cooperative Computing Awards para el que encuentre primero: