Silverlight+WCF 实战-网络象棋

Silverlight+WCF 实战-网络象棋文章系列教程由路过秋天完成并发布

Silverlight+WCF 网络象棋 基础篇 回归WCF通讯应用-进入房间(十九)

上一节我们讲到登陆时通过WCF,把用户信息传递到远程服务器,并用一个全局泛型字典变量来保存用户列表,登陆后我们转向了房间页面。 这节,我们要通过点击房间上的座位进入主页面(Index.xaml)。 既然要点击房间座位才能进入,我们就得为那房间的座位添加鼠标点击事件了。 我们回到GameRoom.cs找到创建房间的代码,找到Draw函数里,创建红蓝黑三个房间座位的代码,其实就是那三个矩形框Rectangle。 我们在它们被添加到房间之前,添加几个事件:  //添加三个房间点击事件            redChair.MouseLeftButtonDown += new MouseButtonEventHandl

Silverlight+WCF 网络象棋 基础篇 回归WCF通讯应用-登陆(十八)

前四节,我们讲了通讯基础,从这节起,我们回归到项目中来,要将前面的WCF通讯知识应用进来。   我们为Chess项目的解决方案里,再添加WCF应用服务程序 步骤: 1。对着解决方案-》右键-》添加新建项目-》选择WCF应用服务程序-》输入:GameService 2。删除默认的IService1.cs和IService1.svc 3。新建WCF服务,起名为IService 4。把跨域文件clientaccesspolicy.xml复制到项目中去. 5。设置GameService项目属性的特定启动端口为:8686 6。添加引用PollingDuplex.dll 7。修改配置文件,参考十五小节 上面步骤完成了后 我们接下来要添加几个新文件: 1.新添加一个回调接口:ICallBack 对着GameService项目右键-》添加-》新建项->选

Silverlight+WCF 网络象棋 基础篇 WCF通讯轮询(十七)

上节说到: 关于双向通讯,官方提供了N种可以双向的,不过今天要用到的, 是pollingDuplexHttpBinding:一个扩展的轮询机制的双向通讯,当你也可以尝试用上面的通讯方式去试一试。 既然是扩展,就说明默认没有,那我们首先就要添加扩展了,用的是默认官方是提供的DLL,就在我们安装的Silverlight4的目录里: 正常路径为:C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Server\System.ServiceModel.PollingDuplex.dll   这一节我们来实现PollingDuplexHttpBinding,轮询机制的双向通讯。   以下开始内容不上图片,参考 Silverlight+WCF 网络象棋 基础篇 WCF通讯跨域(十五) 我们再开一个项

Silverlight+WCF 网络象棋 基础篇 WCF通讯方式(十六)

本节小讲通讯方式,上两节的我们讲的BasicHttpBinding,是其中的一种基础的通讯方式, 还有一种双向通讯的,专业词汇叫“双工通讯”,不过双工通讯一听起来太以理解, 就好像那个特性“契约”,一听就感觉像卖身契一样让人觉得匪夷所思。 下面全用双向代替双工说话了。 说双向通讯好理解了吧,再简单说就是:客户端可以调用服务端的方法;服务端也可以调用客户端的方法。 对于通讯方式,上两节,我们都是用:BasicHttpBinding,除了这个,还说过还有N种的。   为了说明有多少种,我们这里顺便提一个工具,在以下路径: 开始->所有程序->Microsoft Visual Studio 2010->Microsoft Windows SDK Tools->服务配置编辑器 我们可以通过它来打开WCF相关的config文件。不过呢,每次指定

Silverlight+WCF 网络象棋 基础篇 WCF通讯跨域(十五)

