Silverlight 2 打造饭否Show

在Silverlight 1.1的时候,我就像用Silverlight设计一个饭否Show,无奈1.1时代貌似只能通过Web Services来获取跨域的数据,我认为这是一种别扭的开发方式,再加上1.1对中文并不友好,所以就改用Flash实现了这个饭否Show。
Silverlight 2终于解决了上述的两个问题,支持跨域获取数据,支持中文显示,于是我迫不及待的尝试着开发了一个饭否Show(在Silverlight 2 beta SDK 发布的几日后开始开发,开发完成后便忘记了,-___-|||),下面来简要的分享一下开发过程,也望各位Silverlight前辈不吝指教。

UI

UI的界面如下图所示:

UI采用Blend 2.5和Design设计。
如果设计简单的Silverlight界面,那么Blend足矣,但稍复杂的,比如上图中的波浪渐变效果,Blend就无能为力了,而这正是Design的拿手本领。
Design的使用方法就不介绍了,设计完毕后,导出为Silverlight画布,然后我们copy需要的XAML节点即可。
具体的XAML内容就不在此展示了,文末我提供了本文的代码下载,有兴趣的朋友可以下载查看。

饭否API

从上图来分析,我们只用到了饭否中的两部分信息:我的信息和我的消息。
饭否API中,获取这两部分数据的方法如下:
获取用户信息:
http://api.fanfou.com/users/show/用户ID.xml
获取用户消息:
http://api.fanfou.com/statuses/user_timeline/用户ID.rss
那么根据饭否提供的API,我编写了下面两个类:
饭否API类

传入参数

其实我设计这个饭否Show并不是只为了给我一个人使用,那么如何让每位朋友都可以把它变成自己的饭否Show呢?
那么必然要使Silverlight能够接受参数。
在做Flash开发时,可以在HTML中通过Object的“FlashVars”参数来向Flash传递参数列表,在Silverlight中我们同样可以这样做。
通过给“InitParams”参数赋值,我们就可以向Silverlight传递参数了。
给“InitParams”参数赋值的方法如下:
Silverlight的HTML代码块

仅仅把ID参数传入到Silverlight中是不够的,我们还需要在Silverlight中接收这个参数,并做进一步处理。
我们打开Silverlight项目中的App.xaml,为其Application_Startup事件添加如下代码:
Application_Startup
要注意的是Page默认并没有带有一个String参数的构造函数,所以我们接下来还需要为Page类添加这一构造函数重载。

Page.xaml.cs

最后,我们开始编写最关键的代码。我将在Page.xaml.cs中添加方法或事件来调用饭否API、获取用户的信息和消息列表、实现上一条下一条的跳转等。
具体的代码并不难以理解,不再详细解释,大家看注释便好:
Page.xaml.cs代码

预览

Get Microsoft Silverlight
如果你也想要在你的blog中添加这个Widget,那么,Copy上面的HTML代码,修改ID就可以了。

源码下载

点击下载源码包(包括Visual Studio Solution和Expression Design文件)
posted @ 2008-04-29 09:38 Windie Chai 阅读(3715) 评论(30)  编辑 收藏 网摘 所属分类: Silverlight & WPF

  回复  引用  查看    
#1楼2008-04-29 09:55 | nasa      
不错

小建议 代码的折叠功能不是在所有的浏览器下都好用. 建议换一个方式,这样不影响阅读.

  回复  引用    
#2楼2008-04-29 10:07 | 在线代理[未注册用户]
我想知道这样做,比用flash做,的意义在什么地方。

这个也是我一直没有装silverlight的原因。看不出来比flash高明的地方。

  回复  引用  查看    
#3楼2008-04-29 10:13 | 李战      
http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif" alt="" />
  回复  引用    
#4楼2008-04-29 10:18 | 航天奇侠
sl的高明之处并不是做出比flash更酷的效果,而是对资源的整合利用,将一个很酷的东西商业化的过程.

  回复  引用    
#5楼2008-04-29 10:20 | jejwe[未注册用户]
看不出来比flash高明的地方,你当然可以不用
至少sl对.NET开发者友好就是很高明的地方

  回复  引用    
#6楼2008-04-29 10:26 | 在线代理[未注册用户]
@ 航天奇侠

flash 也照样可以整合资源啊, 也可以将很cool的东西商业化啊。

还是 jejwe 说得对,
主要是对于.net 的开发者,很容易接受。


等啥时候我不做php了,我也用silverlight,到时候起码应该是silverlight 3了。

  回复  引用  查看    
#7楼2008-04-29 10:29 | 生鱼片      
学习
  回复  引用  查看    
