I really can't stand Pocket PC. There are so many reasons why.
I've been working on a suite of 4 Integrated Digital Health Care demonstrations for 3 Leaf - on behalf of Intel. And if you want a cool application of technology, it doesn't get any better than healthcare, where the use of software development standards and spiffy digital technology is EASILY expected to be able to save over 86,000 preventable deaths/year - and cut costs; how cool is that? (Check out this great Digital Health webcast from Louis J. Burns at IDF for more info.)
To prove how mobile devices can improve patient safety and recovery, as well as cut tedium/administratum and lower costs, Intel is going to equip a number of their technical sales folks with high-end PDAs and send them into hospitals to help showcase how technology available today can provide incredible benefits. It's dang cool stuff, and one of the reasons I love being a Technical Evangelist - because I get to work with such cool technologies in such fun applications.
But, PPC sucks. During the demonstrations, presenters are going to be equipped with PPC devices (which are cheaper for demo purposes than tablets or UMPCs which will likely be deployed in real hospitals), that have SDIO cards outfitted with RFID scanners. They'll also walk around with the PPCs connected to a WiFi network that lets them interact with Electronic Medical Records (EMRs) on a VM running from their laptop which is loaded with SQL Server Express to simulate a back-end server for patient data, etc.)
Only, when you connect a PPC to a WiFi network, you are prompted: "Hey there, big boy, I see you've found a wireless network. Do you want this connection to connect to 'Work' or 'teh intarweb'?" You have to chose one. You can't have both.
When you connect to that entity known as 'Work':
You can access local resources via machine name, and you can hit non-pansy ports, such a SMB, Kerberos, and... DBNETLIB (or SQL Server over TCP/IP). At this point, the demos work pretty well.
Only, in one of the demos, we also needed to showcase how VOIP could be used from mobile devices to allow nurses and other health care professionals communicate with clinicians and physicians remotely. (In real scenarios this would be accomplished with something like MS' Live Communications Server, or another 3rd party product from the likes of Cisco etc - that would provide secured VOIP). In the demo we opted to go with Skype - since it's a great way to showcase VOIP functionality - and doesn't EXPENSIVE hardware and software licenses. The demo with Skype is actually pretty cool: a nurse detects that a patient isn't doing as well as anticipated, takes some photos (with the device's embedded camera), uploads them to the back-end servers, and then 'calls' the patient's doctor via Skype. The doctor then connects to the same back-end records, pulls down patient data (including the posted images) and can make a clinical decision.
Spiffy eh? Only if you're connect to 'Work' in a PPC, you can't connect out to the 'Internet' to fire up a Skype session. Lame. Very Lame.
Likewise, when you switch your WiFi connection to connect to that ponderous entity known by millions as 'The Internet', you can use Skype fine, and even connect to local area network resources on wussy ports (25, 80, etc.), but no love with SQL Server connectivity. (The same holds true if you're running your PPC in the cradle and connecting to 'The Internet' via a 'pass through' connection - you just can't access SQL Server resources locally (even if you try faking it and forcing them to listen on port 80)).
Pfffft... So at this point I'm going to have to retool my demo to use Web Services. Hey, WS is shiny and all, but man talk about a pain. And the moral of the story: 1) PPC sucks, and is just to weak for real use, and 2) don't BOTHER using System.Data.SqlClient from your PPC apps - it's just NOT worth it.