没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2009-06-16 10:16:58.000|阅读 440 次
概述:Silverlight中数据访问的实现方式非常之多,可以直接通过HTTP页面提供访问接口,也可以通过WebService、WCF以及其他的相关技术来实现。在MIX 09上,Nikhil Kothari发布了微软的一神作——Microsoft .NET RIA Services,主要用来提供RIA应用的数据访问服务,详细可以查阅博友 流牛木马 的《Microsoft .NET RIA Services快速上手 》这篇文章。在开源项目FluorineFx中也提供了供Silverlight实现RPC的类库,究竟谁的传输效率高呢这里暂不讨论,本文作重介绍如何使用FluorineFx Silverlight库去实现Silverlight远程过程调用(RPC)。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
Silverlight中数据访问的实现方式非常之多,可以直接通过HTTP页面提供访问接口,也可以通过WebService、WCF以及其他的相关技术来实现。在MIX
09上,Nikhil Kothari发布了微软的一神作——Microsoft .NET RIA
Services,主要用来提供RIA应用的数据访问服务,详细可以查阅博友 流牛木马 的《Microsoft
.NET RIA Services快速上手
》这篇文章。在开源项目FluorineFx中也提供了供Silverlight实现RPC的类库,究竟谁的传输效率高呢这里暂不讨论,本文作重介绍
如何使用FluorineFx
Silverlight库去实现Silverlight远程过程调用(RPC)。
本文实例程序开发环境:Microsoft Visual Studio 2008 + SP1、.net framework 3.5 + SP1、 Silverlight 3 Beta、FluorineFx v1.0.0.15 。本文最终的项目解决方案如下图:
一、在Silverlight中的网络安全访问限制
如果连接请求是从 WebClient 或 HTTP 类到某个跨域站点的,则 Silverlight 2 运行时将使用 HTTP 协议尝试下载安全策略文件。Silverlight 2 运行时首先尝试使用 HTTP 协议下载所请求目标域的根目录下名为“clientaccesspolicy.xml”的 Silverlight 策略文件。如果返回 Silverlight 策略文件(即使在分析该文件时出现错误),则在 Silverlight 应用程序的整个会话期间,此文件将用作该跨域请求以及针对该服务器的所有后续请求的策略文件。如果找不到 Silverlight 策略文件,则 Silverlight 2 运行时尝试使用 HTTP 协议下载所请求目标域的根目录下名为“crossdomain.xml”的 Flash 策略。[载自MSDN]
二、基与FluorineFx的远程调用服务接口
接下来创建FluorineFx类库,提供远程访问服务接口(RemotingService),并提供相应的方法让Sliverlight客户端通过FluorineFx通信网关实行RPC调用。
三、使用FluorineFx网站宿主FluorineFx远程服务
供远程访问(RemotingService)接口完成后,还需要建立一个FluorineFx网站,用来承载这个接口的远程服务。并同时配置AMF通信的信道(在services-config.xml中配置)。然后运行这个网站以得到客户端RPC访问时所需要的网关地址,这里是本地测试。如果部署到服务器上则根据实际的部署信息(服务器IP/网站域名等)访问。本地网关地址:http://localhost:3103/WebHost/Gateway.aspx。通过FluorineFx控制台测试便可以看到FluorineFx远程服务接口方法的调用情况,如下图示:
四、创建Silverlight应用程序
现在创建一个Silverlight 应用程序,并为此应用程序创建一个宿主这个应用程序客户端的Web应用程序,这里的宿主Web应用程序就直接创建在上面提供远程服务接口的FluorineFx网站中,当然你也可以创建新的Web应用程序来宿主Silverlight应用程序客户端。
五、通过FluorineFx的Silverlight库实现Silverlight应用的RPC
这里首先定义一个DTO(数据传输对象)对象Book,如下:
在Siverlight应用中,在舞台上布局一个按扭,用来发起远程调用。使用DataGrid控件来显示调用结果。
现在这一步很关键,要使Siverlight能够成功实现RPC,需要使用FluorineFx所提供的Siverlight库,不是使用FluorineFx for .NET framework,正确的是使用FluorineFx for Siverlight库,此库位于FluorineFx的安装目录x:\FluorineFx\Bin\net\Silverlight2.0\FluorineFx.dll。库类封装了Siverlight实现RPC的相关API。
在Siverlight应用程序初始化的时候对远程访问连接进行初始化,并为其委托一个网络连接状态处理函数onNetStatus。
和Flex开发一样,同样使用NetConnection的call()方法去调用远程服务方法,不同的是Siverlight中没有Resonder去处理方法的返回结果,而是需要自己定义一个回调处理程序去处理返回结果,此处理程序必须实现接口IPendingServiceCallback,详细如下:
IPendingServiceCallback接口中的ResultReceived()方法专门用来处理RPC调用的结果,这里将返回结果通过相应的解析处理后回调Siverlight应用中的Bind()方法,实现将返回的结果绑定到Siverlight控件DataGrid上。程序运行截图:
参考文献:http://blog.fluorinefx.com/?p=17
本文示例代码下载:RPCSolution.rar
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号