Search code examples
c#windows-mobilewindows-cewindows-10windows-embedded

Is it possible to write an application that runs on Windows Mobile 6.5 as well as Windows Embedded 8.1/10 Handheld?


A customer needs an application running on an industry handheld device with barcode scanner.

Unfortunately, Windows 8.1 Embedded Handheld devices are rare, and Windows 10 Embedded devices are non-existent. Almost all devices currently available use Windows CE 6 or Windows Mobile 6.5.

As far as I know, (.NET) applications for Windows Mobile 6.5 are exclusively based on Compact Framework and WinForms, whereas Windows 8.1 Embedded software is (exclusively?) based on WinRT and XAML.

Is that correct? Is there no way to write a (.NET) application which

  • runs on current (Windows Mobile 6.5) devices and
  • will run Windows 8.1/10 Embedded devices?

Solution

  • You are right, there is no way to do that. The UI is based on winforms for 6.5 and XAML for 8/10. The only thing you can try to do is to try to keep UI and business logic cleanly separated to simplify the migration. Consider also that some features you had on 6.5 (ex: sql compact) have been dropped in 8/10 and the "replacement" may not be code-compatible and may lack some features. You may try to build and test your non-UI code already on 8/10, so you can check that you are not using features that may impact your migration.