NAVmoble - the pocket-sized ERP
Optimized for Microsoft Dynamics NAV and Windows Mobile powered devices

Thursday, June 28, 2007

Tuesday, June 26, 2007

Configuring Symbol MK1100 Micro-Kiosk

I had a project involving the development of a custom CF.NET application. The app was intended to be deployed on a number of Widnows CE 4.1 based devices from Symbol(MK1100). This device is a rather old model, however the customer had already the device on hold. These devices are custom - the vendor(Symbol in this case) decides what is this device like.
The file system in MK1100 uses a volatile memory. The device have no battery. It is plugged directly into the power supply circuit. This means that if someone unplug the device, all the executables, data and even the .NET CF will be lost and they should be deployed again. Fortunately, the device provides tools to automate the initial application deployment on boot. However, I spent a lot of time till getting the right path. I tried to find some best practices, articles or even forums discussions about the best way to deploy my app on device boot. Unfortunately I haven't found a complete guide.
It turns out that the device has a non-volatile memory that may be used to store files to live the cold boot. My first approach was to store and use the CAB, executables and data files from the non-volatile area. And that was a terrible approach, as it turned out later. The software and device behavior as a whole was unpredictable and unstable.
So my final approach was :
1. Placing all setup files(CF.NET including) into the non-volatile area.
It appears as a folder named \Application

2. Placing a file with .CPY extension in the non-volatile area. the file contains instructions for copying all the CAB files from the non-volatile area into the volatile area - e.g.\Program Files\MyApp. The .CPY files are read and executed on boot. The idea was to avoid execution of CABs from the non-volatile area.

3. Placing a .reg file in the non-volatile area.
This registry file contains device configuration information and it is read from the device on boot. The interesting part was to instruct the device that instead of launching the OS Shell, it had to launch the wceload.exe couple of times to install the .NET CF and other apps. At the it launches my custom app in kiosk mode.. Then it launches my app instead of the shell.The outcome was to have the device operating in kiosk mode...and the kiosk mode was easier on this device

On boot, the .CPY file forces the device to copy all the CABS from the non-volatile area into the volatile area. Then the .reg file forces the device to launch wceload to install all the CAB files from the non-volatile area. At the end the install the custom app is launched.

Related comments and advices are welcome!

MK1100 Micro-Kiosk from Symbol
Kiosk mode in windows mobile
Window CE vs Windows Mobile

Wednesday, June 13, 2007

Mobile Development Handbook

Some folks asked me recently about recommending a book about managed mobile development.
I just noticed that Daniel Moth announced his book called "The Mobile Development Handbook". Daniel(former MVP and Microsoft employee) and his co-authors Peter Foot(MVP) and Andy Wigley(MVP) are well known in the community and I believe the book is worth to have.

The book is available on

Mobile Development Handbook on
Daniel Moth about his book
Peter Foot's blog
Andy Wigle's company web site

Thursday, June 07, 2007

Sofia .NET User Group Meeting Summary

The June monthly meeting is already a history.
George Kremenliev kindly revealed some of the magic behind the new WCF/WF integration available in .NET 3.5. Later on, Martin took us to a near pub,where we continued our high-tech talks.

Following some photos:

Wednesday, June 06, 2007

Sofia .NET User Group Meeting

We'll have our regular monthly meeting, tomorrow(7-June-2007 at 18:30h). It will be held at the local Microsoft office as usual.

The topic
Writing WCF services with workflow

Introduce Workflow Services, the integration of Workflows (WF) and Services (WCF)
- Implement Service Using Workflow
- Host a workflow as a Service
- Long-running, durable Services
* Use workflows to implement Services
* Interact with Workflows using messages

The presenter George Kremenilev is working for Microsoft as a Software Dev. Engineer in Test in the WCF Team.
Be there - it will be a great session!

You may register for announcements here