魔法花园 - .NET版

我关于.NET技术的Blog

Silverlight for Google Picasa

EatSilverlight之后,我又创建了一个Silverlight的开源项目,有兴趣的朋友一起来弄啊!

SilverlightPicasa是一个Google相册的Silverlight Client。

先说实现技术:

方案1,在Silverlight中使用Google GData的.NET Library,结果……,GDataAPI是使用.NET 1.1实现的,不是针对完整版的.NET,其中利用很多Component Model的东西,集合使用CollectionBase,这些在Silverlight都不支持;这种方案是最好的,可惜要把GDataAPI迁移到.NET 2.0,再迁移到Silverlight 2.0,困难重重啊。对此我还专门提交了一个Issue,结果也是无果,这个Issue可以访问这里以获得详情:http://code.google.com/p/google-gdata/issues/detail?id=119

方案2:使用WebClient + LINQ to XML来Cross Domain访问Google的ATOM接口,可惜啊不知道是微软的Silverlight不完善,还是Google的GData有问题。现在的Silverlight 2对Cross Domain Call是支持了,但是只支持crossdomain.xml文件在HOST上的ROOT位置,并且是自动加载的;而Google又装怪,非要把crossdomain.xml放在http://photos.googleapis.com/data/crossdomain.xml;Flex倒是有System.security.loadPolicyFile("http://photos.googleapis.com/data/crossdomain.xml"); 可以自定义加载。所以,Google负责GData for .NET的开发人员就干脆告诉我Silverlight 2不支持cross domain calls。所以此方案也作罢。

为此,我也给微软提交了一个建议:https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=337970&SiteID=212

方案3:回到Silverlight 1.1处理cross domain call的老方法上,在Web Site中创建一个Web Service(也可用WCF Service),在Web Site中引用GDataAPI的相关程
序集;在Web Site中定义一些实体类,在Web Service中的WebMethod中使用GDataAPI来获取数据,并映射为自定义的实体类返回给Silverlight Client。我目前的实现
方式就是这样。
方案4:待到Silverlight有LoadPolicyFile方法后,还是利用WebClient + LINQ to XML来Cross Domain访问Google的ATOM接口。
这是最佳方案(懒得和GDataAPI for .NET纠缠)。
再说说功能:
由于现在使用Web Service实现跨域代理,所以暂时不考虑验证以及需要权限的操作,则目前想到的功能为:
  • 输入某个用户名称,列出这个用户的所有public的album,可以用很炫的效果来列出
  • 选择每个album,列出其中的photos,可以用很炫的效果来列出
  • 可以对album中的photos进行slidshow

有兴趣的朋友,可以访问:http://code.google.com/p/silverlight-picasa/ ,来加入,也希望有兴趣的Designer能加入。

posted on 2008-04-13 22:42 redmoon 阅读(2771) 评论(13)  编辑 收藏 网摘 所属分类: .NET 3.5RIA

评论

#1楼[楼主] 2008-04-13 23:44 redmoon      

发现一个很奇怪的地方。我在最初的项目中可以对Web Site的Web Service调用;而当我把项目import到svn中,并checkout出来到另外一个位置,就遇到了对Web service跨域调用的问题。faint!   回复  引用  查看    

#2楼 2008-04-14 01:34 nasa      

密切关注.. 我用wcf做过针对yupoo相册网站的搜索.   回复  引用  查看    

#3楼 2008-04-14 08:26 秋千      

参与   回复  引用  查看    

#4楼 2008-04-14 08:32 李战      

http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif" alt="" />路过   回复  引用  查看    

#5楼 2008-04-14 09:52 一瞬间      

密切关注一下:)   回复  引用  查看    

#6楼 2008-04-14 09:58 笑煞天      

貌似只能用web services了,silverlight2刚发布我就尝试过了,用普通的方法获取picasa的rss返回都是null!
这是让人郁闷的事情,依赖web service实在不很灵活...
  回复  引用  查看    

#7楼[楼主] 2008-04-14 10:03 redmoon      

我遇到对自己web service不能调用的情况可以这样解决:http://timheuer.com/blog/archive/2008/04/09/silverlight-cannot-access-web-service.aspx
其实,我试过的,只要不debug,自己访问testpage是可以调用成功web service。现在的是还不明白为什么一开始可以,后来就不行了。
  回复  引用  查看    

#8楼 2008-04-14 13:10 aspnetx      

毕竟还不是正式版啊。   回复  引用  查看    

#9楼 2008-04-14 21:19 techmango[未注册用户]

又是新技术?!   回复  引用    

#10楼 2008-04-15 10:09 meteormatt      

--引用--------------------------------------------------
aspnetx: 毕竟还不是正式版啊。
--------------------------------------------------------
同意
  回复  引用  查看    

#11楼 2008-04-15 20:02 G yc {Son of VB.NET}      

兄弟, 都是强人啊~
项目能让我参观一下吗?
  回复  引用  查看    

#12楼[楼主] 2008-04-16 10:32 redmoon      

我把项目托管到Code.google.com上的,任何人都可以下载源代码的,有兴趣的朋友也可以加入一起来弄。   回复  引用  查看    

#13楼 2008-04-16 18:02 neuhawk[][未注册用户]

问一下sl 2.0如何不用下载字体来支持中文呢。   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

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

0 1151775




相关文章:

相关链接:

导航

公告

朱永光 Follow me IT自由人 feedsky



InfoQ中文站.NET社区首席编辑


环境保护实践者


Xbox & Zune




 

与我联系

搜索

 

常用链接

留言簿

我管理的小组

我参与的团队

随笔分类

随笔档案

文章分类

.NET技术

朋友

音乐

最新评论

阅读排行榜

评论排行榜

60天内阅读排行