App-Ready for WM 5.0, 6, and 6.1?

I have several posts queued to talk about the architecture and building blocks behind the 2008 Windows Mobile LOB Solution Accelerator, however, there’s another simple topic that has been coming up a lot lately. It seems that just about every meeting I have with customers who are evaluating Windows Mobile, raises the question —what’s the difference between Windows Mobile 5.0, 6, and 6.1? What do we need to know to make sure our applications are ready for these platforms?

That’s a good question to ask because, right now, the market is full of a mix of these devices. If you are building an application to target Windows Mobile as a platform, this question should be on your mind and it has a very simple answer. Platform versions 5.0, 6, and 6.1 are highly compatible and architecturally very similar. In fact, for most developers – if you built an application to target Windows Mobile 5.0, then it should run without issue on Windows Mobile 5 and 6.x platforms. That said, here’s what you should also know…

There is a lot of work that goes into each release to justify a platform revision-- many changes and improvements that occur – but from a purely development standpoint, we’ve kept things very consistent in the interest of ensuring platform compatibility (especially over the last few releases). If you want to be extra diligent, you should review the deprecated API list and consider running the Windows Mobile API Usage Tool to spot check your code. It’s easy to lose sight of how we got here and the investments we’ve made along the way to WM6.1. When I get into this discussion, I like to talk a bit about those investments and what they mean to our platform:

Pocket PC 2002, Smartphone 2002

Our first wave of phone devices are released to the market with two distinctly different types of platforms. The Pocket PC Phone Edition took our classic PDA product, using a shared RAM file system, and adds phone capabilities built using a 240x320 touch screen and stylus. The Smartphone platform was designed as a phone first and built on flash based persistent storage. It’s a list based UI with a 176x220 “non touch” screen and a certificate based security model. Both are Microsoft defined platforms built on top of Windows CE 3.0 but are significantly different in the way they approach the mobile phone market.

>>> We got into this game pretty early by most Microsoft standards and were trying a lot of new things. Remember the MPX 200 or those early Orange SPVs? A lot of hard work goes on during this time to break into markets and forge partnerships with device makers and operators. Our goal was to let the operators and device makers dream up phones for the market they knew the best. We would supply the software and development platform based around their phone requirements. For developers, the tool set was initially based on the older eMbedded Visual Tools product. Our CE platform gives everyone a target to begin working, but we needed to make it easy… enable Visual Studio for mobile dev, and bring NETCF into the picture.

Pocket PC 2003, Smartphone 2003, and Windows Mobile Branding

Platforms revised minimally over 2002 with new features on top of Windows CE 4.2. For developers, Compact Framework 1.x in is now in-ROM on every device. The “Windows Mobile” brand is launched to represent all of the different device platforms we supply.

>>> The big news with 2003 was a push for managed app development and the Compact Framework in-ROM. That meant you didn’t have to re-distribute the NETCF CAB over an already slow cellular network (3G isn’t widespread yet). The other big event was the support added to Visual Studio 2003 and coming in 2005 to make mobile development “just another project option”. Millions of developer already use Visual Studio and .NET Framework/Win32. A solid development platform is the foundation for great software and we made the investment to enable the most widely used development platform and skill set for mobility.

Windows Mobile 2003 Second Edition

Platforms revised and built on Windows CE 4.21. Windows Mobile breaks the mold from the traditional “fixed” screen size to allow OEMs more options to create compelling displays and devices. We launch the “Adapt your App” campaign to help developers prepare for this change and add an “emulation layer” to help ensure old applications can render within the new screen sizes and orientations if they were never designed to do so.

>>> With the release of 2003 Second Edition, the idea was to break away from the traditional “fixed” screen sizes and give device makers freedom to build more compelling displays…. Landscape, square, high-res (VGA), etc. We’re always trying to maintain backward compatibility and this was the first major release that caused some re-work for developers. If you didn’t know what the target screen size or resolution is going to be, you had to dynamically handle it in your code. It’s a little painful at first.. until you see your app running on a beautiful VGA display, and a square display, and a landscape display, etc a …. We added an emulation layer to coerce old apps into rendering, but it’s no replacement for a well designed app. NETCF 2.x and VS2005 added support for docking and anchoring to make display independence simple.

 

Windows Mobile 5.0

WM5 was a huge release in terms of new features and changes that still fuels apps through the 6.x releases. Built on top of Windows CE 5.0, this was our first effort to converge the “best of breed” from both distinct Pocket PC and Smartphone platforms. Both platforms adopt “soft keys” to simplify UI development and many other standard APIs are added for things like GPS, DirectX, Camera, Picture/File Picker, State & Notification Broker, etc. Both platforms are required to use persistent storage as a file systems (e.g. – no more memory slider) and we re-work all of our heavy I/O libraries and APIs to optimize around this trade-off. Pocket PC now gets a 1-tier security model which differs slightly from the Smartphone 2-tier model, but adds the ability to enforce signed code.

