Welcome to MSDN Blogs Sign in | Join | Help

Questions/comments on “Windows CE x Windows Mobile” – Part 1

My post on Windows CE x Windows Mobile differences generated a lot of interesting comments, more than I had anticipated :-). Thanks to all of you who have posted your comments/questions to the blog, private messages, as well as all discussing on web forums. I thought a new post would be the best option to go through all that, so here we go answering some of them, I intend to touch all questions on next posts.

So what exactly is the difference?

For some reason I thought I had touched that point, but based on the feedback I received it is still not clear to many of you the differences between Windows CE and Windows Mobile. So let’s make sure everybody is on the same page re Windows CE:

Windows CE combines a real-time, embedded operating system with the powerful tools for rapidly creating the next generation of smart, connected, and small-footprint devices. With a complete operating system feature set and comprehensive development tools, Windows CE contains the features developers need to build, debug, and deploy customized Windows CE–based devices.

These devices can have any form-factor, any type of display or no display at all, any proprietary/customized shell; it can be extensible allowing developers to create applications targeting it, or a completely closed solution (like robot-controller).

Assuming we are all fine with this definition, let’s move on to where Windows Mobile came from. A bit of history:

Built on its own code base from the ground up, this operating system [Windows CE] debuted in September 1996. Windows CE originally ran on the Handheld PC but now is used in devices of different shapes, sizes, and degrees of ruggedness, such as mobile handhelds, industrial controllers, gateways, and advanced consumer electronics.

I sounds like WinCE was born to fulfill the need of an OS for the new handheld PC category of devices MS was looking after. I was not at MS at that time, so take this with a grain of salt: my guess is that MS realized it could launch Windows CE, as a product by itself, to partners & hardware providers. At that point the development was forked and WinCE started being developed in a group and, another group (like a device division) began using WinCE to create customized versions of the OS targeting specific form-factors, user interfaces and customer experiences.

One of the points of confusion is that MS used to call “Windows Mobile” (these customized versions of the OS) different names along the history: Handheld PC, Palm-size PC, Microsoft Pocket PC, Microsoft Smartphone and finally… Windows Mobile!

Windows CE was a strong brand on these “customized versions of the OS” until Pocket PC 2000, and started losing power after that (hence the source of confusion). Windows Mobile is now the brand we use to name these “customized versions of the OS”, targeting a PDA-like form-factor and/or a Smartphone-like form-factor.

Wikipedia has this nice image showing Windows CE timeline and the associated PDA/Smartphone OS.

Thus, the difference is: Windows CE is an OS (a real time OS) for embedded devices. Windows Mobile is an incarnation of Windows CE, with pre-built/standard shell, applications, user interface, APIs and user experience in general.

 

Where does Windows Automotive and Windows Mobile for Automotive fit into all of this?

Pretty much the same approach as described above. Windows CE continues to be the baseline OS, while Windows Automotive is a pre-defined version of this OS specialized for in-car computing scenarios. On February of this year, we announced “Windows Mobile for Automotive”, the new member of the Windows Mobile family. See press release here:

The Industry’s First Standardized Platform

Microsoft® Windows Mobile for Automotive provides the industry with an open, standardized platform for in-car infotainment system development. Automakers developing in-car infotainment systems using the platform can tailor functionality for specific models or desired price points. For example, a navigation system in an economy car might only provide voice prompts and a heads-up display, while a luxury model may offer a full-color LCD display featuring maps and real-time traffic information. As a result, Windows Mobile for Automotive helps the industry achieve the following:

  • Fast time to market. Manufacturers can move quickly to market with a standards-based, ready-to-install electronics gateway that gives consumers hands-free digital access to cell phones, music and information in their cars.
  • Low development costs. Windows Mobile for Automotive frees OEMs from the need to develop proprietary software — with its associated high development costs. This entry-level solution is based on a familiar Microsoft programming model and supports industry standards for reliability, power consumption and temperature variations.
  • Flexible implementation. Available in two versions, Windows Mobile for Automotive can easily be tailored to meet automakers’ needs across a variety of models, vehicle types and price points. Because the software is upgradeable, support for new devices, applications and industry standards can be added to increase functionality for drivers and passengers over the life of the car. Software upgrades can be easily deployed by the dealer via the wireless connection or USB port.

 

