开发者社区> powertoolsteam> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

你应该知道的15个Silverlight诀窍

简介: 我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术。对于刚刚接触Silverlight的开发人员来说,这篇文章是最适合你的。这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍。
+关注继续查看

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

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

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

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

clip_image002

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

clip_image004

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

clip_image006

如果你改变链接如下:

<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的模板。一句话,除非有特别需要,否则不要开始从零开始你的应用程序。

clip_image008

clip_image010

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

clip_image012

  1. 7. 优先使用Silverlight Toolkit

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

clip_image014

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

clip_image016

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

clip_image018

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

clip_image020

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

clip_image022

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

clip_image024

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

clip_image026

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
“WPF老矣,尚能饭否”—且说说WPF今生未来(上):担心
近日微软公布了最新的WPF路线图,一片热议;对于老牌控件提供商葡萄城来说,这是WPF系列控件一个重要的机遇,因此,Spread Studio for WPF产品做了一次重要更新,并随着Spread Studio 8.0发布。
1044 0
[转]Silverlight 2 快报 和 Silverlight 3 初窥
【原文地址】Update on Silverlight 2 - and a glimpse of Silverlight 3 【原文发表日期】 Sunday, November 16, 2008 11:01 PM 我们上个月发布了Silverlight 2。
1147 0
你应该知道“.NET研究”的15个Silverlight诀窍
  我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术。对于刚刚接触Silverlight的开发人员来说,这篇文章是最适合你的。这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍。
737 0
Silverlight与WPF开发人员入门应该知道的十件事
【CSDN 陈秋歌编译】微软开发者社区部门项目经理Pete Brown在纳什维尔DevLink 2010会议上做了一个名为“10件事”的演讲。这个演讲包含了Silverlight与WPF开发人员入门时应该了解的十件事。
888 0
一起谈.NET技术,Silverlight 游戏开发小技巧:实现街霸4的选人界面
  上一篇只是一个引子,用来说明Projection的基本操作,游戏研发都是用这些小的基本功能慢慢组合出来,其实这一篇仍然是Projection,但是我们将会做一个比较复杂的应用使用silverlight的Projection,玩过街霸4,可能对它的选人界面印象深刻,但是做起来却不容易,因为要请美术...
614 0
+关注
powertoolsteam
经过30年来在控件领域的不断积累,葡萄城已经成为全球最大的控件提供商,旗下多款产品在国际软件行业屡获殊荣,并且在全球被数十万家企业、学校和政府机构等选用。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
小程序开发不求人电子书
立即下载
软件开发之禅
立即下载
低代码开发师(初级)实战教程
立即下载