摘要:简单分析一下 RIA Services 的数据绑定原理.Neil Chen, 11/25/2009==================================================================利用 RIA Services 的项目模板创建了一个 solution,其中包含一个 Silverlight App 和一个 ASP.NET Web App.名称分别是 ...
阅读全文
摘要:Gestalt 是 Mix Online Lab 创造出来的一个框架,利用它我们可以在浏览器里用 python/ruby 写脚本来操纵 DHTML 的各种对象,其作用就跟 javascript 类似。一个例子:[代码]还可以将脚本写在独立的文件中,像这样:[代码]其内部实现是利用了 Silverlight 中实现的 DLR 引擎对 IronPython /IronRuby 的支持,不过,这个东西目...
阅读全文
摘要:用 Silverlight 开发围棋在线对弈程序作者: Neil Chen第二部分:MVC为了重用代码,并且开始开发围棋程序的界面控制功能,我们考虑用 MVC 架构来对前面的程序进行一点小的修改,这样方便扩展功能。首先需要引入几个枚举,以及帮助类:设计完成之后,我们的 Model, View, Controller 的类图如下:程序的执行是从 App.xaml.cs 中开始的: private v...
阅读全文
摘要:用 Silverlight 开发围棋在线对弈程序作者: Neil Chen第一部分:UI雏形首先,介绍下围棋的简单规则:黑白双方交替落子,以占据棋盘上交叉点多者为胜。同时,双方为了争夺地盘,可能会发生“对杀”。一个棋子周围接触的空白交叉点数目叫做“气”,如果一个或多个棋子周围的气都被对方封死,气数=0,则这些棋子就称为死棋,需要从棋盘上移去。一个围棋棋谱大致如下图所示(截图自Tom围棋网站):在上...
阅读全文
摘要:CLR Inside OutIsolated Storage In Silverlight 2http://msdn.microsoft.com/en-us/magazine/dd458794.aspx详细介绍了 Silverlight 的 Isolated Storage 用法,以及最佳实践。大致内容回顾:在使用 IsolatedStorage 的时候应该总是用一个 try..catch (Is...
阅读全文
摘要:Asynchronous calls can improve scalability, however, it's always moredifficult for us to do programming jobs under an asynchronous calling manner. The main reason is, asynchronous calls need callbacks...
阅读全文
摘要:Silverlight 里需要考虑异步调用的问题,比较麻烦。所以写了两个简单的扩展方法。一个方法是为了更新 UI 控件。可以自动在不同的调用环境下判断是否需要 Invoke, 从而安全的调用控件相关的方法。另一个方法的目的是把任务放到 ThreadPool 里去等待后续的异步执行。代码如下:usingSystem.Windows;usingSystem;usingSystem.Threading;...
阅读全文
摘要:在 WPF 中,我们可以方便的在全局范围定义一个样式,就可以应用到所有这种类型的对象,这就是所谓的隐式样式(implicit Style),比如:<Windowx:Class="WpfImplicitStyle.Window1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://sc...
阅读全文
摘要:Silverlight Dynamic Languages SDK 目前 host 在 CodePlex 上,使用它可以用 IronPython/IronRuby/Managed JScript 等动态语言编写 Silverlight 程序,其项目的主页在:http://www.codeplex.com/sdlsdk我做了一些尝试,发现要实际用来开发点东西,还是有不少需要注意的地方,特别是程序集引...
阅读全文
摘要:在 Silverlight 中,如果用 VS 添加对 WCF Service, 的引用,则会自动生成 ServiceReferences.ClientConfig 配置文件,其中包含该 Service 的 Binding 和 Address 等信息。将配置信息隔离出来本来是好事情,但问题是,由于 Silverlight 只是一个客户端 runtime 的特性决定,配置文件将被在编译时组装到 Siv...
阅读全文
摘要:在 beta 2 时可以直接指定 col.Header = 一个控件树, 但是现在在正式版里就只能指定一个 String 了。否则会报错。奇怪的是, col.Header 属性却设计为 object 类型。不能不说这是一个失败。要自定义列标题栏(比如要实现自定义排序/过滤的场景),只能通过给 Header 属性加 Style 的办法,指定一个 ControlTemplate,然后里面构造相关的控件...
阅读全文
摘要:Silverilght 客户端不支持 FaultException. 只会显示一个 404 错误。所以,服务端抛出的异常,在客户端是无法直接通过序列化/反序列化传递得到的。但是可以改用下列一些方法来帮助从客户端得到错误信息:1. 在 Service 端,将返回值对象重新设计,在其中添加错误信息的字段,传递回来。2. 在 Service 端发生异常时,捕获之,并使用 Session 存储(同时可以做...
阅读全文
摘要:在 Silverlight 2 beta 2 时,我曾经写了一篇帖子实现了苹果风格的按钮样式(Silverlight 下苹果(Mac OS)风格按钮的实现 )。 而现在 Silverlight 2 终于发布了,也给之前的代码带来了很多问题,导致无法继续使用。 经过一阵探索,我终于成功修改了这个代码,现在在正式版下也能工作正常了。其关键点如下:1. 在 beta 2 时,需要采用 和 的语法编写...
阅读全文
摘要:Silverlight 2.0 发布了,此时最值得关注的莫过于 ScottGu 宣称的含有上百个控件的工具包了。 https://blogs.msdn.com/sburke/archive/2008/10/14/silverlight-2-released-silverlight-toolkit-on-the-way.aspx Shawn Burke 所在的 team 负责这个项目. 他在 blo...
阅读全文
摘要:安装了最新版本的 Silverlight 2: 版本 Silverlight 2 RTW (2.0.31005.0) 到这里安装:http://www.microsoft.com/silverlight/ 如果开发机器上已经装过 RC0,则必须先卸载掉 RC0,再访问该网页才能安装最新版本。 RC0的版本号是 2.0.30930.0 如果不卸载 RC0,下载到的将是 silverlight 2 b...
阅读全文
摘要:最近一直在做 Silverlight 的东西,反复打开一个 XAML 实在太慢了。虽然我在设计界面已经把设计视图拖到最小化,但是这样做并没有提高文档的打开速度。 仔细查看了一下 VS 2008 的选项,可以选择不打开设计视图: Options / Text Editor / XAML / Miscellaneous / Default View / Always Open documents in...
阅读全文
摘要:微软的 Dave Relyea 在 blog 中解释了 Silverlight 中控件的生命周期,以及一些可以 override 的基类方法发生的时机。 http://blogs.msdn.com/devdave/archive/2008/10/11/control-lifecycle.aspx Action Control instantiated in XAML Control ins...
阅读全文
摘要:(摘要自:http://blogs.msdn.com/gisenberg/archive/2008/07/12/ui-automation-in-silverlight-simulating-user-interactions.aspx)在 Silverlight 中,UI 自动化(UIA)的相关内容在下列名称空间中:System.Windows.AutomationSystem.Windows....
阅读全文
摘要:关于 Silverlight 2 RC0, 主要内容参见 Scott Gutheri 的介绍性帖子:http://weblogs.asp.net/scottgu/archive/2008/09/25/silverlight-2-release-candidate-now-available.aspx这次从 Beta 2 到 RC0,变化了很多东西,包括很多破坏性的改变(Breaking Chang...
阅读全文
摘要:关于如何用动态语言跑 Silverlight 就不说了,可以参考代振军的帖子。但是很多教程都没有提到怎样才能分模块开发,在介绍完一个 app 后就结束了。现在来看一下如何实现用户控件的动态加载,其实也很简单。关键是用到了 Application.LoadComponent 这个方法,他可以加载指定的 xaml,并转换成某个类型的对象。为了减少重复工作,我做了一个简单的基类,叫做 UserContr...
阅读全文