Where can we find the Portuguese original post?

You can find it here.

 

Mobile Operator, OEM and Microsoft: Windows Mobile Roles

Following my post regarding the differences between Windows CE and Windows Mobile, I’d like to discuss the responsibility share among the Mobile Operator, device manufacturer and Microsoft on a Windows Mobile-based device, especially when you consider that this device has customizations from each of these companies (This article is also available in Brazilian Portuguese here).

Microsoft (yellow region)

Microsoft, as I mentioned earlier, is in charge of the core Operational System (Windows CE), the shell (user interface), a set of applications (Office Mobile, IE Mobile, WMP Mobile, etc.), RIL, and so on. We also expose several APIs (from both Windows CE as well as those specific to WM) and we include .NET Compact Framework/components to allow developers to extend the Windows Mobile platform.

This is the kit we deliver to the device manufacturer – as you probably have already figured out, at this stage we still don’t have a cell phone or a PDA. In fact, we are far from having a functional device, it is just a bunch of software. It varies a lot among device manufacturers, but I would guess this kit represents only 60 to, no more than, 80% of all software inside a WM-based device. The other 20 to 40% (or even more) are from the device manufacturer and the mobile operator.

Device Manufacturer (red region)

The Device Manufacturer (OEM/ODM) receives the kit and starts integrating the software with their hardware. Most of this integration is done through the development of devices drivers, allowing the hardware to talk to the software – different from the PC model, the hardware is much more specialized (less standardization) and OEMs spend a lot of time in this process.

Beyond drives, the OEM also develops and integrates the cellular technology into WM connected devices – we call it the radio stack. Although the OEM is in charge of developing all the communication with the cellular network, the OS comes with the Radio Interface Layer (RIL) allowing the radio stack (GSM or CDMA) to interact to Windows Mobile. From my point of view, this is one of the most super geek complex areas on developing a connected device.

I’d risk saying that at this point we have a functional device, and it is time to begin adding value to the platform. OEMs are able to add additional software developed by themselves or by their partners, like voice recognition, JVMs, home screen plug-ins, games, media players (other than WMP), MS Office viewers, backup software, etc. Beyond adding value to the end user, these applications allow them to differentiate their products from competitor ones.

We now have working device! In a non-connected word, this device would be ready to hit the retail stores , however, on the connected world, this would be considered a vanilla device and would still need to go through the Mobile Operator for further customizations, test and certification.

Mobile Operator (pink region)

The Mobile Operator (MO) receives the vanilla device, described above, from the OEM and starts two processes: customization and test/certification – these processes can be serialized or run in parallel according to the way the MO works.

These customizations generally are:

  • Visual: branding, colors, screen pictures, water marks, boot screens, sounds, etc.;
  • User Interface: Start Menu look-and-feel, menus position, IE Mobile favorites, speed dial, etc.
  • Applications: extra applications that the MO adds to add value to the device, differentiate it from competitors and best align the device to its current strategy/services;
  • Network: specific cellular network settings like: GPRS/EDEG (APN, user, password), WAP Gateway, SMSC address, proxies, PRI, etc.

After fully configured, the device is submitted to the final test & certification process. Test & certification is used to make sure the device complies to MO’s requirements on usability, network, reliability, etc, and it can be very complex on some MOs. It usually goes between 2 to 6 weeks and, in the case a major issue is found, the whole process is started from scratch (OEMs are in charge of customizing the device and supporting it during certification).

Once certified, the handset is finally ready to be commercialized!

End User (green regions)

Well, the end user is in charge of using the device :-). And, on using it, the user ends up personalizing it, changing the home screen picture, installing applications (business and consumer oriented), creating new network settings (proxies, VPNs), etc. ISVs, developers and enterprises can also develop corporate applications and deploy it to the device; hardware partners can also integrate barcode scanners, card readers, etc…

 

I hope you have had an idea of ecosystem’s roles and the complexity of making these devices available into the market – please, let me know your comments and questions.

 

Mobile Client Software Factory - Check it out!

Are you developing LOB applications? Occasionally-connected mobile applications? Make sure to check the Mobile Client Software Factory:

Overview

