你可能不知道的15个Silverlight诀窍
创始人
2024-07-20 22:50:42
0

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

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

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

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

Silverlight

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

Silverlight

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

Silverlight

如果你改变链接如下:

  1.   style="text-decoration: none;"> 
  2.     
  3.   alt="Get Microsoft Silverlight" style="border-style: none"/> 
  4.  

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

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

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

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

  1. public MainPage()  
  2. {  
  3.     InitializeComponent();  
  4.     Service1Client client = new Service1Client();  
  5.     client.DoWorkCompleted += new EventHandler 
  6.                  (client_DoWorkCompleted);  
  7.     client.DoWorkAsync();  
  8. }  
  9.  
  10. void client_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e)  
  11. {  
  12.     MessageBox.Show(e.Result);  

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

silverlight 

silverlight

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

silverlight

7. 优先使用Silverlight Toolkit。

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

silverlight

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

silverlight 

#p#

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

silverlight

10. 如果并不是所有用户都需要某个文件,该文件不应该打包在XAP文件中。每一个反对这个说法的人都会说:“带宽是廉价的”,但是如果你有50到100个图片或者别的二进制文件,那么代价会是高昂的。总之我只会把所有用户都必须的文件打包在XAP中。

11. 你可以将Silverlight部署在IIS之外的其他服务器上。在服务器上注册XAP文件处理后,只要客户机上安装了Silverlight插件,就可以访问Silverlight应用程序了。

silverlight

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

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

silverlight

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

silverlight

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

原文链接:http://www.cnblogs.com/powertoolsteam/archive/2011/02/14/1954098.html

【编辑推荐】

  1. Silverlight程序集缓存巧妙设置 优化用户体验
  2. 如何部署Silverlight及Web Service
  3. Silverlight 之重
  4. Silverlight 之轻
  5. 在Silverlight应用程序中调试WCF服务

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...