Recientemente me encontrado con un proyecto en Codeplex para la utlización de servicios bajo Windows Mobile de Peter Nowak llamado Managed Services for Windows Mobile. Se trata de una librería bajo código administrado que permite la creación de Servicios de forma aproximada a como lo hace Windows Desktop.
Entre sus características destaca:
- Para utilizar esta libreria no se requiere de acceso a P/Invoke.
- Está desarrollada en .NET CF 2.0.
- Ejecuta servicios automáticamente al iniciar el sistema
- Contiene un administrador bastante sencillo de utilizar.
Por las pruebas que he realizado en un emulador tiene, aparentemente -está en versión Alpha-, buena pinta. Desde el mismo site de Codeplex viene con un ejemplo de servicio, documentación, código fuente y el Service Manager utility, con lo que ejecutarlo o crear tu propio servicio no es demasiado complicado, otra cosa es entender realmente como funciona internamente.
Por lo visto, está basado en un post del blog de Pavel Bánský, en el que explica cómo desarrollar servicios para Windows Mobile bajo código administrado. Todo parte de la idea de ejecución in-process de una DLL bajo \Windows\Services.exe, sin embargo la forma más habitual para hacerlo es mediante código nativo. Pavel muestra como encapsular las llamadas a WinCE y Peter se basa en el resultado para crear una librería íntegra para la creación de servicios bajo código administrado.
Si quereis profundizar más sobre el tema mirad en Services.exe Application Development for Windows Mobile-based Devices.