A new patterns & practices Guidance offering to help you build end to end solutions on the Mobile platform. It includes a port of the Composite UI Application Block to the .NET Compact Framework. Mobile Client Software Factory – Community Technical Preview This new patterns & practices software factory extends Visual Studio 2005 with additional guidance that helps to automate designing and developing occasionally-connected mobile client applications (such as hand held field data collection). The resulting application architecture is both extensible and fully customizable. NOTE - This software factory is leveraging the patterns and design from the Smart Client Composite UI Application Block implemented on the .NET Compact Framework.

Edjez, project owner, has a description of the work developed so far:

The guidance we've put together so far -since around January?- includes:

  • A Mobile version of CAB
  • A Connection Management app block to detect connection state, and a block to help you manage configuration for application endpoints for different networks
  • A mobile DAAB with a super-simple DB data access mapping helper
  • A Disconnected Service Agent Block + Guidance Package to help you build apps that work when disconnected and that roam networks; queuing requests; configuring web service proxies appropriately and all that
  • A SQL Server replication block that simplifies how you create and manage data replication to your device; if you choose to use this as a way of getting reference data into the app
  • An Orientation Aware control that allows you to design different layouts for different screen sizes and orientations and form factors (square, rectangular, etc) directly in the VS.NET designer
  • A Unit Test Runner that allows you to write tests for the full framework using VSTS tools but then runs them in the emulator without changing your test code
  • A Reference Implementation app that shows you a simple application using all these areas together illustrating good design patterns for your business logic

Join the project at the Gotdotnet CodeGallery.

 

Windows CE X Windows Mobile - what is the difference?

Just checked Mike’s post about the announcement of Windows CE 6.0 at MEDC. He says:

It's interesting to see that this news has made it over to /. (Slashdot) - what's even more interesting is reading the comments - how are people confused between Windows CE and Windows Mobile ? - I don't get it. This is NOT a new Windows Mobile release.

Based on that I decided to translate one of the my first posts from Portuguese to plain English. Far from a in-depth technical post, this is a very simple explanation on the differences between WinCE & WM. Let’s try to shed some light on this subject:

 

Windows CE – The Embedded Operational System

Windows CE is an embedded operational system that can be used to build small footprint devices – with Windows CE one can develop robots, industrial controllers, gas station pumps, voting machines, kiosks, POS terminals, video games, medical equipment, digital music players, interactive televisions, internet appliances, cameras, etc., etc. WinCE is an open, scalable, 32-bit real-time OS. It comes with Platform Builder, the tool you use to configure, build, deploy and debug your OS. Using PB you build your OS on a componentized way – think of Lego for OS geeks - picking up the components you want to use. You can then create the shell/user interface (it doesn’t need to have that Windows-like experience – or maybe your device does not have a display at all), develop an SDK allowing developers to extend your platform, etc. You can even add your own applications to the OS…

Once you have everything in place, Platform Builder generates the OS based on the processor architecture you choose (x86, ARM, MIPS or SH), deploys it to your hardware (which will have a bootloader) and magically you have your dedicated device up and running! Ok, maybe it is a little more complicated than that, but I hope you’ve got the idea.

One can even build a cellular phone based on Windows CE – it may be a very simple handset with only voice and maybe SMS support, or as smart as a smartphone can be (think of smartphone as a category, not a product). I want to make sure you understand that this handset, based on Windows CE, will not necessary have a Windows look-and-feel – it’s probably going to have a dedicated user interface with its own email client, browser, etc. This is a nice approach, however you are not going to have a standard platform that developers, ISV, enterprises could extend…

So there comes Windows Mobile…

We decided to create a standard platform for PDAs and cell phones – allowing a common user interface, a familiar experience, a common set of APIs and developer tools, all that based on Windows CE - this platform is called Windows Mobile. As an illustration, you can think as if the Windows Mobile division was a customer of the Windows CE division (in reality we are all an unique happy family division).

We go pretty much through the same process I outlined above: we choose the components of Windows CE that are going to be part of Windows Mobile, we develop the Windows-like shell , a set of applications (like Office Mobile, Internet Explorer Mobile, WMP Mobile, etc.), the radio interface layer (RIL) for connected devices, platform OS extensions, we define the APIs and finally we generate the OS… Well, actually we do not generate the final OS, and this is the point where the process differs: we generate a kit that our hardware partners use to integrate on their own mobile devices.