这节我们把WCF独立一个服务出来,不寄放在Web应用程序中。 我们再开一个项目来讲解,上节名称叫Hellow,这节名称起World: 文件—》新建->项目-》Silverlight应用程序-》起名叫:World 确定后还是:World和World.web应用程序,两个项目   我们对着解决方案右键,添加新建项目:建立WCF 服务应用程序->输入名称为:WorldService: 接着我们把默认的Service1.cs和Service1.svc删除: 删除后,我们新建一个新的服务,叫Service.svc 我们提前修改下服务的端口,这样添加服务引用后,不用再改配置文件的端口。 好了,现在我们为接口弄多一个方法叫GetWrold: 同时新建一个实体类MyWorld,用于返回,关于实体类的头顶的上标识,上节说过了就不说了。 [Se

Silverlight+WCF 网络象棋 基础篇 WCF通讯基础(十四)

从此节开始,我们要开始WCF通讯了。 本游戏的只是基于WCF最基础的应用,没有WCF深奥的知识,相关的深奥知识请关注专业的WCF系列文章。 我们先来实现一个Silverlight里调用Hellow的尝试: 我们新建一个新的Silverlight应用程序:文件->新建->项目->Silverlight应用程序->Hellow 建立后就一个Hellow应用程序和一个Helow.web的Web应用程序。   一:我们将WCF集成在Web应用程序中 我们对着Web应用程序右键-》添加->新建项->WCF服务-》起名:Service.svc 回车后,默认生成IService.cs接口和Service.svc/Service.svc.cs文件 我们看一下自动生成的代码:  [ServiceContract]&nbs

Silverlight+WCF 网络象棋 基础篇 游戏房间列表(十三)

热到飚血了。。。 上次创建了一房间了,现在要创建多个房间了。 我们像添加一个Chess类来创建很多棋子一样,现在创建一个Game类来创建很多房间: Code文件夹右键,添加新建项->类->Game.cs,同样的,名称空间去掉[.Code] namespace NewChessProject{    /// <summary>    /// 游戏 by 路过秋天    /// </summary>    public class Game    {  

Silverlight+WCF 网络象棋 基础篇 游戏房间(十二)

加快手步,写多一篇,这节来创建游戏房间: 先上一张以前的房间图: 构成啊,就是上面文字,下面三个矩形框: 昨天调整了一下样式,看下新的房间图: 哪个好看点这个很难说的清了,不过新的图应用了新的brush画刷填充,当然了,你也可以用图片填充,后面可以教你怎么用图片, 当然了,为了好看,用图片也不为过的,去QQ游戏大厅截两张小图就搞定了,不过这步就留给大伙自己去截了。 现在开始代码了: 我们要创建游戏房间类了,不过这下我们不用新的类库,也不放在象棋库中,我们直接在Silverlight应用程序中,右键,添加文件夹, 起名:Code: 在Code文件夹右键->添加类-》输入:GameRoom.cs [顺便把名称空间的XXX.Code下的.Code去掉]  /// <summary>    

Silverlight+WCF 网络象棋 基础篇 登陆与转向(十一)

好了,从这节起,我们可能要暂时远离我们的象棋库了,因为我们要开始进入一些周边的事情了。 像登陆啊,登陆后创建房间大厅啊,进入后除了象棋还有用户列表,聊天窗口等等,中间少不了WCF通讯。 好了,开始登陆小节,先上一张小图: 看,多简洁,一个ID一个昵称一个登陆就完了。虽然简洁,可是也会有很多想法的。 不过想法待会再说,新建页面先: 对着Silverlight应用程序右键-》添加新建项-》Silverlight用户控件-》输入:Login.xaml 回车一页面就出来了。 往页面里拉两个TextBlock,两个TextBox,一个Button[双击后就有一个Click事件了],如下:  <Grid x:Name="LayoutRoot" Background="White" Height="144" Width

Silverlight+WCF 网络象棋 基础篇 棋子移动-规则[附加上半盘限制](十)

上上一节,我们对棋子的下半盘棋子做了所有的规则限制,因为我们下棋的总是用下半盘的棋子来下,总没人用上半盘棋来下那么高境界的吧。 不过这节简单追加点代码,让那些企图高境界的人士可以临时性的自己和自己下。 好了,要为上半盘棋子也做限制,所以我们要知道棋子是归属于上半盘还是下半盘的,这里,我们为棋子类Chessman增加一个属性,IsUp,是否上半盘棋,反之就下半盘了。初始为该属性赋值也相当的简单:  /// <summary>        /// 棋子默认在上半盘/反之在下半盘        /// </summary>