是否可以编写在 Windows Mobile 6.5 和 Windows Embedded 8.1/10 Handheld 上运行的应用程序?

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

一位客户需要一个应用程序 运行在带有条码扫描仪的工业手持设备上。

不幸的是,Windows 8.1 嵌入式手持设备很少见,Windows 10 嵌入式设备不存在。当前可用的几乎所有设备都使用 Windows CE 6 或 Windows Mobile 6.5。

据我所知,Windows Mobile 6.5 的 (.NET) 应用程序完全基于 Compact Framework 和 WinForms,而 Windows 8.1 嵌入式软件(完全?)基于 WinRT和 XAML.

对吗?有没有办法编写一个 (.NET) 应用程序

你是对的,没有办法做到这一点。 UI 基于 winforms for 6.5 和 XAML for 8/10。 您唯一可以尝试做的就是尝试将 UI 和业务逻辑清晰地分开以简化迁移。 还要考虑您在 6.5 上拥有的一些功能(例如:sql compact)已在 8/10 中删除,并且 "replacement" 可能与代码不兼容并且可能缺少某些功能。 您可以尝试在 8 月 10 日构建和测试您的非 UI 代码,这样您就可以检查您没有使用可能影响迁移的功能。

如果您不必编写本机 .NET 代码,您应该能够使用 Rho Elements。可能还有其他适用的跨平台解决方案。

也许您可以在 Windows Mobile 6.5 上使用 Windows.Forms,在 Windows Phone 上使用 Xamarin。 Compact Framework 的Form 代码和Xamarin 支持的Form 代码需要使用兼容层。

但我建议使用 HTML5(在 Windows 移动设备上使用 ZetaKey 浏览器)。甚至 RhoElements 也是基于 HTML5 但具有属性扩展。

是的,这是可能的。您将必须实现所有依赖于平台的 GUI 逻辑。并且可以使用 MVVM 模式共享代码。您可能还需要切换到一个数据库,该数据库在 SQLite 等两个平台上都可用。