一起谈.NET技术,你应该知道的15个Silverlight诀窍

  我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术。对于刚刚接触Silverlight的开发人员来说,这篇文章是最适合你的。这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍。如果你是一个全职的Silverlight开发的话,我希望你能了解并掌握它们。

我不会谈论MVVM,Prism或者MEF这些复杂的以至于吓跑读者的东西。

  1. 1. 下图中黄色的高亮文字代表了Silverlight 对象的MIME类型,而不是运行时版本信息。许多开发人员第一次看到这段代码的时候都会认为这个地方是引用了Silverlight的版本信息,例如Silverlight 4.

  一个Silverlight宿主应用程序的HTML/ASPX代码:

  1. 2. Silverlight只支持PNG格式的图片,不能直接使用GIF格式的图片。如果你一定要使用GIF图片的话,可以考虑使用基于Silverlight开发的 .NET Image Tools Library。很多人已经构建了将GIF转换为PNG的Web服务,可以直接使用。我推荐你使用Paint.NET来进行图片格式转换。

  1. 3. 如果用户没有安装Silverlight 4插件,下图中黄色高亮代码(在ASPX或者HTML文件中)会提示用户下载。

  如果你改变链接如下:


<a href="http://go.microsoft.com/fwlink/?LinkID=149156"
style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkID=161376"
alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>

  结果会一直要求用户下载最新的Silverlight运行时,新版本的运行时会默认向后兼容。

  1. 4. Silverlight中所有的数据操作都是异步的,下面的代码其实是不能工作的:

MyOldWebService srv = new MyOldWebService();
string strReturn = srv.GetSomeValue();
txtValue.Text = strReturn;

  我们可以通过调用WCF服务来解决这个问题(比如在Page的InitializeComponent方法之后来调用):


public MainPage()
{
InitializeComponent();
Service1Client client = new Service1Client();
client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>
(client_DoWorkCompleted);
client.DoWorkAsync();
}

void client_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e)
{
MessageBox.Show(e.Result);
}

  1. 5. 优先使用Silverlight模板和主题,微软默认为应用程序提供了4种主题供用户选择。在VS2010中还可以使用内置的导航应用程序模板,Blend4中还有一些关于MVVM的模板。一句话,除非有特别需要,否则不要开始从零开始你的应用程序。

  1. 6. 花时间学习Blend4。我们没必要手工写出全部的XAML代码,Blend4可以帮助我们创建Silverlight、WPF 以及Windows Phone7应用程序。无法想象如何直接写出创建故事板或者动画的代码,但是在Blend中却很简单。Blend的学习曲线有一些陡峭,但是是完全值得的。

  1. 7. 优先使用Silverlight Toolkit

  Silverlight Toolkit是由微软提供的一系列的Silverlight控件、组件和工具的集合。Silverlight Toolkit独立于Silverlight自身的发布周期,由微软Silverlight开发团队负责。通过积极向社区发布产品信息,得到用户反馈,然后为开发者和设计者快速添加新功能。Silverlight Toolkit完全开源,整个集合包含了所有开源代码、单元测试、示例代码以及文档,提供了超过26个新的控件涵盖图形绘制、样式布局以及用户输入等多个方面。

  1. 8. 需要注意的是,任何人都可以通过Silverlight Spy或者.NET Reflector来查看已发布的Silverlight应用程序的代码。如果你的应用程序是基于互联网的,最好进行代码混淆。再辅以一些安全限制,或者采用你在其他Silverlight应用程序中看到的方式。

  1. 9. Silverlight的XAP文件其实是更换了后缀名的Zip文件。你可以使用一些外部工具例如7zip,将文件进一步压缩。这些工具还可以打开XAP文件检查项目的内容。

  1. 10. 如果并不是所有用户都需要某个文件,该文件不应该打包在XAP文件中。每一个反对这个说法的人都会说:“带宽是廉价的”,但是如果你有50到100个图片或者别的二进制文件,那么代价会是高昂的。总之我只会把所有用户都必须的文件打包在XAP中。
  2. 11. 你可以将Silverlight部署在IIS之外的其他服务器上。在服务器上注册XAP文件处理后,只要客户机上安装了Silverlight插件,就可以访问Silverlight应用程序了。

  1. 12. 参加Silverlight技术社区,可以从中学到很多东西。我一般从Silverlight官方网站开始,再到Silverlight论坛。每天我都会访问Silverlight CreamAlvin’s Ashcraft’s Morning Dew,最后看一集John Papa’s Silverlight TV

  1. 13. 如果你掌握了XMAL,这些技术可以同时运用到Silverlight(废话),WPF,Windows Phone7, Lightswitch以及微软Surface

  1. 14. Silverlight可以在当前所有的主流浏览器包括Google的Chrome 6,IE, Firefox和Safari上工作,操作系统支持Windows和Mac OS。通过Moonlight可以实现Linux的支持。

  1. 15. Silverlight可以确保用户在不同的浏览器上得到相同的体验。对于HTML页面来说,在Firefox上可以正常工作的,那么在IE 6.0上不知道会发生什么。但是Silverlight是基于插件的,每个浏览器上都可以确保得到相同的体验。

  英文链接:http://www.codeproject.com/Articles/129554/15-Things-Ive-discovered-about-Silverlight.aspx

时间: 2024-09-14 09:01:21

一起谈.NET技术,你应该知道的15个Silverlight诀窍的相关文章

你应该知道的15个Silverlight诀窍

