文章标签 ‘WCF’
[转载]Silverlight+WCF 实战-网络象棋最终篇之解决重复的消息提示-状态重置(九) – 路过秋天 – 博客园. 上节留下的问题: 在上一节:Silverlight+WCF 网络象棋 终极篇 解决重复的消息提示(八) 中,我们解决了重复登陆时产生的多次消息的重复提示。 不过由此优化产生的另一个问题:全局只有一个实例,在来回的切换房间或进出时,需要重置状态,我们这节来解决这个问题。 在上节的,我留下了几行这样的注释代码: //loginObj.Reset(); //roomObj.Reset(); //indexObj.Reset(); 本节就顺路把这三个注册的方法给实现了: 1:loginObje.Reset()方法的实现,进入Login.xaml.cs中: public void Reset() { btnLogin.IsEnabled = true; } 就一行,把不可用的按钮重置为可用。 2:roomObj.Reset()方法的实现,进入Room.xaml.cs中: public void Reset() { game.Reset(); App.client.GetRoomListAsync(); } 代码很简洁,第一行,把游戏房间的状态重置为初始状态,然后重新获取房间的状态。 代码分解:game.Reset()方法,我们进入到Game.cs中添加Reset方法实现如下: public void Reset() { if (GameRoomList == null) { CreateGameRoom(20); } foreach (GameRoom item in GameRoomList) { [...]
[转载]Silverlight+WCF 实战-网络象棋最终篇之解决重复的消息提示(八) – 路过秋天 – 博客园. 前言: 最近有网友经常会问,在跟着做象棋对战的通讯中,在重复退出进入的时候,消息会重复出现,本节就这问题进行解说与优化。 一:分析问题产生的原因? 1:首先看App.xaml,里面定义了一个全局客户端回调: public static GameService.ServiceClient client;//回调的客户端 并且这个回调我们全局只实例化一次,并且默认加载时定位到登陆页面: private void Application_Startup(object sender, StartupEventArgs e) { this.RootVisual = root; root.Children.Add(new Login());//默认定位到登录页面。 } 2:再看登录页面Login.xaml里,构造函数的初始化: public Login() { InitializeComponent(); App.client.LoginCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(client_LoginCompleted); Load(); } 我们对App.client.LoginCompleted初始化了一次事件,这时一切是正常的,接着我们进入房间,之后,我们返回系统回到登陆。 3:接着看退出系统的按钮是怎么返回到登陆页面的: //退出系统 private void btnLogout_Click(object sender, RoutedEventArgs e) { if (App.chess.IsGaming) { btnGameLose_Click(null, null);//发送认输 App.chess.IsGaming = false; } App.client.OutRoomAsync(App.player, App.player.RoomID, App.player.AttachInfo); ((App)Application.Current).RedirectTo(new [...]
[转载]SilverLight搭建WCF聊天室详细过程 – 邪之灵 – 博客园. 后话:写了几篇文章后根据大家提的意见,我以后会尽量少贴代码,多帖流程图,并且以后会加上文字讲解流程图,前几篇有时间我会添加上流程图讲解,以及思路,让初学者更好理解,谢谢大家的支持! SilverLight 4正式版发布给开发人员带来了更多功能,并且4已经支持NET.TCP协议,配合WCF开发高效率的交互应用程序已经不再是难事,本系列文章主要针对已经 完成的SilverLight聊天室分几部分为大家演示WCF双工服务调用。 项目主要使用SilverLight 4和WCF,开发环境VS2010,使用NET.TCP协议,主要实现了以下功能,先前版本源代码下载可以进群45656086,已经放到群共享里了,如 果此文章对各位朋友有帮助,请劳烦点个推荐或者留言,你们的支持才是我更新下去的动力,谢谢大家,我是营长,有问题大家可以提问: 1.多窗口聊天,窗口可拖动 2.用户分组动态显示 3.仿windows任务栏显示当前聊天用户 4.文本消息发送 5.发送图片,并且可放大 6.大文件,多文件同时发送 7.视频,语音并且可以保存 本系列随笔列表: 1.SilverLight搭建WCF聊天室详细过程(一)配置IIS 2.SilverLight搭建WCF聊天室详细过程(二)注册和登录 3.SilverLight搭建WCF聊天室详细过程(三)好友列表之 Accordion滑动分组动态绑定 4.SilverLight搭建WCF聊天室详细过程(四)好友上线 5.SilverLight搭建WCF聊天室详细过程(五)好友下线 6.SilverLight搭建WCF聊天室详细过程(六)打开聊天窗口 7.SilverLight搭建WCF聊天室详细过程(七)打开窗口后添加到任务栏 8.SilverLight搭建WCF聊天室详细过程(八)发送文本消息 9.SilverLight搭建WCF聊天室详细过程(九)接收文本消息 10.SilverLight搭建WCF聊天室详细过程(十)接收离线消息 11.SilverLight搭建WCF聊天室详细过程(十一)发送图片 12.SilverLight搭建WCF聊天室详细过程(十二)接收图片 13.SilverLight搭建WCF聊天室详细过程(十三)发送文件邀请 14.SilverLight搭建WCF聊天室详细过程(十四)发送文件 15.SilverLight搭建WCF聊天室详细过程(十五)接收文件 16.SilverLight搭建WCF聊天室详细过程(十六)仿QQ消息提醒 17.SilverLight搭建WCF聊天室详细过程(十七)新用户注册并刷新所有在线好友列表 18.SilverLight搭建WCF聊天室详细过程(十八)视频 19.SilverLight搭建WCF聊天室详细过程(十九)WCF服务端变量以及对象设计思路 未完待续..
[转载]使用WCF 4.0 构建 REST Service – Zhiming Jiang – 博客园. 用过一段时间的Ruby on Rails,感觉它内置的RESTful结构非常的完美,也对.NET WCF 3实现REST颇有微议,今天在.NET 4.0下试了新的WCF 4,发现其重写了对REST的支持,使用了类似MVC Routing来配置URL导向,非常迷人。 下面来看下如何一步一步来创建新的REST结构的WCF项目。 创建项目 1 打开VS 2010,选择新建项目,我们选择已有的模板来方便创建新的项目,在左侧Online Templates中选择WCF REST Service Template 40(CS)。 接下来去安装这个模板到本地,第一次安装时需要同意该使用协议,点击“安装”: 这样我们就很简单的用这个模板生成了一个新的项目。 改变之处 该模板使用了一种新的结构来创建简单的REST Service,在细读代码前,先看下项目的文件结构: 相对于之前的版本 l 项目中不再有SVC文件,这样就不能每次都通过xx.svc/users/1 来访问,而是通过URL Routing来配置。 l 也不再有接口文件作契约。 Global.asax配置 可以看到在.NET 4中构建REST服务相当容易。项目通过在Global.asax中来配置类似于ASP.NET 中的Routing进行URL重定向。见如下代码。 1 public class Global : HttpApplication 2 { 3 void Application_Start(object sender, EventArgs e) 4 [...]
[转载]InfoQ: WCF的未来是RESTful. Windows通信基础(WCF)的产品经理,Glenn Block在主题为“WCF,Evolving for the Web”的在线研讨会上表示,微软面向服务应用的构建框架将进行根本性的重构,新的架构将以HTTP为中心。 在这次在线会议的开始,Block总结了业界的当前趋势: 向基于云的计算转变 SOAP逐渐淡出 浏览器运行于各类设备之上日渐盛行 REST采纳的增长 类似OAuth、WebSocket这样标准的出现 他表示,WCF的当前架构在很大程度上是基于SOAP的,如下图示: WCF的一个关键特性是,在相同编程模型下支持多种传输协议(HTTP、TCP、命名管道)。遗憾的是,一旦触及HTTP,它的大量好处(伸缩性、 内容协商)就消失了,原因在于WCF只是把它当作一种传输手段。因此,Block期望将支持HTTP的WCF视为一种具备简单灵活编程模型的一流应用协 议。如下图示: HTTP是在.NET 3.5中引进的,这让创建通过HTTP访问的服务成为可能,但是“没有办法访问所有HTTP必须提供的东西,它是一种非常扁平的模型,面向RPC,但 Web不是这样的。在Block看来,Web是一种非常丰富的资源集”。与其将当前的WCF改造成可以在HTTP之上正常工作,Block认为WCF应该 “以HTTP的思想,使用RESTful方式”重新构架。 WCF将包含助手API,完成预处理HTTP请求或响应、解析和操纵所有参数、将HTTP信息封装到对象中以供未来处理之用。只要愿意,用户就可以 利用它将自己从直接处理HTTP内部细节的痛苦中解脱出来。这个特性还将提供一种插件功能,主要针对像JSON, Atom, OData等这样的数据格式的媒体类型格式化器。WCF将内置部分格式的支持,但是用户能够加入自己的格式化器。 新的WCF已经正在构建当中,Block演示了使用它的样例代码,但他表示这个特性集和WCF将来的样子尚未最终定案。他们不久将在CodePlex上发布框架的初始版本,让社区能够进行测试和反馈,让WCF的未来逐渐成型。更多的细节将在PDC 2010大会期间得到公开。 更新 我们向Glenn Block问起了其他协议,尤其是SOAP,的未来状况。他的答复是,WCF将完全支持现有的技术栈,当前的发展旨在将WCF演变成完全支持HTTP,而又不宣布放弃WCF目前已经取得的成果。 现在,WCF社区站点搭建完成,所有对WCF演变感兴趣的人们可以通过它了解WCF的近况。 在PDC 2010大会上,Glenn Block在WCF未来和它与微软在SOA技术中的当前投资之间的关系里给出了更多细节。 查看英文原文: The Future of WCF Is RESTful [Updated]