Devices based on this kit are known as “Windows Mobile-based” devices: Windows Mobile-based Pocket PC, Windows Mobile-based Pocket PC Phone Edition and Windows Mobile-based Smartphone.

Resuming

Windows Mobile is not Windows CE (and vice-versa), Windows Mobile has Windows CE as its core – WM 2003 was based on WinCE 4.x, WM 5.0 is based on WinCE version 5 – plus a standard shell, applications and APIs.

Please, let me know if you have any questions/comments.

[Make sure to also read "Mobile Operator, OEM and Microsoft: Windows Mobile Roles" for a better understading on the process of releasing a Windows Mobile-based device]

Xbox + Windows Vista + Windows Mobile = Live Anywhere!

Yesterday, Bill Gates announced MS vision on gaming at Electronic Entertainment Expo (E3):

Dubbed “Live Anywhere,” the initiative puts gamers at the center of a ubiquitous always-on world where their digital identities, games, friends and digital entertainment are always accessible through the familiar Xbox Live interface, regardless of location or device. The plan also clears the way for groundbreaking cross-platform gameplay scenarios, with participants using Windows-based PCs, mobile phones and Xbox 360 consoles to play together simultaneously.

You can watch the full press conference at GameSpot (Bill Gates starts at 59'), check the press realease at PressPass and/or at the dedicated xbox press site.

 

No MEDC for me this year… :-(

I want to apologize to partners, customers and friends for not being able to make it to Las Vegas for the MEDC2006 – I’m actually grounded in Brazil until the end of this month (more on that later). Sorry!

For those attending the event, feel free to send me news, pictures and opinions – I will post them here. Galego, who happens to be in Vegas, just sent me this picture of the Labs.

Have a great MEDC!!!

 

Does IE Mobile Support AJAX? Guess what? Yes, it does!!!

I have been asked about AJAX development support for Internet Explorer Mobile (running on Windows Mobile-based devices). The short answer is: YES, IE Mobile on Windows Mobile 2003 and later supports AJAX! The long answer was given last year by Kevin Grey, SDET on the IE Mobile Team, on this great post:

If you are wondering how you can use AJAX on your website and have it function well from your Windows Mobile browser, here are a couple things you should know:

  1. On Smartphone/PocketPC 2003
    • innerText and innerHTML Properties are only supported on div and span elements
    • Form elements are scriptable as well
  2. On Windows Mobile 5
    • innerText and innerHTML Properties are supported on all elements
    • In addition there is support for document.all and the style object

Make sure to subscribe to IE Mobile’s blog, there are some great content there, like : Customizing IE Mobile with User Stylesheets, XML Data Islands in IE Mobile, Extending IE Mobile in so many ways...

 

How geek are you? How about editing code on your Pocket PC?!

Let's say you need to finish that software project in the next hour but are stuck in the traffic... don't worry anymore! Now you can open up your Visual Studio project on your Pocket PC and start coding at anytime and anywhere!

Logical Sky has launched CEdit:

CEdit is a programmer's source code editor for Windows Mobile devices.

CEdit features color syntax hilighting and project navigation features for a wide range of commonly used programming languages. CEdit is designed for developers who need to work with their source code when they are away from their desks.

CEdit is compatible with Microsoft Visual Studio 2005, 2003 and version 6.0 project file formats. Using CEdit, you can open your desktop project files directly on your Pocket PC so that you have quick and easy access to all of your source code. CEdit displays the project workspace folders on your Pocket PC, so you can quickly open a project and access the code you are looking for.

That is cool!!! :-)

 

Microsoft Device Emulator 2.0 Beta CTP available!

Barry, who owns WM and WinCE device emulation, let us know on this post that the new V2 Beta CTP is available for download here!

According to Barry, V2 has:

  • Much improved performance
  • DEComInterfaces.idl - the COM interface to the emulator, along with sample code showing how to use DMA to communicate between a Windows app and an app or driver running inside the emulator.  This is the DeviceEmulator's equivalent of the "Building DMA Drivers for the Windows CE.NET Emulator" article at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncenet/html/builddmadriver.asp.
  • An eXDI driver for Windows CE Platform Builder 5.0, giving you a hardware debugger interface to the emulator.
  • TabletPC ink input support
  • Countless bug fixes

You will not want to miss this one, believe me :-)

 

