Silverlight开发的15个最佳实践

原创
开发 后端 前端
文章作者Kunal Chowdhury从2008年开始使用WPF/Silverlight进行开发,在这里给大家分享了15个关于WPF/Silverlight开发的最佳实践,希望这些技巧在你编辑XAML代码时能有所帮助。

【51CTO译文】Silverlight 4的发布,也让很多人更加的关注这款微软的产品。文章作者Kunal Chowdhury从2008年开始使用WPF/Silverlight进行开发,在这里给大家分享了15个关于WPF/Silverlight开发的***实践,希望这些技巧在你编辑XAML代码时能有所帮助。

◆在XAML文件中不要使用无用的xmlns命名空间,这样会导致Silverlight页面加载时间过长。

◆不要在单个XAML页面中增加多个相同的命名空间,这样会破坏XAML代码的可维护性,运行时多次加载相同名称的命名空间可能会引起各种内存问题。

◆为xmlns命名空间前缀使用合适的名字,例如,xmlns:commonControls就比xmlns:cctrl更有意义,这样可以避免将来命名空间的多次声明。

[[16546]]

◆Xmlns命名空间的前缀中尽量避免使用local,***用localControls或localConverters代替,在相同的程序集中可能有两个或多个命名空间(如Controls或Converters等),在这种情况下,使用合适的前缀名将有助于正确区别它们。

◆当增加一个无元素的控件时,***使用自闭合标签“/>”关闭,不要使用硬关闭标签“</tag>”,这样XAML代码看起来会更清爽。

◆如果资源没有被使用,***移除这些不必要的资源键,它们会消耗更多的内存,你可能会因此遇到很多恼人的问题,如果你后面会使用到它们,你可以随时来添加它们。

◆不要使用额外的面板(如Grid,StackPanel,Canvas等)。

◆如果你需要使用其它面板,首先应该尝试Grid,Grid拥有灵活的UI布局,对调整应用程序大小很有用。

◆不要企图给Silverlight页面中的所有控件起一个名字,因为在加载时会创建一些不必要的对象,只需要为那些后面将会用到的控件起一个名字即可,如果你在使用MVVM模式,你可以移除几乎所有控件的名字。

◆使用控件的Visibility属性代替Opacity属性隐藏内容,Opacity属性值设为0虽然可以起到隐藏作用,但内存占用和UI空间占用是不会减少的,相反,Visibility属性会释放内存和UI空间,因此可以将有限的空间放置其它控件。

◆在XAML代码中使用正确的格式,这样会使代码更好看,也更易于维护。

◆尽可能为XAML增加注释,当过了很久你再查看这些代码时,你才能想起当初这样写的动机,此外,如果是多人协作,合理的注释会减少其他人员的代码阅读和理解时间,促进协作生产力的提高。

◆使用StaticResource代替DynamicResource,首先它会提升性能,其次在开发时可以跑出异常信息,有利于调试。

◆移除不需要的样式。

◆如果你想跨应用程序共享你的样式,***在单独的文件中添加你的样式,如果只针对某个特殊的页面,***在页面资源文件中添加它们。

英文出处:http://www.kunal-chowdhury.com/2010/08/some-best-practices-for-silverlight.html       

作者:Kunal Chowdhury

原文名:Some Best Practices for Silverlight Application Development (XAML)

【编辑推荐】

  1. Silverlight 4 初学者的10大经典问答
  2. Silverlight 4中XAML解析的变化
  3. Silverlight走进了死胡同?银光之路注定不平坦
  4. Silverlight自定义控件管理二重奏 

 

 

 

责任编辑:王晓东 来源: 51CTO.com
相关推荐

2010-11-02 14:11:15

SilverlightWPF微软开发

2011-04-15 15:16:18

代码编程

2014-06-24 10:41:46

2023-11-06 08:55:31

2019-02-14 13:21:31

2012-03-29 09:18:47

HTML5WEB

2014-02-26 11:01:28

日志优化系统日志

2015-07-15 13:34:37

JS开发习惯

2018-05-02 13:59:01

大数据数据收集数据科学

2017-03-30 22:16:21

DevOpsIT应用程序

2020-06-10 09:57:23

Kubernetes日志容器

2020-06-12 07:00:00

Web开发项目

2012-12-13 09:47:50

2011-06-23 10:37:19

PHP

2023-06-09 19:01:03

软件开发

2017-05-03 19:32:28

持续测试持续集成工具开发

2010-06-30 10:27:12

私有云

2011-02-14 16:11:44

2010-11-15 09:13:22

云计算开发测试

2018-02-06 09:05:25

Java异常处理代码
点赞
收藏

51CTO技术栈公众号