我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术.对于刚刚接触Silverlight的开发人员来说,这篇文章是最适合你的.这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍.如果你是一个全职的Silverlight开发的话,我希望你能了解并掌握它们. 我不会谈论MVVM,Prism或者MEF这些复杂的以至于吓跑读者的东西. 1. 下图中黄色的高亮文字代表了Silverlight 对象的MIME类型,而

Web开发/设计人员应当知道的15个网站_相关技巧

ColorCombos 开发/设计人员应当知道的15个网站_相关技巧-web前端开发技巧"> 在进行网站设计的时候,开始步骤的其中一项(也是最重要)的内容是选择出一个配色方案. Color Combos让你可以浏览上千个不同的颜色组合,以便从中为你即将开始的设计汲取灵感.其配色方案可按颜色浏览. LIpsum 风靡之至的Lorem Ipsum文字,其大名谁人不知?哪个不晓?(译注:查了才知道,这是指一篇用于测试排版设计的拉丁文文章,从15世纪开始就被广泛使用,文章因以Lorem Ipsum

Web 设计与开发者必须知道的 15 个站点_相关技巧

 ColorCombos 开发者必须知道的 15 个站点_相关技巧-汇付天下开发者站点"> 配色是 Web 设计的首要大事,Color Combos 帮你预备了数千种配色方案,可以根据色调浏览选取.LIpsum Lorem Ipsum Text 是一中自造的,字典中不存在的单词,是在演示页面结构的时候,需要加文字的地方使用 Lorem Ipsum Text 填充可以避免用户因关注文字的意思而分神.Lipsum.com 可以帮你生成制定数目的 Lorem Ipsum 单词.What the

你应该知道的15个ERP部署失败的教训

难怪ERP有这样糟糕的名声:在复杂且昂贵的企业软件市场发展历史中,充满了供应商恶意中伤.离谱的炒作和史诗般的失败故事. 您可以了解到对于一个公司来说,企业资源计划(ERP)软件从一个想法到部署是多么的重要:数十亿美元,比如ERP故障和客户关系管理(CRM)部署失败的诉讼费用现在已达数十亿美元.法维翰咨询公司(Navigant Consulting)总经理格雷格·克劳斯(Greg Crouse)担任专家法庭证人或顾问,有25年管理大型项目经验,从这些诉讼缠身的公司内部全面了解了这一点. 对2015

做一个优秀程序员应该知道的15件事_其它综合

1. 懂得分享.尽可能使用开源,并且当你有能力的时候,要对其有所贡献.聚全社会之智慧,胜过某些"大"公司之短视. 2. 公平竞争.尝试其他技术.框架.方法和观点.不要总以为只有你的选择才是可行的.别的选择也有可能比你的要强得多.要以开放的心态,来检验其他人的选择. 3. 不要攻击他人.像第2条所说的,不要仅仅因为别人恰巧使用.Net.Java或PHP就去攻击他们(我在这方面有一次教训).有时,它们或许要比你所认为的更有效.只要别人不是一无是处,你就可以从他们那里学到很多东西. 4. 自

前端程序员应该知道的 15 个 jQuery 小技巧

下面这些简单的小技巧能够帮助你玩转jQuery. 返回顶部按钮 预加载图像 检查图像是否加载 自动修复破坏的图像 悬停切换类 禁用输入字段 停止加载链接 切换淡入/幻灯片 简单的手风琴 让两个div高度相同 在新标签页/窗口打开外部链接 通过文本查找元素 在改变visibility时触发 AJAX调用错误处理 链式插件调用 通过使用jQuery中的animate 和scrollTop 方法,不用插件就可以创建一个滚动到顶部的简单动画: // Back to top  $('.top').clic

一起谈.NET技术,关于Windows Phone数据库和Silverlight本地文件操作

Isolated Storage是针对各个独立用户分配的单独的虚拟存储空间,在Windows会存储在\%AppData%\LocalLow\Microsoft\Silverlight\is, 而在Mac OS X会存储在 /Users/<user>/Library/Application Support/Microsoft/Silverlight/is. Isolated Storage有点像cookies,每个用户独立存储,Isolated Storage的容量是有配额的,但是可以通过调用S

[转载] Flash开发者需要知道的10件事

来源:http://www.infoq.com/cn/news/2010/02/Flash-ten-things 此前,我们发布的新闻谈到了每个Flex开发者需要知道的10件事,本文将继续这个主题,谈谈每个Flash开发者需要知道的10件事. 近日John Lindquist谈到了在为Roundarch公司招聘Flash/Flex开发人员时的一些感受.他认为最难的地方在于问什么问题才能最好地了解到应聘者的Flash /Flex开发技能.因此,他给出了一个列表并说到:"根据我的经验,通过这个列表能

《抓住听众心理——演讲者要知道的100件事》一第 1 章 人们是怎样思考和学习的

第 1 章 人们是怎样思考和学习的 抓住听众心理--演讲者要知道的100件事 "我从来没有'教导'过我的学生:我只是尝试提供一些他们可以用来学习的东西." --阿尔伯特·爱因斯坦(Albert Einstein) 如果你想与人有效地交流并有说服力,你就需要知道人们是如何思考.过滤信息以及认知的.让他们接受信息不是个问题,如果你想让听众记住.采取行动,那么你呈现信息的方式应该与他们思考和学习的方式相匹配. 1 人更容易处理少量信息 人类的大脑一次只能处理很少量的信息--确切地说是有意识地