ActiveSync 4.2 Beta Preview

It is now time for ActiveSync to go live with a Beta Preview of the new 4.2 version! More information here.

ActiveSync 4.2 Beta Preview is an early look at the latest sync software release for Windows Mobile devices.

Microsoft ActiveSync provides a great synchronization experience with Windows powered PCs and Microsoft Outlook right out of the box. ActiveSync acts as the gateway between your Windows powered PC and Windows Mobile powered device, enabling the transfer of Outlook information, Office documents, pictures, music, videos and applications from your desktop to your device. In addition to synchronizing with a desktop PC, ActiveSync can synchronize directly with Microsoft Exchange Server 2003 so that you can keep your e-mail, Calendar, Notes, and Contacts updated wirelessly when you’re away from your PC.

The ActiveSync 4.2 Beta Preview delivers new features to improve the synchronization experience for customers.

You can provide feedback from the following site: http://www.microsoft.com/windowsmobile/downloads/activesync42feedback.mspx

Happy testing!

 

.NET Compact Framework 2.0 SP1 Beta is available!

Have you seen it? .Net CF 2.0 Service Pack 1 Beta is available for download here! Check out this post from the .NET CF Team on the new features and bug fixes.

From the post above:

  • Support for WinCE 4.2.  For more information see Richard Greenberg's BLOG.
  • Allow GAC to be installed to Storage Card.
  • Allow DataGrid cell drawing to be overridden.
  • Enable .NET Framework SDK Debugging via MDBG.
  • Include Network Log Viewer.
  • Include .NET Compact Framework Remote Performance Monitor.  For more information see Steven Pratschner's BLOG.
  • Support Headless WinCE 5.0 Devices.  For more information see Mark Prentice's BLOG.
  • Add the [Serializable] attribute to better facilitate serialization extensibility and code portability.

While on their blog, make sure to read about DataGrid Control enhancements on SP1...

 

MEDC Blogs, photos and podcast...

A quick update on some activities MED has started related to MEDC2006:

BLOGS:

Backstage at MEDC
http://blogs.msdn.com/lokeuei/

Mike Hall’s Embedded WEblog (I'm sure you already know this one :-)
http://blogs.msdn.com/mikehall

PHOTOS:

MEDC 2006 Team
http://www.flickr.com/photos/medc2006team

MEDC Photo Pool (if you're involved in MEDC, feel free to contribute)
http://www.flickr.com/groups/medc2006

PODCAST:

MEDC 2006 Video Podcast
http://feeds.feedburner.com/Medc2006VideoPodcast

See you!

 

Microsoft Office Communicator Mobile is now available!

Communicator Mobile is now available for download here! From the CM site:

The Communicator Mobile client is designed to extend the reach of Live Communications Server 2005 using Windows Mobile powered devices. Communicator Mobile has a look and feel similar to the desktop version of Microsoft Office Communicator 2005 and ensures that access to the capabilities provided by Live Communications Server 2005 can continue when people are away from their desks.

And if you happen to have a Wifi enabled device:

When used in conjunction with a Windows Mobile 5.0 pocket PC device that includes a wireless fidelity (Wi-Fi) network adapter, Communicator Mobile can be used to make Voice over Internet Protocol (VoIP) calls to other Communicator Mobile users or the desktop version of the Communicator client over a corporate Wi-Fi network.

Make sure to check it out!

 

SQL Mobile goes Everywhere!

For those (like me) who have missed this announcement, SQL Mobile is now called SQL Everywhere, and guess what, it runs everywhere: Windows Mobile & desktop!

Check out Paul Flessner's update on SQL Server, Jim Wilson's comments on this new technology and this great FAQ from Steve Laker.

See you everywhere!

 

500,000 Windows Mobile-based devices...

Humm, that's a bunch of gadgets...  :-)

If you live in US, the next time the census rep nocks your door during 2010, he/she may be carrying a WM device! Bloomberg has published the story.

 

More Posts Next page »