- 浏览: 1488336 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
在Silverlight企业级项目开发中,访问数据库是很常见的事情, 这里我不详谈Silverlight如何操作数据库,详细可以访问Silverlight访问数据库三种方法 和 SilverLight数据库访问示例 两篇文章,其中介绍的很详细。在Silverlight操作数据库的方法中,比较常用的是通过WCF服务进行存取数据库。
WCF为了给Silverlight客户端提供引用共享类型,我们必须定义相关DataContract和DataMember契约属性,通过这些 属性来制定一个类的数据结构。Silverlight客户端可以通过添加引用和服务器端进行通讯。在实际项目中,这样的定义局限性太多,微软当前已经推出.Net RIA Services 来解决这个问题,但是,当前.Net RIA仍旧是测试版本,不能被运用于正式项目。针对这个问题,我看了相关Prism框架资料,Prism设计出一个WPF和Silverlight的共享 代码方案,参考这个概念,我考虑将Silverlight项目中的数据契约独立提取出一个类,然后将该类共享与Silverlight和WCF之间。这 样,我们可以在这个独立契约类中做一些复杂的功能同时供客户端和服务器端共享调用。但是,由于Silverlight客户端和服务器端有着不同的CLR, 所以,不得不在创建项目的同时,删除一些相关有冲突的引用。详细步骤请看演示:
1. 首先创建一个项目,“SilverlightChina.CodeSharing”
2. 建立新的契约类项目,该类项目将保存DataContract和DataMember,首先创建一个Silverlight类项 目,SilverlightChina.CodeSharing.Client,然后创建.Net类项目 SilverlightChina.CodeSharing.Server,对于新创建类,本身都会有Class1.cs文件,在这次演示中不需要该文 件,删除即可。
3. 统一命名一个命名空间,这样做是为了能够同步共享信息。分别进入两个新建类项目的属性页面,添加默认的命名空间, SilverlightChina.CodeSharing.
4. 建立一个类,创建契约成员,这个类文件可以在客户端创建,也可以在服务器端创建,这里我选择在SilverlightChina.CodeSharing.Client客户端创建。
我创建了一个新的类Student,该类描述学生信息。由于服务器端CLR不支持System.Windows类库,所以,我们需要删除其引用。
2 using System.Net;
3
4 namespace SilverlightChina.CodeSharing.Entities
5 {
6 public class Student
7 {
8 public string Name { get ; set ; }
9 public string EmailAddress { get ; set ; }
10 }
11 }
12
5. 添加一个“链接类”到SilverlightChina.CodeSharing.Server, 通过链接类进行共享契约成员。
这样,已经共享契约类已经建立完成,下面来演示如何使用该类.
1. 首先在Web项目中,添加SilverlightChina.CodeSharing.Server引用, 然后建立WCF服务,
2. 创建一个WCF函数返回类,这里和普通的WCF访问数据库返回数据是一样的方法, 这里我们调用了SilverlightChina.CodeSharing.Server的契约成员属性。
using System; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Activation; using System.Collections.Generic; using System.Text; using SilverlightChina.CodeSharing.Entities; namespace SilverlightChina.CodeSharing.Web { [ServiceContract (Namespace = "" )] [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode .Allowed)] public class StudentService { [OperationContract ] public Student GetStudent() { return new Student () { Name="Jv9" , EmailAddress ="QQ34506@hotmail.com" }; } } }
3. 在Silverlight客户端使用契约成员,Student。首先要添加一个服务引用,添加的时候,点击“Advanced”检查是否选中,重复使用所有类库。
4. 在客户端添加引用。
using SilverlightChina.CodeSharing.Entities;
using SilverlightChina.CodeSharing.Services;
5. 在客户端调用WCF服务。
using System; using System.Windows; using System.Windows.Controls; using SilverlightChina.CodeSharing.Entities; using SilverlightChina.CodeSharing.Services; namespace SilverlightChina.CodeSharing { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); ClientTest(); } void ClientTest() { var client = new StudentServiceClient (); client.GetStudentCompleted += (sender, ea) => { tbName.Text = ea.Result.Name; tbEmail.Text = ea.Result.EmailAddress; }; client.GetStudentAsync(); } } }
6. 返回结果为:
这样已经实现了共享契约成员的功能,在上面ClientTest中,可以添加任意的方法进行数据绑定。
源代码下载:http://silverlightchina.net/uploads/soft/091203/1-0912031A139.zip
发表评论
-
SilverLight异步调用WebService出错!
2010-01-19 12:58 5362SilverLight异步调用WebService出错! ... -
Silverlight播放器 C#语言
2010-01-13 13:30 3258这段时间研究Silverlight中的MediaElement ... -
使用Silverlight,制作简单播放器的一点点心得。
2010-01-13 13:28 3610首先介绍什么是Silverligh ... -
初探silverlight--简易播放器
2010-01-13 13:28 1471<UserControl xmlns=" ... -
新开发的silverlight视频播放器,
2010-01-13 13:21 4434http://www.chenjiliang.com/Arti ... -
Silverlight教程第四部分:使用 Style 元素更好地封装观感
2010-01-12 22:11 1222Silverlight教程第四部分 ... -
Silverlight Carousel: Creating a Silverlight Control Displays Picture in an Inte
2010-01-12 18:18 1817http://www.codeproject.com/KB/s ... -
Using projection to build a 3D carousel in Silverlight 3
2010-01-12 18:14 2280http://ww ... -
CoverFlow – built using Silverlight 3's 'Projection' feature
2010-01-12 18:11 1841CoverFlow – built using Silver ... -
silverlight动画播放停止重播等控制
2010-01-06 12:38 1346ani.begin() ani.stop(); ani. ... -
silverlight速学范例100
2010-01-06 12:37 1235silverlight速学范例100 ... -
Silverlight 中的 HTTP 通信和安全
2010-01-04 23:43 1972Silverlight 中的 HTTP 通信和安全 < ... -
Visual Studio的 诡异bug(mscorlib无法引用)引发的对话 and Silverlight XAML 构造出错
2010-01-04 09:25 4073... -
Silverlight常见问题及解决方法
2009-12-22 14:06 1224Silverlight常见问题及解决方法 ... -
网上常用免费webservice 查询
2009-12-22 12:47 4552网上常用免费webservice 查询 2008-11 ... -
必应 Bing 新特性之最新文章, Wolfram|Alpha 整合, 天气搜索等已推出
2009-12-21 23:33 1459必应 Bing 增加了一项“最新文章”的搜索结果特性,例如下图 ... -
下载silverlight官网的全部视频教程
2009-12-21 23:30 14810Silverlight官网提供了许 ... -
Create a Silverlight Europe weather map
2009-12-21 22:55 1538I don’t generally fi ... -
必应地图图片系统(Tile System)之二
2009-12-21 22:53 2242【坐标系和地图图片编 ... -
必应地图SilverLight控件入门讲座之六:显示街景(Streetside)
2009-12-21 22:51 4815必应地图SilverLight控件入门讲座之六:显示街景(St ...
相关推荐
silverlight和wcf之间相互通讯,主要实现了在silverlight中引用wcf类库服务,通常silverlight项目只能引用silverlight相关的类库。
wcf c# 服务器 客户端 示例 wcf c# 服务器 客户端 示例
WCF操作实例包括服务器端与客户端的经典实例。
Silverlight WCF RIA服务(二十二)Silverlight 客户端 3 源代码
wcf服务器端后台代码,可以在写个客户端代码来调用。wcf接口调用方法很简单的了。希望有帮助。
wcf聊天工具.net实现,包含客户端、服务器端全套实例,支持点对点、多对多。是了解wcf通信协议、在线聊天功能实现的干货实例
WCF客户端动态设置WCF服务器主机.doc
WCF RIA 服务 (二十七)-- Silverlight 客户端 8 源代码
silverlight+Wcf实现登录silverlight+Wcf实现登录
WCF RIA 服务 (二十六)-- Silverlight 客户端 7 源代码
WCF RIA 服务 (二十四)-- Silverlight 客户端 5 源代码
WCF RIA 服务 (二十五)-- Silverlight 客户端 6 源代码
刚整理的一套android客户端调用wcf服务的文档,适合新手学习。
WCF客户端动态设置WCF服务器主机[文].pdf
wcf 服务器 客户端正简单 事例 wcf 服务器 客户端正简单 事例
请大家帮助解决!Silverlight调用控制台wcf跨域问题
1.文件夹SilverlightFrmWcf : winform程序托管wcf服务Silverlight调用wcf 跨域解决方案 (1)解决方案frmWcfService:winform程序托管wcf服务 (2)Silverlight项目调用wcf解决方案 2.文件夹SilverlightWCFDemo: iis...
WcfServiceLibrary1--- wcf服务:生成dll文件给宿主引用 WinFormsWcfService--- 宿主 WcfClient---调用wcf服务客户端
由于自己在学习silverlight中调用wcf服务遇到了一些麻烦,走了弯路,现在整理一个非常简要的demo供大家使用!相关说明:http://blog.csdn.net/liushengpiaoxu/archive/2009/02/28/3945454.aspx