多个Silverlight应用程序如何共享一个DomainService
2011-11-14 17:02
337 查看
WCF RIA Services使用DomainService提供数据访问等服务,如果在Silverlight中使用,只要设置了WCF RIA连接,就能自动生成数据访问的客户端代理类,这为我们开发提供了方便。
我们通常是建立一个Silverlight Bussiness Application的项目,其中包含一个Silverlight项目作为客户端,一个Web结尾的项目承载我们的Domain Service服务。
刚开始我还受用这种模式,数据访问那么的自然,没有多余的WCF请求代码。然而当我做第二个应用程序时,遇到了麻烦,我该如何重用第一个应用程序中已经写好的Domain Service呢?我首先想到了把我的SL连接到上一个Web项目,然而一个SL应用只能连接一个Web项目,我不想把所有代码都放在一个应用程序下面,并且如果我要连接的web项目不是我开发的,我又该怎么连接?然后,我想到了添加服务引用,就像WCF服务一样,然而Domain Service总是不被其他SL项目发现,需要配置web.config将Endpoints暴露出来,并且这样等于放弃了WCF RIA Services的优势。
最后,终于找到了解决方法:使用WCF RIA Service类库。然而类库并不能独立发布,必须在Web项目中承载后,才能供我们访问,这样我们的解决方案的结构应该是:
其中ShareRIAServices开头的俩项目是WCF RIA Service类库项目,一个用于供silverlight项目引用,一个供Web项目引用。
FistSilverlight.Web项目承载DomainSerive服务ShareRIAServices.Web,提供访问。
AnotherSLApp引用ShareRIAServices,其中包含了自动生成的客户端Proxy代码。并且包含在另一个应用AnotherWeb中.
由于URL路径不同,我们Context类需要指定DomainService的URL地址:
服务的命名是名称空间+类名.svc,其中用“-”连接。
这样任何需要使用ShareRIAServices.Web中的DomainService服务的SL应用程序,只需要引用ShareRIAServices即可,如果是别人开发的,只需要引用ShareRIAServices.dll就行。
我们通常是建立一个Silverlight Bussiness Application的项目,其中包含一个Silverlight项目作为客户端,一个Web结尾的项目承载我们的Domain Service服务。
刚开始我还受用这种模式,数据访问那么的自然,没有多余的WCF请求代码。然而当我做第二个应用程序时,遇到了麻烦,我该如何重用第一个应用程序中已经写好的Domain Service呢?我首先想到了把我的SL连接到上一个Web项目,然而一个SL应用只能连接一个Web项目,我不想把所有代码都放在一个应用程序下面,并且如果我要连接的web项目不是我开发的,我又该怎么连接?然后,我想到了添加服务引用,就像WCF服务一样,然而Domain Service总是不被其他SL项目发现,需要配置web.config将Endpoints暴露出来,并且这样等于放弃了WCF RIA Services的优势。
最后,终于找到了解决方法:使用WCF RIA Service类库。然而类库并不能独立发布,必须在Web项目中承载后,才能供我们访问,这样我们的解决方案的结构应该是:
其中ShareRIAServices开头的俩项目是WCF RIA Service类库项目,一个用于供silverlight项目引用,一个供Web项目引用。
FistSilverlight.Web项目承载DomainSerive服务ShareRIAServices.Web,提供访问。
AnotherSLApp引用ShareRIAServices,其中包含了自动生成的客户端Proxy代码。并且包含在另一个应用AnotherWeb中.
由于URL路径不同,我们Context类需要指定DomainService的URL地址:
const string ServicePath = "http://localhost:52878/ShareRIAServices-Web-ShareDomainService.svc"; ShareRIAServices.Web.ShareDomainContext sc = new ShareDomainContext(new Uri(ServicePath));
服务的命名是名称空间+类名.svc,其中用“-”连接。
这样任何需要使用ShareRIAServices.Web中的DomainService服务的SL应用程序,只需要引用ShareRIAServices即可,如果是别人开发的,只需要引用ShareRIAServices.dll就行。
提供Silverlight打印全套解决方案及全部源代码--支持打印预览、页面设置(横向纵向,页边距,纸张大小、字体大小)、自动分页和多页连续打印
相关文章推荐
- 如何建立一个类似Instagram的照片共享应用程序的HTML5
- 如何构建一个类似Instagram的照片共享应用程序的HTML5:第2部分
- 【MOSS 2010】 如何开发一个自定义的WebPart来承载Silverlight应用程序
- 【MOSS 2010】 如何开发一个自定义的WebPart来承载Silverlight应用程序
- UNIX 编程技巧——如何 hook 一个共享库
- 一个XAP中有多个Silverlight控件时如何选择调用
- [iOS 开发] 如何获取设备唯一标识?以及多个App间如何共享同一个设备唯一标识?
- Silverlight开发中的疑难杂症-控件设计篇-如何实现一个NumericBox(上)
- 如何在应用程序中使用Silverlight Toolkit中的主题样式
- 如何只保留一个应用程序实例
- 一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序
- 如何使应用程序只运行一个实例
- iOS 如何在一个应用程序中调用另一个应用程序
- Maven 3 入门 -- 如何创建一个web应用程序
- SilverLight学习笔记--实际应用(一)(3):手把手建立一个Silverlight应用程序之删除记录
- SilverLight学习笔记--实际应用(一)手把手建立一个Silverlight应用程序
- 如何使应用程序只运行一个实例(VC)
- 多个分布式系统如何共享使用一个固定公网IP
- 如何防止一个MDI应用程序在启动时打开一个新(空)文档?(新)