是否可以在 Windows CE 平台上运行我的 Windows 窗体应用程序?
Posted
技术标签:
【中文标题】是否可以在 Windows CE 平台上运行我的 Windows 窗体应用程序?【英文标题】:Is it possible to run my Windows Form application in Windows CE platform? 【发布时间】:2011-01-18 09:29:24 【问题描述】:我是 Windows CE 开发的新手,还没有做过。在这里需要专家的一些建议。
在我们当前的项目中,我们正在开发一个客户端-服务器应用程序。客户端使用基于 Windows XP 操作系统的 Windows 窗体应用程序,而服务器是基于 Web 的应用程序。
此问题与客户端应用程序(Windows 窗体)有关。此应用程序使用 Sql Server Express Edition 进行数据存储。数据以 XML 对象格式存储。它还可以通过 Web 服务将数据从客户端传输到服务器。它还与磁条阅读器、非接触式智能卡阅读器和热敏打印机等硬件进行交互。大多数硬件设备和系统之间的通信都是基于串行端口的。它使用标准 app.config 进行配置,是一个多线程应用程序。
对于使用 Windows CE 平台的手持设备有一个新的要求。该手持设备包括非接触式智能卡读卡器、打印机和磁条读卡器等所需设备。除了开发新的客户端应用程序,我是否可以将基于 Windows XP 的当前应用程序转换为 Windows CE?如果是,我该怎么做?如果不是,是否还有其他出色的建议可以这样做?
提前致谢。 软件工程师
【问题讨论】:
【参考方案1】:您正在寻找的数据库技术是 SQL Server Compact Edition(又名 SQLCE)。
SQL CE 数据库实例是本地文件存储上的单个文件 (.sdf)(很像旧的 Access 数据库),并且不作为单独的服务运行。因此,请务必巧妙地关闭数据库连接(使用 finally 子句!)。
不过,通过简要阅读您的应用上下文,我认为您不会遇到大规模的多访问/连接池问题。
关于 WinCE 上的 Windows 窗体的烦恼:
-
sllllooooowwww(图形加速器不可用之类的)
标签不自动调整大小,只读
多行文本框是一个东西
有时会依靠
按钮上的文字不自动换行
不支持动画 GIF
图片框
当您修改了在您的设备上运行的代码时,您会发现很难移植回来,因此请在您的源代码管理中完全保留一个新树... :(
【讨论】:
【参考方案2】:正如其他人所提到的,.NET Compact Framework 是必经之路。
一个有用的提示:要确定 CF 是否支持某些东西,MSDN 页面上有一个小的手持图标,如果您滚动它会显示“.NET Compact Framework 支持”。因此,例如您转到 WaitHandle 方法,您可以看到支持 WaitOne,但不支持 WaitAny 或 WaitAll。这可以让您更好地了解您可能需要改变多少。
【讨论】:
【参考方案3】:这需要一些努力,但这是可能的。 Windows Forms 不等于 Windows Mobile,因为 Compact Framework 只是 .NET Framework 的一个子集。 此外,您应该注意一些限制,特别是关于内存分配(WinCE 限制分配给单个应用程序的内存为 32mb)、线程和有限的计算资源(例如,在我公司的应用程序中,进行了一些屏幕更改通过独立线程)。
【讨论】:
您提到的每个进程 32MB 的 Windows CE 限制适用于 Windows CE 5 及更低版本。在 Windows CE 6 中没有这样的限制。 观察得很好,我忘了补充 :) 但是考虑到 WCE5 设备的数量,也许它仍然是一个有效的考虑因素 :) 好消息,我最担心的是性能问题,因为我的应用程序使用了大量的 I/O、内存使用和句柄。【参考方案4】:是的,可以使用.NET compact framework.
但是,您必须意识到,CF 是完整 .NET 平台的子集,而 CLR 的 CE 版本与桌面版本具有不同的限制。
您将能够重用您的大部分代码,但您将不得不花费大量时间重新设计您的 UI 并更改您的代码以解决紧凑框架的差异和限制。
【讨论】:
+1 是的,非常小的子集。它肯定会让你说“哇哦真的吗?它不支持”,很快就会变成“#$%#$ 你是认真的吗!?”哈哈。祝你好运!【参考方案5】:这是可能的,但您必须将自己限制在.Net compact framework 中可用的内容。
此版本的框架设计用于嵌入式设备和 Windows CE。
【讨论】:
【参考方案6】:Windows CE 中的 API 明显不同,某些方面可能很容易移植,但可能需要进行大量修改。
【讨论】:
以上是关于是否可以在 Windows CE 平台上运行我的 Windows 窗体应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
串行 I/O 与 Windows/Windows CE 重叠/非重叠
Windows 10 使用 Visual Studio Express 2015 构建程序 使用 SQL Server CE 只是挂在其他平台上
将桌面快捷方式部署到运行 Windows CE 4.2 (VS2005) 的设备