65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 .NET Compact Framework 创建桌面应用程序远程控制 (第一部分)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.65/5 (29投票s)

2004 年 2 月 1 日

CPOL

3分钟阅读

viewsIcon

241839

downloadIcon

5048

本文为使用 .NET Compact Framework 创建桌面应用程序远程控制奠定了基础。

Sample Image - pocketremote.jpg

引言

移动计算的世界随着每一天的到来而不断发展。如今,手持设备与传统桌面计算的融合才刚刚开始。利用手持设备扩展桌面应用程序的可能性是无限的。

例如:考虑一个带有 PowerPoint 应用程序远程控制的 Pocket PC。演示者可以利用现有的 802.11 连接,从房间的任何位置控制演示文稿,而无需悬停在演示计算机上方。

另一个例子是 Windows Media Player 的应用程序远程控制。这可以作为 Windows XP Media Center 的附加组件,或者仅仅是普通的 Windows Media Player。用户可以从网络上可用的歌曲播放列表中选择要在连接的家庭娱乐系统上播放的下一首歌曲。

当然,还有许多其他的想法,例如 WinAmp 远程控制、操作系统远程控制(远程重启、关闭或重启计算机)以及整个家庭自动化系统。 还有许多用于监视应用程序的可能性,其中手持设备更像是用于查看远程状态信息的数据板。

本文是讨论创建应用程序远程控制的一种可能方法的一系列文章中的第一篇。

背景

所提出的解决方案涉及使用 TcpClient 类,该类在 .NET Compact Framework 和完整 .NET Framework 中都可用。

您可能会问为什么不使用 Web 服务? Web 服务的唯一问题是用户需要托管 Web 服务。这通常存在于企业解决方案中,但实际上并不适用于消费市场。由于 .NET Compact Framework 不支持 Remoting 服务,因此 Remoting 服务不是一种选择。

虽然 Remoting 将是一个理想的解决方案,特别是如果 .NET Compact Framework 支持对象和类的序列化,但 TcpClient 具有足够的强大功能,可以用最少的麻烦完成这项工作。

一个会使任务比应该做的更困难的限制是缺少对象和类序列化支持。创建一个包含远程控制桌面应用程序所需的所有必要方法和属性的类会更简洁。 TcpClient 将允许两个应用程序读取和写入网络流。因此,为应用程序远程控制编写命令消息更容易,类似于 FTP 客户端如何通过套接字连接发送简单的文本命令。

在以后的文章中,我们将研究如何改进通信子系统。我们将考虑自定义类序列化为 XML 以及从 XML 序列化,而不是简单的文本命令。

大部分好的实现都在源代码中。 老实说,这真的不复杂。 有一些事情确实使桌面应用程序远程控制开发人员的生活更轻松。 一是拥有一个无线网络和一个可以在该网络上工作的手持设备。

不幸的是,不能使用 ActiveSync,因为它会将设备置于与网络其余部分不同的子网中。 这会使调试变得非常痛苦。 由于您无法在没有创建自定义侦听器的情况下在 .NET Compact Framework 上执行 Debug.WriteLine,因此最好有一个多行 TextBox 在测试时向其发送消息。

桌面应用程序远程控制有两个部分,一个是在某种类型的手持设备上运行的远程客户端,另一个是在某种类型的桌面机器上运行的远程服务器。 在此示例测试 PocketRemote 中,手持设备可以向服务器发送用户选择的消息。 服务器只显示消息,并将响应发送回运行远程客户端应用程序的手持设备。 手持设备从远程服务器获取响应并在手持设备上向用户显示它。

在接下来的几天里,我希望一次讨论一个部分,详细介绍它们的工作方式。 我很乐意听到有关本文或任何未来文章的任何反馈、问题、想法或建议。

© . All rights reserved.