#8楼[楼主]2008-04-29 10:31 | Windie Chai(笑煞天)      
同意jejwe的观点,而且,Silverlight不仅在开发方式上比Flash更为友好(Flash 的Action版本之间的变化以及开发环境都不如Visual Studio强大友好),而且基于.NET Framework的Silverlight有着强大的底层支持,在数据处理等各方面也要比Flash更加轻松。
  回复  引用  查看    
#9楼[楼主]2008-04-29 10:31 | Windie Chai(笑煞天)      
@李战
最近果然总是见到你的猴子。

  回复  引用  查看    
#10楼2008-04-29 10:57 | nasa      
@李战
@Windie Chai(笑煞天)
是啊 经常看到....

  回复  引用  查看    
#11楼2008-04-29 13:08 | Icyflash      
点击头像,widget就消失了...
IE7.MAXTHON2,FIREFOX2下均这样

  回复  引用  查看    
#12楼2008-04-29 13:16 | sumh      
呵呵,不错啊,最近研究去sl啦
  回复  引用    
#13楼2008-04-29 13:27 | phantaci[未注册用户]
TW 里点击也会消失.
  回复  引用    
#14楼2008-04-29 15:10 | adrianhhhhh[未注册用户]
Windie哈哈。。
  回复  引用  查看    
#15楼[楼主]2008-04-29 15:22 | Windie Chai(笑煞天)      
@Icyflash
@phantaci
这也是我感觉到奇怪的地方,点击头像的动作应该是在新窗口打开用户的饭否页面,在本地调试时也是没问题的,各位可以下载源码看一下,但我不明白为什么上传之后就失效了。

  回复  引用  查看    
#16楼2008-04-29 16:45 | 二手的程序员      
废话少说,马克一下
  回复  引用  查看    
#17楼2008-04-29 19:34 | Icyflash      
引用HTML加上这句点击头像就可以弹出页面了
<param name="EnableHtmlAccess" value="true" />


  回复  引用  查看    
#18楼2008-04-29 19:37 | 包建强      
你快把WF翻译完,先别研究别的技术,搞出来烂尾楼就不好了,会被人鄙视的!!!!!
  回复  引用  查看    
#19楼[楼主]2008-04-29 20:36 | Windie Chai(笑煞天)      
@包建强
呵呵,放心吧,我会翻译完的。

  回复  引用  查看    
#20楼[楼主]2008-04-29 20:38 | Windie Chai(笑煞天)      
@Icyflash
谢谢兄台指点!

  回复  引用    
#21楼2008-05-08 07:11 | paylasim[未注册用户]
very nice blog... :)
  回复  引用    
#22楼2008-05-08 13:29 | 时代[未注册用户]
为什么点击就消失呢? 不解!!!
  回复  引用  查看    
#23楼[楼主]2008-05-09 09:46 | Windie Chai(笑煞天)      
@时代
缺了一行代码...已经修正了呀?

  回复  引用    
#24楼2008-05-09 10:40 | 时代[未注册用户]
不清楚什么原因,Microsoft Silverlight
Version: 2.0.30226.2

有时候打开网页,就看不到加载完头像,点击就消失,有时候清空缓存,反复刷新,就能看到头像,点开开新网页

  回复  引用  查看    
#25楼[楼主]2008-05-09 16:24 | Windie Chai(笑煞天)      
@时代
可能没有获取到饭否的数据吧.
不过我已经做过处理了,不应该啊.....

  回复  引用    
#26楼2008-05-09 19:47 | 时代[未注册用户]
清空缓存刷新,图像就能出来,再就是点 两边按钮,文字并不切换啊,总是显示 3-25 的那句话
  回复  引用  查看    
#27楼[楼主]2008-05-10 18:26 | Windie Chai(笑煞天)      
@时代
也可能是你的网络有些问题,以至于饭否API调用失败。

  回复  引用    
#28楼2008-05-16 14:28 | Alanchin[未注册用户]
各位高手们!
请你们帮个忙,你们能否开发一个可以非常灵活的建立多及审批的工作流的软件,但是一定是支持MOSS软件的,又可以很容易的管理好人员组织架构。做到电子文档签名的。这样的软件我们很期待。谁有消息都可以和我联系。
QQ:190922833
有酬谢!

  回复  引用    
#29楼2008-08-08 10:42 | ohwhy[未注册用户]
请问为什么我都装了最新版的SL,你的这个为什么还是提示安装呢?
  回复  引用  查看    
#30楼[楼主]2008-08-09 14:41 | Windie Chai(笑煞天)      
@ohwhy
因为这个使用旧版做的。




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1175401




相关文章:

相关链接: