我正在开发的应用程序应该与Window CE 4.x及更高版本兼容。所以,我决定选择.NET compact Framework 2.0作为开发选项。
但现在我遇到的情况是,我无法找到任何合适的解决方案来满足我的以下要求。
要求
我的应用程序需求是通过Web服务在应用程序中显示数据库表的信息。
问题:
表中的信息是动态的,每隔几秒/分钟就会插入一次,.NET CF应用程序应该显示最新的(最后4个或配置的N个)信息。
我正在考虑在应用程序中实现pull技术,应用程序将每2/5秒或几分钟进行一次web服务调用,但这种方法看起来不太好,因为它会增加不必要的服务调用,因为可能在几分钟后插入新信息。
所以,我正在考虑在应用程序中使用推送技术,服务器将在数据库表中插入新记录时向.NET紧凑框架应用程序(客户端)发送通知。通知具有记录主键的消息,因此,.NET compact framework应用程序将在从服务器推送通知时调用具有主键的web服务方法,并在应用程序中显示信息。
上面的推送技术方法看起来很简单,但我不知道它的实现。
我试图在互联网上搜索相同的解决方案/示例,但找不到。
有人能在推送技术方面帮我吗?如何在我的应用程序中实现它?
为了能够推送一些东西,应用程序需要一个一直在等待推送的服务。这可以是由服务发出信号的套接字连接,也可以是发送到设备并由应用程序处理的短信。
不幸的是,Windows Mobile上没有像Android、iOS和Windows Phone那样支持标准的PUSH通知。
Windows Phone上不支持PUSH通知,您可以通过任何类型的服务来实现这一点,应用程序可以一直尝试等待PUSH。。。
我实现了以下解决方案,以在.net compact框架应用程序中获取最新插入的数据。
- 我创建了windows服务应用程序,该应用程序托管在windows服务器上,并监视SQL server数据库表以获得新记录插入的通知。为此,我使用了TableDependency库
- 此窗口服务还启动TCP服务器(IP地址和端口)
- 现在,一旦在SQL server表中插入新数据,Window服务应用程序将在
SqlTableDependency.OnChange
事件中收到通知,新记录插入数据消息将发送到TCP server的所有连接客户端(Windows CE应用程序)