在Silverlight项目开发中,一些基本原则可以参考如下:

  1. 尽量使用代码控制;
  2. 尽可能早的计划好所有的用户控件;这样可以提前预期控件之间相互运作情况,便于整合项目;
  3. 尝试分割不同功能到不同的用户控件; 现在无论国内国外,开发队伍通常来说都是3个人以上,分割不同功能到不同的用户控件,可以减少相互之间的冲突和影响; 另外,在测试的时候发现问题,对于不同的小功能区域,方便Bug定位;另外也方便功能模块的再利用。 这个是现在Web项目开发的一个常用规则。
  4. 尽量少用Loaded事件;
  5. 初始化的问题; 在每个用户控件中,需要创建Initialize和Deinitialize公共方法。  在实际项目中,你可以把Event Handlers或者必须要运行一次的代码,添加到Initialize方法中; 另外,也可以不用添加新的构造函数,直接传递参数到Initialize方法,通过New MyUserControl()使用这些参数; 最后,你可以使用Deinitialize方法清空控件,如果你调用了需要自定义的控件,使用Deinitialize方法是非常必要的;
  6. 不要在XAML添加Event Handles; 因为XAML是属于前台设计人员,而Event Handling属于开发人员,所以,Event Handler非常容易使用代码进行添加;另外一个原因,如果你使用代码添加了一个Event Handler,当该事件的控件名称改变或者该控件被删除,编译器会提出错误说明; 但是如果把Event Handler放在XMAL,当该事件的控件名称改变或者该控件被删除,项目将返回一个常规异常,没有详细错误信息提示;
  7. 认真设计项目布局; 我项目起步时,浪费了许多时间,在项目布局上,如果,布局合理,一定能节省很多开发时间;这样就需要开发人员对Grid,StackPanel,Canvas,Border,Popup,ScrollViewer,DockPanel等布局控件有深刻的了解;通常,你会发现,Grid非常适合做Header,Footer,Sidebar等等; 而复杂的布局结构,建议使用Canvas,需要注意的是,如果Canvas的高和宽是固定的,这样就很容易造成布局混乱,这点一定要注意;如果需要调整子控件的布局,推荐使用StackPanel;设计Silverlight项目布局,通常我们习惯使用Expression Blend,但是,强烈建议你,在使用Blend后,需要在VS下对XAML代码进行一次核查,这样可以确认各个控件的参数正确,同时也可以删除Blend自动产生的多余代码;
  8. 尽量避免使用固定的高度值和宽度值;在不设置固定的高度和宽度时候,Silverlight会根据你的解析度自适应浏览器界面,同时,各个控件将会自动缩放,以及排列位置; 另外,尽量不要使用负值的Margin,防止样式变形;
  9. 不要将机密信息放在代码中; 众所周知,Silverlight是一个客户端技术;用户在使用的同时,将会下载XAP文件到本地,这样非常容易被反编译; 所以,一定不要把敏感的机密数据放在代码中;
  10. 不要使用Image作为按钮控件; 在Silverlight1.1中没有Button控件,所以我们使用Image作为按钮; 但是在Silverlight2或者3中,已经提供了Button控件,我们需要尽量使用Button控件; 这个原则也适合其他控件,尽量使用Silverlight提供的控件,方便状态管理和事件管理;
  11. 在项目性能上,尽量减少XAP的尺寸,提高加载项目速度,另外,减少各个用户控件的载入时间; 避免使用Windowless=True;
  12. 使用Web Service进行服务器数据存取; 因为Silverlight是运行在用户主机的,所以不能直接和服务器或者数据库进行通讯,当前有很多种方式可以存取服务器信息和数据库,但是推荐使用Web Service(WCF),个人认为这个方法是最简单,最快捷的;
  13. 小心使用Isolated Storage; 一定不要把机密信息放在Isolated Storage;

转载于:https://www.cnblogs.com/Dlonghow/archive/2009/07/10/1520253.html

