Let’s be candid with one another. If you are reading this, you are either a Windows CE developer or have thoughts of becoming one. And as we know only too well, it’s a great, big diverse mobile world out there, but not a world Windows CE is taking by storm. In fact, today’s Palm OS devices enjoy a 70% market share, so in pragmatic sense, there are really only two kinds of PDAs: Palms and the rest. Exactly where does that leave Windows CE developers in the Microsoft A.B. ( After Ballmer ) world?
The Backstory
To the unobservant, its seems mystifying that the company that created a revolution with a wonderful technology like Windows failed to even show up for the next two revolutions: the Internet and wireless. To long time Microsoft watchers, this is less surprising. Microsoft’s success has never been a product of innovation, but rather a result of waiting and watching emerging markets. Time and again, Microsoft has jumped into the marketplace after a technology has proven itself viable. Bringing to bear aggressive marketing and formidable engineering capabilities, they validate what has already proven successful, and in the process reap tremendous profits. This strategy worked brilliantly until fairly recently.
Both the Internet and momentum toward mobile computing escaped Microsoft’s emerging trends radar for a couple of reasons. First, today’s Microsoft is a huge corporation, and like the Queen Mary, it just doesn’t turn on a dime. Legal battles, a large, well established enterprise business and managing internal growth absorbed the full attention of top management in the late 90’s. Second, in certain sectors, adoption of both the wired Internet and wireless technology was very rapid. In Asia today, consumers purchase wireless Internet enabled cell phones at a rate of 9 to 1. In Europe, the figure is 5 to 1. By the time it was clear that these technologies were going to be successful, there were already serious competitors in place.
So even though something “Windows CE-like” was publicly discussed as long ago as the late 80’s, the PocketPC was the first CE product that has had any real hope of consumer success—And it must face down an entrenched population of Palm OS devices. Clearly, Microsoft didn’t do itself or CE developers any favors by squandering its early opportunity to dominate the mobile computing niche.
It’s All About Communication
Microsoft Mobile Systems group failed to recognize the opportunities of Windows CE in the wireless computing world because they saw mobile computing as a consumer technology. They were wrong, twice. Mobile computing is about communication, not technology; and for the foreseeable future, enterprise will drive technical development and wireless infrastructure build-out. Here’s why:
The mobile workforce — people who spend most of their time away from a traditional office setting — are the hands and feet of enterprise. They interact directly with clients and customers, and are the ones who make business happen, deal-by-deal, day-by-day. At the same time, they are the most remote from information resources. The key to improving their effectiveness and productivity is making the mobile device a enabling and empowering communication tool.
Fundamentally, there are three patterns of communications the wireless mobile device can automate:
- Business to Employee: Think of a hospital worker checking patient records, while providing care. B2E mobile applications require custom wireless client interfaces, and also must operate online or offline. This is a good match with the strengths of PocketPC devices.
- Business to Consumer: Think of consumer purchases and reservations. B2C applications are ideal candidates for phone applications accessed by voice based interfaces
- Business to Business: Think supply chain management. B2B applications can be lightweight phone based systems or more full featured HPC implementation.
Here’s the take home lesson: When you approach mobile application development, start with a communication model, then implement the smallest footprint solution that will accomplish the job.
Where .NET Takes Us
Clearly, the big opportunities for CE developers lie in developing applications for mobile workers. We’ve got a lot going for us there. Users know and like the Windows interface. We know and like the Windows API. Both are elegant and powerful. And even though we are off to a glacially slow start, we’ve got some built in advantages with .NET.
What makes development of mobile applications difficult is not the client side programming, though that can be arcane. The big “gotchas” are formatting content for the client device and working with the wireless carrier gateways. The reason these things are challenging is that mobile applications consist of several distinct pieces, all of which have to collaborate and behave as predicted. If you choose a client device like a Palm PDA, you must concern yourself with getting data from a server, across a wireless network, to the mobile client, and into the client side software. Even in the best case, you’ll have little control over what happens on the network. You’ll be able to control the other players in the game only to varying degrees.
If you choose CE .NET, you get a big advantage: end to end, the entire process is integrated and managed by .NET components. NET is really an evolution of enterprise class web development tools that have been updated with mobile computing in mind. The organizing principle of .NET is that it exposes a sophisticated and extensive network of Web Services . Web services are intelligent server applications that advertise their capabilities to provide data or operations, either to an end user or to other Web Services. They communicate through SOAP and XML. Any .NET enabled device can access the services’ content. Served data is formatted for the user’s device and further customized based on user requests.
.NET offers obvious incentives to mobile application developers that want to reuse existing business logic and already standardize on Microsoft’s operating systems, servers and database products. It also sidesteps the two stickiest issues in mobile application development. Since you know that any .NET enabled device knows how to render content, you have a big usability advantage over apps that must arbitrate formatting of content on a large variety of client device form factors. Also, the network layer is being managed for you.
The Net on .NET
We may be in a catch up game, but the biggest potential customer pool around has every reason to steer in the direction of .NET. As businesses shift more emphasis to automated interaction with customers, suppliers and government, Web based solutions offer powerful competitive incentives: 24×7 availability, lowered cost of service and improved communications. However, once you’ve hopped on the .NET bandwagon, you are committed. If Microsoft blows it again, .NET developers will suffer.
About the Author
Nancy Nicolaisen is a software engineer who has designed and implemented highly modular Windows CE products that include features such as full remote diagnostics, CE-side data compression, dynamically constructed user interface, automatic screen size detection, entry time data validation.
In addition to writing for Developer.com, she has written several books including Making Win 32 Applications Mobile. She has also written numerous articles on programming technology for national publications including Dr. Dobbs, BYTE Magazine, Microsoft Systems Journal, PC Magazine; Computer Shopper, Windows Sources and Databased Advisor.
# # #