Targeting PocketPCs With Mono?
That's What She Said writes "I am a long time Mac user and, as most people like me, I have some particular problems with Microsoft technologies. I need to develop applications for the PocketPC platform (Windows CE and Windows Mobile), some simple data collection applications for barcode-enabled portable data terminals. Every device manufacturer on the market offer SDK's for .NET, so I believe this is the way to go. I already tried Microsoft Visual Studio and I am having serious problems using the IDE. I simply don't understand it quite well. My programming experience comes from PHP and JavaScript, where all I needed was a simple text editor and to keep my work as tidy as I could. So, it seems that a full-fledged IDE is kind of scary to me or Visual Studio is not very good for beginners. I also want to keep my costs low and free alternatives are welcome." Read on for a bit more (below) on why TWSS is thinking about Mono as a development environment, and is seeking advice.
That's What She Said continues: "Through some research, I've found that my options are quite narrow. Rapid development environments are available, but cost way too much or have some terrible limitations. Also, I have not found many forums on PocketPC development that really have useful information. Google isn't helping. Some directions would be good.
I have been looking at Mono for some time and MonoDevelop seems a hell of a lot simpler to use. I even started playing with it. It runs fine on my Mac.
I tried Google again to find some information on writing .NET Compact Framework applications with MonoDevelop, but I didn't find anything. It seems Mono implements the Compact Framework, but there's not much more information about this. Except for one blog post from 2006, I didn't find anything else.
So, I ask: is it possible? Is anyone doing this with any success? Is there any problem I should know beforehand?"
I have been looking at Mono for some time and MonoDevelop seems a hell of a lot simpler to use. I even started playing with it. It runs fine on my Mac.
I tried Google again to find some information on writing .NET Compact Framework applications with MonoDevelop, but I didn't find anything. It seems Mono implements the Compact Framework, but there's not much more information about this. Except for one blog post from 2006, I didn't find anything else.
So, I ask: is it possible? Is anyone doing this with any success? Is there any problem I should know beforehand?"
Here's a link O'Reilly's "Head First C#."
http://www.oreilly.com/catalog/9780596514822/
Best C#/Visual Studio book from what's in my opinion the best series of teaching books around right now.
Here's the link to free download of Visual C# Express.
http://www.microsoft.com/express/vcsharp/
That's not a trial. It's a free reduced feature version of Visual Studio 2008.
A few years and two PDAs ago, I coded a C# app for my Pocket PC (WM 2003SE) using both the app and my Linux PC.
I used a port of the DotGNU project as an on-board compiler, and I think that I used Mono on Linux. (It may have been DotGNU, I don't recall.)
I believe that I ripped the DLLs comprising the compact framework off the device, and then used that to compile when on Linux. I think that there was a switch to turn off linking against the system DLLs, and I just linked against the DLLs from the device. Once the exe was built, I was able to run it on Linux using mono (since they had implemented WinForms, I could just run it straight), or I would simply copy the exe to the device via an SD card and then I could run it from there.
I never finished developing the app, so I never got around to figuring out how to package a CAB, but that should be trivial. I know that there are Linux apps to create CAB files, so it should just be a question of finding one buildable on the Mac and figuring out what to put into the manifest.
Solution to blink tags: wrap them in another blink tag, with a javascript delay loop, so they cancel each other out
There is no good reason to write an application in C++ unless you absolutely have to.
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."