Are you a right clicka or an IBook flippa?
My friend Chris just send me this cool video:
via HSDMAG.NET
Software development is not a job. It is a style of living
My friend Chris just send me this cool video:
via HSDMAG.NET
By Ruslan Trifonov on Thursday, June 28, 2007 0 comments
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!
Links
MK1100 Micro-Kiosk from Symbol
Kiosk mode in windows mobile
Window CE vs Windows Mobile
By Ruslan Trifonov on Tuesday, June 26, 2007 12 comments
Labels: .NET CF, Kiosk, Symbol, Windows CE
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 amazon.com
Links
Mobile Development Handbook on amazon.com
Daniel Moth about his book
Peter Foot's blog
Andy Wigle's company web site
By Ruslan Trifonov on Wednesday, June 13, 2007 0 comments
Labels: Books, Compact Framework
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:
By Ruslan Trifonov on Thursday, June 07, 2007 0 comments
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
Abstract
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
By Ruslan Trifonov on Wednesday, June 06, 2007 0 comments
Labels: Events