Silverlight编程小结
来源:互联网 发布:软件和信息服务业统计 编辑:程序博客网 时间:2024/05/09 17:44
使用Silverlight做了几个项目了,有若干心得:
关于思维定式:
SL程序运行在浏览器或桌面(offline模式),这是一个客户端程序,一直做ASP.NET的人,可能有点儿不习惯。写SL客户端程序,其实就是在写Win Form程序,只不过针对的Framework不同。
关于使用MVVM模式:
1. 数据绑定 - 使用MVVM最基本的那一定是该模式带来的数据绑定的方便, 例如将View中的DataGrid数据源绑定到其对应的ViewModel中的某个集合类属性上。
2. Command绑定 - 用户通过与View的交互发出的操作请求,例如按钮的Click事件, 可以通过Prism的Command将对应的事件处理绑定到ViewModel的方法上。这样极大减少了View的CodeBehind代码,这种View与业务逻辑的分离, 好处之一就是方便了单元测试 - 测试可以针对ViewModel来写,其实这也是ViewModel与View低耦合的好处 - ViewModel可以绑定到不同的"View"上。
3. 是不是一定要杜绝View的CodeBehind中代码?不是。View中与View有关的逻辑代码,还是应该放在CodeBehind中,因为这是最直接的。
4. 事件交互:
4.1 前面提到的Command绑定,就是一种View到ViewModel的单向通讯 (View中触发事件,ViewModel中处理事件)
4.2 自定义事件 - 例如ViewModel到View的单向通讯,View与View之间的相互通讯
4.3 Prism 事件聚合器- 上面的自定义事件,有一个局限就是事件的通讯双方有一个耦合关系,至少有一方要引用到另一方。Prism中的事件聚合器,提供了一种模式,可以讲事件的双方分离开,降低耦合度。这在没有引用关系的View与View之间,View与ViewModel之间常用到。但是要注意事件处理方有多个实例的情况下,要使用事件过滤,还要记得适当的地方要退订所订阅的事件。
关于界面:
1. 自定义:很多情况下,需要修改控件的外观,涉及到对控件模板及样式的修改。控件的模板文件大多都遵循Parts and State模式,了解了这个,各种控件的模板修改就思路清楚了。
2. 使用了MVVM的数据绑定,有些时候可能在数据的显示上不能随心所欲,那么IValueConverter就是一个很好的帮手。
3. 很多控件中都有Attached Property 你也可以写自己的Attached Property 或者Attached Behavior
4. 界面中难免要用到各种资源文件,要熟悉SL对资源文件的引用方式 以及如何最好的管理资源文件
5. 重要的线程原则,这一点跟Win Form是类似的
Update:
5. 数据分页:没有RIA Services时使用Data Pager实现服务端分页
- Silverlight编程小结
- Silverlight使用小结
- 小结今天 Silverlight + WCF 收获
- Silverlight WCF 初尝小结
- Silverlight WCF 初尝小结
- SilverLight中的画刷小结
- Silverlight 3 - MultiThreading编程
- 编程小结
- 编程小结
- 编程小结
- 编程小结
- 编程小结
- 精通Silverlight——11.4 小结
- 精通Silverlight——12.7 小结
- Silverlight调用WCFRIAService 'Not Found'错误小结
- Silverlight应用程序和编程模型
- wince R3 silverlight编程概要
- Silverlight编程 之 路径问题
- RMAN体系结构之一
- 钱学森最后一次系统谈话:大学要有创新精神
- 笑话
- ShowHTMLDialog的用法
- 开源GIS
- Silverlight编程小结
- 关于VMware软件的一点使用心得
- 圣天狗是保护软件应用程序不被盗版和未经授权使用的硬件软件狗
- tomcat server.xml的配置说明
- 请问,怎么在论坛求助?linux和cygwin的
- 各种linux版本下载地址
- 系统架构师是怎样炼成的?
- 网络视频:“狼真的来了”是反击还是跑?
- Ubuntu 内核编译(从网上下载后编译)