魔法花园 - .NET版

我关于.NET技术的Blog

Silverlight 2初尝及我的例子:Fanfou.com客户端——EatSilverlight

今天一早看到Silverlight 2 beta1发布了,它的带来了很多新特性,于是马上开始下载。下载完成后,安装颇费了一些精力,需要卸载以前安装的版本(甚至于连Silverlight 1.0都要卸载掉)。早上安装好,可惜下午有事,只好晚上来Try了。

按照Scott的教程开始试验:Silverlight 2教程中文版

初步使用后有如下感受:

  • xaml的设计器还未完成,不支持直接拖控件到设计界面上,也不支持设计界面的一些操作,甚至属性窗口都不可用。
  • xaml设计器应该是基于WPF的设计器的,现在支持XAML代码的直接编辑,设计界面会同步(虽然不可用),代码编辑支持智能感知,事件处理也能自动生成。
  • 要添加控件,可以从工具箱中拖到xaml代码编辑器中。对于DataGrid(以及以后的自定义控件)会自动生成xmlns
  • Silverlight程序好像只能在测试Web站点中用,直接打开测试页面(HTML)或者上传到托管服务器上都不能执行,不知道为什么??!!
  • Silverlight的项目只能引用Silverlight Class Library项目,如果我想写一个通用的Class Library给WPF一起使用,就不行。我在我的示例中是建立了两个项目,手动同步代码,谁知道还有什么更好的方法嘛? (今早想到,可以使用代码引用的方式,在多个项目中只保留一份代码)
  • ……(待续)

在试验Scott的教程过程中,我发觉我没有必要跟随他使用Digg,于是我开发了一个名为EatSilverlight的示例。

前几天,看到AIR 1.0发布,其中的最佳示例程序是Spaz(一个Twitter微博客的客户端),所以突发奇想也想做一个Fanfou.com(中国Twitter,类似还有什么滔滔什么的)的客户端,不过我打算用WPF开发,当时取了个EatWPF的名字。

不过这个程序还非常简陋,我已经托管到CodePlex上了,欢迎有兴趣的朋友加入一起搞。

关于EatSilverlight的界面如下:

eatsilverlight

现在EatSilverlight只做到Scott例子的第三步,明天接着做其他的步,也打算在接下来的日子里晚上Fanfou.com 客户端的功能。

相关源代码在CodePlex可以找到,这里也可以下载到。

posted on 2008-03-07 00:50 redmoon 阅读(2862) 评论(9)  编辑 收藏 网摘 所属分类: .NET 3.5

评论

#1楼  2008-03-07 01:45 saucer [未注册用户]

>>上传到托管服务器上都不能执行,不知道为什么??!!

也许是.xap MIME设置的缘故,参考
http://weblogs.asp.net/cschittko/archive/2008/03/03/silverlight-2-0-app-not-starting-fix-iis.aspx

>>如果我想写一个通用的Class Library给WPF一起使用,就不行

Silverlight与WPF间的兼容,并不是binary层次的兼容吧   回复  引用    

#2楼  2008-03-07 07:40 自由、创新、研究、探索……      

我也在学呢,我也加入你的项目学习   回复  引用  查看    

#3楼 [楼主] 2008-03-07 10:15 redmoon      

@saucer
这是项目级别就规定了只能应用Silverlight Class Library。昨晚,我是建立2个项目,copy 2份代码,今早我突然想起可以用代码引用的方式来保留一份代码,2个项目。以前我也用过这种方式。
对于上传托管服务器不能运行的原因,有可能是mime没有设置,但是我直接在IE or Firefox打开测试页面,也应该可行的,但还是不能运行。   回复  引用  查看    

#4楼  2008-03-07 16:52 t [未注册用户]

我在做到DIGG搜索的时候(因为连不上DIGG,换成了DOUBAN)
一点搜索就白屏了,我跟踪不到DisplayStories里,不知道是怎么回事
private void searchBtn_Click(object sender, RoutedEventArgs e)
{
string topic = TextSearch.Text.Trim();
string diggUrl = string.Format("http://api.douban.com/movie/subjects?tag={0}&start-index=1&max-results=20", topic);
WebClient diggService = new WebClient();
diggService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(diggService_DownloadStringCompleted);
diggService.DownloadStringAsync(new Uri(diggUrl));
}

void diggService_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
DisplayStories(e.Result);
}
}

void DisplayStories(string xmlContent)
{
XDocument xmlStories = XDocument.Parse(xmlContent);
var stories = from story in xmlStories.Descendants("entry")
where story.Element("entry") != null
select new DiggStory
{
ID = (int)story.Attribute("id"),
Title = (string)story.Attribute("title")
//Author = (string)story.Attribute("description"),
//Category = (string)story.Attribute("thumbnail"),

};
storiesList.ItemsSource = stories;
}
  回复  引用    

#5楼  2008-03-07 19:10 hl [未注册用户]

楼主发现一个问题没有,2.0里的storyboard似乎运行时有问题,事件触发storyboard后变成blank   回复  引用    

#6楼 [楼主] 2008-03-07 19:28 redmoon      

@4楼
估计是LINQ查询出错,LINQ出错就不好跟踪。你看看是不是xml和对象映射有问题,或者数据转换有问题,如:ID = (int)story.Attribute("id"),   回复  引用  查看    

#7楼  2008-03-07 19:56 je [未注册用户]

--引用--------------------------------------------------
redmoon: @4楼
估计是LINQ查询出错,LINQ出错就不好跟踪。你看看是不是xml和对象映射有问题,或者数据转换有问题,如:ID = (int)story.Attribute("id"),
--------------------------------------------------------
谢谢,问题已经找到了。
楼主有没有什么联系方式   回复  引用    

#8楼  2008-03-07 23:13 Jeffrey Zhao      

目前实在没有精力搞Silverlight了。   回复  引用  查看    

#9楼  2008-03-08 00:59 自由、创新、研究、探索……      

@redmoon
linq跟踪可以用
LINQ Farm Seed: Using the Expression Tree Visualizer
http://blogs.msdn.com/charlie/archive/2008/02/13/linq-farm-seed-using-the-expression-tree-visualizer.aspx   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-07 10:16 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 




导航

公告

朱永光 IT自由人 feedsky



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


环境保护实践者



 

与我联系

搜索

 

常用链接

留言簿(21)

我管理的小组

我参与的团队

随笔分类

随笔档案

文章分类

.NET技术

朋友

音乐

最新评论

阅读排行榜

评论排行榜