Montag, 28. April 2014

WinCE 5/6/7 and WEH65 Development with VS2013

You may say: This is impossible...
I say: It works...
At our Company we develop Application for WEH Scanners. Since all of the devices Targets Windows CE 5/6/7 (including WEH65) we are forced to use Visual Studio 2008. At the beginning of 2014 we started to evaluate Visual Studio 2013 as the developing IDE for Smart Device Applications. Quickly I realized that this doesn't work, since Microsoft didn't integrate the Smart Device Platform in the new IDE.
So, what can we do?
Good News, after 2 Months of analyzing different debug engine implementations I have a more or less full working Solution ;)
The Problem is not the Compiler, the Problem are the following components:
1.      Debugger
2.      Forms Designer
3.      Project Sub-Type

Debugger

The first thing I analyzed was the debugger. First I had a look at mdbg, since this open source Project can debug application on smart devices. After that, I thought that I had to implement an AD7 Debug Engine. But since the documentation is very poor, I ran into many issues. After hours of reading and testing I realized that this couldn't be the solution.
Then I had a look at the registry hive of Visual Studio and this was the breakthrough ;)
The Default .NET Debug Engine ("{7386310B-D5CB-4369-9BDD-609B3F103914}") can be extend by a property called Runtime. In the VS2008 Hive I saw that it references the "{945CC13D-C386-413C-B8B9-277DF8DD0A9D}" Runtime which is an ICorDebug Implementation for .NET CF.
At this Point I remembered that mdbg uses a wrapper of the same CLSID.
So what now? Yeah, I started developing a custom Port Supplier which was a combination of the mdbg sample and the XNA (Yes XNA) Port Supplier for the Xbox. You may ask why is this guy talking about the Xbox? The Xbox games are based on the .NET Compact Framework 3.7.
It was a Friday evening at 23:55 when my Visual Studio 2013 started Debugging an Application in the Windows Mobile 6.5 Emulator for the first time ;)
 
Forms Designer
After the first Goal I started to analyze the Forms Designer for Smart Devices. At the beginning I thought that this will not take so many time for integrating the CE Forms Designer in VS2013, but it took 10 days of hard working. I didn't implement everything, means I didn't implement the Skin for the forms designer (eg. Windows Mobile Skin), my designer Looks like the normal .NET Forms Designer. But you can do everything in 2013 like in 2008.

Project Sub Type 

So the last step was the implementation of a custom Project Sub-type (like .NET CF in 2008 is a Sub-Type). This Sub-type combines the designer, the debug port supplier and the deployment mechanism of your Project Output.
One Thing you have to know about the deployment: My Project Sub-type is a little bit different from 2008. VS2008 can deploy the .NET Compact Framework directly to the device. I didn’t implement this because we have now Need for this. But it offers a possibility to deploy any custom assembly and of course the copy local references and the Project Output.

Dependencies 

What are the dependencies? Since the Emulator(s) and the Forms Designer are a part of VS2008 you still have to install a VS2008 on your development machine. We can't deploy all needed files, I think Microsoft would kill us ;)
You also need the .NET CF RemoteToolsFrmework 3.5 since the Remote Calls are offered by this component.
And at this point the words “I have a more or less full working Solution” become sense since you still have to install VS2008.

1 Kommentar:

  1. how to develop windows mobile 6.5 using visual studio 2013 ???? we need very clear steps ,, kindly help me .....

    AntwortenLöschen