Silverlight 项目开发准则参考相关推荐

  1. 微软Silverlight 5开发书籍汇总

    Microsoft Silverlight是一个跨浏览器的.跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式应用程序.Silverlight提供灵活的编程模型,并可以很方便地集成到现 ...

  2. 轻松创建Silverlight 4开发环境

    在银光中国网有一篇"轻松创建Silverlight开发环境"文章,相信帮助了不少Silverlight新手,不过该文章介绍的是Silverlight 3开发环境,本篇将基于上文进行 ...

  3. 总结开发Silverlight项目准则 [转]

    这篇是加拿大国庆放假的时候总结的,以前发到了cnblogs和CSDN,今天同步一下51CTO博客. 加拿大国庆节国庆节刚刚过去,昨天Team开会,对前期Silverlight项目进行了总结,根据自己的 ...

  4. 总结开发Silverlight项目准则(转)

    尽量使用代码控制: 尽可能早的计划好所有的用户控件:这样可以提前预期控件之间相互运作情况,便于整合项目: 尝试分割不同功能到不同的用户控件: 现在无论国内国外,开发队伍通常来说都是3个人以上,分割不同 ...

  5. Silverlight C# 游戏开发:项目开发实例和小技巧索引

    Silverlight C# 游戏开发:项目开发实例和小技巧索引 相比于技术文章而言,本索引中包含的都是独立的项目,争取按照每个独立的项目开发来编写系列,全部为原创,开发过程可能语无伦次,可能相当幼稚 ...

  6. 在项目开发中应该遵循的准则

    根据我公司实际情况,大致列出在项目开发中应遵循的步骤原则.在各程序员遵循原则的情况下,方能开发出健壮有效的程序,且能提高自己的编程素质. 1.在项目开发初期应该有项目的详细原型.鉴于程序员文档能力有限 ...

  7. Django开发准则与最佳实践

    最近在网易云课堂学习一门django高级实战教程,本文是学习课时14.15的一些笔记 Django开发准则与最佳实践 一.优先使用自定义用户模型 继承BaseUserManager和AbstractB ...

  8. [转载]小软件项目开发的管理(好长)

    小软件项目开发的管理 创建成功的工程 成功项目管理的秘密 更好地领导一个项目的诀窍 参与变革,走向成功 CMM/TSP/PSP讲义稿 开发流程中的可用性 软件开发的管理和控制 如何组织软件开发团队 软 ...

  9. 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:吴忠强,东北大学,Datawhale成员 本篇文章虽然是VsCod ...

最新文章

  1. 这份GitHub万星的机器学习算法面试大全请大家注意查收
  2. oracle判断侦听状态,oracle 监听状态为BLOCKED
  3. excel柱状图堆叠图显示总和_Excel 的堆积柱形图上,怎样才能显示堆积图的总和?...
  4. python图例重复显示_matplotlib中的legend()——用于显示图例
  5. TensorFlow 2——替换【tensorflow.compat.v1.contrib.rnn.LSTMCell】解决方案
  6. Eclipse GBK批量转UTF-8插件(转)
  7. js初化加载页面时ajax会调用两次的原因_在前端开发中,有哪些因素会导致页面卡顿
  8. Lesson 1 A puma at large
  9. php json json_unescaped_unicode,php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
  10. 中缀表达式、前缀表达式、后缀表达式
  11. 量子计算:一个即将破灭的泡沫?
  12. Python求方阵的逆矩阵与求非方阵的伪逆矩阵
  13. 小米MiSans字体安装教程
  14. 关于.length与.length()的问题
  15. HTML页面为什么设置了UTF-8仍然中文乱码
  16. IOT Core-设备接入网关
  17. 数据库系统概论②——关系数据库基础
  18. 内存:VSS/RSS/PSS/USS区别和监控
  19. 参数辨识法来调节simulink中的PI参数
  20. 怎样快速上手PPT制作?

热门文章

  1. 【深度学习入门到精通系列】目标检测评估之P-R曲线深入理解
  2. 机器学习(MACHINE LEARNING)MATLAB求解利润最大化问题【线性规划】
  3. python中如何调用java_在Python程序中调用Java代码的实现
  4. springboot数据源不正确_SpringBoot整合多数据源的巨坑!!!
  5. 企业网络推广专员浅析有利于企业网络推广的页面制作技巧有哪些?
  6. 网站托管运营需要注意哪些内容?
  7. simulink中mask设置_Mask Editor 概述
  8. mysql分析表增删改统计_MySQL增删改查|附思维导图
  9. pyspark AttributeError: 'NoneType' object has no attribute 'setCallSite'
  10. Intel 的 MKL是可以用来训练的——官方的实验也提到了训练