Slashdot Mirror


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?"

17 of 90 comments (clear)

  1. Unhelpful... by locokamil · · Score: 2, Insightful

    I know this is going to come off as unhelpful, but if you're going to be developing projects of any complexity on Microsoft platforms, you're going to have to deal with Visual Studio sooner or later. Suck it up and learn it -- it's not as horrible as it looks at first glance, and in time, you may even come to like it (heresy on Slashdot, I know).

    1. Re:Unhelpful... by mobby_6kl · · Score: 2, Funny

      Well then, there's always Delphi 6!

    2. Re:Unhelpful... by FishWithAHammer · · Score: 3, Insightful

      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."
  2. Qt by musikit · · Score: 2, Interesting

    i don't understand how you say your a mac fan but have decided to steer away from a tool that would help you the most.

    Qt has ports for windows, windows ce, mac, and linux.

    if you develop nicely enough you can make the app in a mixed dev environment and just do final testing and deployment onto windows ce. who knows since the qt port is cocoa and iphone uses cocoa you could end up with a single app for all platforms.

    1. Re:Qt by lpontiac · · Score: 2, Insightful

      if you develop nicely enough you can make the app in a mixed dev environment and just do final testing and deployment onto windows ce.


      If you care about your user interface, you should get the application up and running on a real device ASAP and always use it as your guide. Emulators are very handy for when you're doing a rapid compile-run-code cycle during the early stage of developing a particular feature, and debugging.
    2. Re:Qt by pjt33 · · Score: 2, Informative

      Definitely. My experience with Java (using IBM's J9 on PocketPC) is that a MemoryImageSource which repaints in milliseconds on a "real" computer takes more than a second on my PocketPC. That's not the kind of thing you want to find out in the final stages of testing.

  3. Just Bite the Bullet by SScorpio · · Score: 2, Informative

    Sharpdevelop supposedly supports the .NET Compact Framework: http://www.sharpdevelop.com/OpenSource/SD/Default.aspx

    You can also find tutorials to help get you started here: http://netcf2.blogspot.com/

    The only issue using Sharpdevelop is that I don't believe that you can use the Microsoft PocketPC emulator which means you have to keep compiling, uploading, and remote debugging your code.

    Visual Studio includes the emulator and would be a good tool for you to learn. The jump from using notepad to a full IDE programming suite can be intimidating at first but it will really help your career as a programmer.

  4. Oh, that's just mean by charlesbakerharris · · Score: 2, Funny

    Going after those PocketPC's with no energy like that. Wait a few weeks til they're healthy, for pity's sake!!

  5. No by Anonymous Coward · · Score: 2, Interesting

    I'm a Windows CE developer, and I doubt this would work very well, even if it is possible. Part of the point of using Visual Studio is testing your software and your deployment on the emulator beforehand so that you don't end up bricking an actual device and having to do a hard reset. Mind you, if you aren't comfortable using an IDE, I'm guessing testing and deployment aren't high on your list of priorities...

    There are some alternatives:

    • - You can use the free eMbedded Visual Tools 4.0 to write the software in C++, compile it for ARM, and copy it over to a Pocket PC;
    • - Last year they had a 90-day trial where you could get a copy of Visual Studio 2005 with the Windows Movile SDK's for $10 - something like a replacement for eMbedded Visual Tools. They may still have the program, if you do a search on thew Windows Mobile website;
    • - Of course, you don't have to use C-Sharp and learn .Net - you can write your software in C++ using Visual Studio.

    But really, if you're writing serious software for Windows CE, you're going to have to loose your inhibitions and learn to use Visual Studio.

    1. Re:No by lpontiac · · Score: 2, Informative

      Part of the point of using Visual Studio is testing your software and your deployment on the emulator beforehand so that you don't end up bricking an actual device and having to do a hard reset.


      If you can fix it with a hard reset it's not a brick.
  6. Debugger by MrCoke · · Score: 2, Informative

    How do people debug using MonoDevelop or mono in general ? The debugger in MonoDevelop is already missing/broken for a loooooooooong time. And no, writing to the console doesn't count.

  7. Mono can only be spread between PocketPCs by... by techmuse · · Score: 2, Funny

    ...kissing or otherwise sharing saliva, or by exchanging IP datagrams with another infected PocketPC. A PocketPC with Mono should be allowed to sleep for 4-6 weeks, and will eventually recover when the virus runs out of resources. Although a standard virus scanner may detect Mono, once infected, the system can not be purged, even through a reboot. However, since the virus is self-terminating, regular performance will eventually be restored.

  8. If you want sloooow apps, use Compact Framework .. by fingernail · · Score: 2, Interesting

    I've used Visual Studio to develop a handheld app (using C# and the .Net Compact Framework v1.1) and two things struck me immediately:
    (a) C# on handhelds is really, really slow. We're talking a perceptible lag when switching between screens; I had to rewrite the automatically generated code to speed up form loading.
    (b) Visual Studio (2003/2005 both) is even slower. It always seemed to take at least 2 seconds to respond to clicks, and as for startup time, I was fooled several times into thinking that my PC had crashed, even after using it for weeks. It's just pathetic.
    I switched to using C++, wxWidgets and SQLite for my next app on a handheld, and I'm so happy we did. BTW, both apps are targeted at handhelds with barcode scanners (Symbol), and there are C based SDKs available.

  9. Use Tcl ? by xet7 · · Score: 2, Insightful

    You could use Tcl on PocketPC: http://wiki.tcl.tk/8688

  10. Head First C# best intro to Visual Studio book by leftie · · Score: 3, Informative

    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.

    1. Re:Head First C# best intro to Visual Studio book by That's+What+She+Said · · Score: 2, Interesting

      Not really... I didn't make myself clear in the first place.

      Most of experience in programming come from PHP, because that's the language that I really used to write something useful. I used to work with web site development, and I can say I wrote some very nice custom designed content management systems (very simple ones, but still I think they're nice). Just so you know, I know what a class is and I can write OO code.

      I started with BASIC on a Commodore 64 in 1986, when I was 9 years old. I used Visual Basic 2.0 or 3.0 in 1992 or 1993 (can't remember) and, at the time, developed some Windows (3.1) front-ends for DOS programs. I also can write some simple C programs (a little more than a "Hello World!"), but never tried anything really fancy.

      My real problem is not with the languages. I can get to understand the basics of any language, I guess.

  11. Should be doable by ShmuelP · · Score: 3, Informative

    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