>>> Windows Mobile 5.0 was a quantum leap forward for developers in terms of tool and API support. Whoohoooo developers! This was the direct result of ISVs. If you have taken the time to revise your apps for Windows Mobile 5.0, then you are in good shape for Windows Mobile 6 and 6.1. If you have never updated your app for Windows Mobile 5.0, then you should take the time to do so. Get up to a bare minimum of NETCF 2.0 SP2 (which gives you Remote Performance Monitor support). There are many great APIs that replaced hundreds of lines of code in older apps and well worth your time.

Windows Mobile 5.0 Microsoft Security Feature Pack

Also known as the MSFP or AKU2 release of WM5, device management is added to our mobile platform so that any organization using a current Exchange product now has the ability to provide some basic control over WM field devices… like PIN enforcement and remote wipe. One of the biggest features is the addition of “direct push” email which uses a long running HTTP request to deliver mail updates on your device in real-time. The unique approach to this feature allows it to work over almost any type of network without any special “middleware” or Network Operation Center. It just works.

>>> In other words, as an Exchange shop, you just got basic device management for free. In the corporate world, there is a rule of thumb that says “if you can’t secure it and you can’t management it, it doesn’t happen here”. While we made great strides for developers, none of that matters in the business world unless you have a great management story. Consider that chapter 1. So we now have a great developer story and a decent device management story… about that user interface….hmmmm

 

Windows Mobile 6

Windows Mobile 6.x has been largely about user experience on our devices. If you dig through the new features, you will find that most were geared toward mail, management, and usability—menu improvements, mail & office enhancements, internet sharing, encryption, etc. You won’t notice HUGE and obvious UI changes right away, but it won’t take long to notice that everything just seems “much smoother” and easier. For developers, the platform got a few new goodies and the big news is Compact Framework 2.x and SQLCE 2005 (3.1) in-ROM on every device and that means simplified deployment and a solid database engine already on the device for you to use. The builds are based on Windows CE 5.2. While there are still major releases around NETCF 3.5 and Visual Studio 2008 to make development a best of breed experience, the core architecture changes little and few breaking changes are introduced for devs. We move away from Pocket PC/Smartphone branding and adopt Professional (PPC), Standard (Smartphone), and Classic (non-phone) titles. The goal is to further move toward a unified platform brand.

>>> If you built for WM5, you should be in good shape. WM6 is largely an investment in usability and end-user features. You can download the new WM6 SDK if you want to use some of the WM6 specific features or test on the new platform. You can also double check the deprecated feature list.

Windows Mobile 6.1

6.1 new features continue to build on Windows CE 5.2. Much like the previous MSFP release that added management support under Exchange-- 6.1 completes our device management story and adds comprehensive support via Systems Center Mobile Device Manager. If you don’t use Exchange or if the management support with Exchange does not meet your needs, SCMDM takes this to the next level and addresses many of the most stringent and comprehensive device management requirements.

>>> 6.1 is largely about adding SCMDM support. As a developer, you won’t find a new SDK for 6.1 but you can download updated emulator images if you want to test against it. There are also a few development considerations and memory improvements you might want to review. A new Homescreen model was added to Standard edition. Again, if you built and tested for WM5, you should have little (if any) work to do to run on the new 6 platforms.
What next?
We’re always working... I can’t talk about all the goodies to come, but I will say that you are largely part of it. Mobile development is mainstream now. Apple and Google have their eyes wide open and I’m actually happy to see them in the game. It validates what we’ve been investing in heavily for the last 5 years. Nothing accelerates ISV and end-user demands like good competition. Bring it...

What do WE have to offer you that the others don’t? We’ve brought the best development tools (Visual Studio/.NET) and developer portal (MSDN) in the business to mobile-- bar none. Our development community and MVPs are amazing…contributing code and mindshare in creative ways that only independent thinkers can. Need a sample? It’s out there… At Microsoft, we integrated our product line with our mobile strategy (and continue to) so that Exchange, SQL Server, Office, and other can easily be extended into the mobile workforce. Build any type of architecture on WM—online or offline, with support for web apps or disconnected clients that need complex replication support. We now provide a choice of device management solutions to enable your business, large or small, on the go. Pick the Windows mobile device that is right for you – on almost any network worldwide. Business or ruggedized devices? No problem. We’ve been forging relationships with operators and device makers for years. It would have been easier to build our own sexy device and win some consumers in the first round, but there’s a lot more to a building a global, mobile platform business. We’re just getting started and IMHO, it's just beginning to get interesting…

We’ve always been a software company and if you’ve never seen Steve B. go off on a “developers, developers” rant, maybe you know don’t how core you are to our effort. It’s our job to forge the business models with operators and device makers so that you have a mainstream mobile platform to target, but it’s really up to you to build the software that makes it special. It really is about the developers.

Cheers,
Reed