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文件)
0
0
(请您对文章做出评价)
« 上一篇:《WF编程》系列之41 - 承载工作流:日志和配置文件
» 下一篇:C#简单操作Lotus Notes邮件

posted on 2008-04-29 09:38 Windie Chai 阅读(3825) 评论(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 李战      

  回复  引用  查看    

#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
因为这个使用旧版做的。
  回复  引用  查看    

导航

公告


 

版权声明

本Blog言论均以“现状”提供,没有任何担保,也没有授予任何权利,如需转载,请注明出处。

统计

搜索

 

常用链接

我参与的团队

我的标签

随笔分类

随笔档案

出版社

专家博客

积分与排名

最新评论

阅读排行榜

评论排行榜