这篇文章列出了我使用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 =newMyOldWebService();
stringstrReturn =srv.GetSomeValue();
txtValue.Text =strReturn;

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

publicMainPage()
{
InitializeComponent();
Service1Client client =newService1Client();
client.DoWorkCompleted +=newEventHandler<DoWorkCompletedEventArgs>
(client_DoWorkCompleted);
client.DoWorkAsync();
}

voidclient_DoWorkCompleted(objectsender, 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 Cream 和 Alvin’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

转载于:https://www.cnblogs.com/Areas/archive/2011/09/14/2175486.html

你应该知道的15个Silverlight诀窍相关推荐

  1. 网络服务器最基本的是文件,你可能想知道的15个网络常用基础知识

    原标题:你可能想知道的15个网络常用基础知识 网络是一个复杂的系统,涉及知识很多.现在腾正小超人给大家分享15个常用的网络基础知识: 1) 如何查看本机所开端口 用netstat -a -n命令查看! ...

  2. 经验丰富程序员才知道的15种高级Python小技巧

    本文将介绍15个简洁的Python技巧,向着简洁更高效,学习易懂出发. 目录 1.通过多个键值将对象进行排序 2.数据类别 3.列表推导 4.检查对象的内存使用情况 5.查找最频繁出现的值 6.属性包 ...

  3. 每个开发人员都应该知道的 15 个 IntelliJ IDEA 快捷方式

    作为开发人员,高效地工作非常重要.这包括快捷方式,这些快捷方式对于快速工作和减少鼠标移动至关重要. 但是,初学者往往不知道哪些快捷方式可用或忘记使用它们.出于这个原因,在这篇文章中,我将为您提供 15 ...

  4. 关于Dalvik虚拟机你需要知道的15个问题

    Dalvik是Android系统中另一个重要的部分,包括虚拟机和一组重要的运行环境.它的设计非常巧妙,是个很好的一个手机终端的底层应用.本文就简单介绍Dalvik相关的15个问题. 1.大部分jvm是 ...

  5. 每个人都应该知道的15个大数据术语

    1.算法."算法"如何与大数据相关?即使算法是一个通用术语,但大数据分析使其在当代更受青睐和流行. 2.分析.年末你可能会收到一份来自信用卡公司寄来的包含了全年所有交易记录的年终报 ...

  6. Web开发人员应当知道的15个开源项目

    如今,构建网站和开发Web应用程序已经不仅要求开发人员是一名优秀的程序员,更需要聪明的程序员.这也就是说,在可能的情况下,重复使用已有的代码和应用程序,而不是自己重头开始. 开源由来已久,并且很多网站 ...

  7. 开发者都应该知道的15个API

    从AI到AR到运输和电话,这些Web API为开发人员提供了各种有趣的可能性. 艾萨克·牛顿说他站在巨人的肩膀上看得更远,对于编写代码的人来说,API就是精华.它们让程序员站在巨人的肩膀上看得更远. ...

  8. 关于 Win 8 RT 你应该知道的 15 件事

    2019独角兽企业重金招聘Python工程师标准>>> 这次的Win 8直接来了一个Win 8 RT, Win 8 Pro兄弟版.很多用户只知道Win 8 RT为 ARM 硬体而设, ...

  9. t–sql pl–sql_SQL日期时间–您应该知道的15个重要功能!

    t–sql pl–sql Hey, folks! Hope you all are doing well. Today, in this article, we will be highlightin ...

最新文章

  1. ajax提交表单,导致浏览器卡死
  2. 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest
  3. Java实现搜索回溯经典题目
  4. linux 故障注入_基于chaosblade的故障注入平台小试
  5. 计算机组成原理CF和ZF,2017年广东工业大学计算机学院832计算机组成原理考研仿真模拟题...
  6. element里面popover里面的高度_五斗柜的高度一般是多少 五斗柜放在什么位置好
  7. 人心涣散亏损扩大 优酷土豆合并宣告失败
  8. backup exec 安装时报‘Microsoft sql express安装失败
  9. 2021安装VSCode教程并创建第一个项目,同时设置成中文语言(超详细)
  10. android p如何添加开机铃声
  11. C语言输出图形:宝塔形(三角形)回文数字。即:第一行1,第二行121,第三行12321……
  12. 李阳疯狂英语学习方法大全集-英语,单词
  13. 如何确定今天是星期几
  14. 高效上网教程---资源软件搜索技巧(搜索好用软件或者app去哪些网站)
  15. 技术人员如何创业:打造超强执行力团队
  16. 一姐们知道她老公外面有小三后,不但没哭没闹,反而对她老公特别好
  17. java得到选择的复选框_java怎么获取复选框的值_java学习记录20200817
  18. hadoop的小疑问:Map执行未结束便开始执行Reduce操作?
  19. [深度学习] - 网络模型训练过程的 loss 变化分析 (loss / val_loss / test_loss)
  20. 2016-6-2-第二个sprint

热门文章

  1. 移动端html模板卡片列表效果,移动手机Material Design风格信息卡片UI设计
  2. 好分数a1a5_好分数怎么查看班级排名 七年级学生成绩查询
  3. 3.4.3 后退N帧协议(GBN)
  4. github初次使用
  5. PCIE BAR空间
  6. 工业电脑中PCI、CPCI、PXI插槽的区别
  7. C++实现大数的乘法
  8. 程序员过关斩将--面试官再问你Http请求过程,怼回去!
  9. 访中科曙光智能计算技术总监许涛:重新认识面向未来的AI服务器和云计算中心...
  10. poj2774 sa模版