`
ribishuangba
  • 浏览: 292458 次
文章分类
社区版块
存档分类
最新评论

Silverlight编程小结

 
阅读更多

使用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实现服务端分页

分享到:
评论

相关推荐

    wpf编程宝典c#2010版pdf(全)1/3包,共118M

     1.6 小结  第2章 XAML  2.1 理解XAML  2.1.1 WPF之前的图形用户界面  2.1.2 XAML变体  2.1.3 XAML编译  2.2 XAML基础  2.2.1 XAML名称空间  2.2.2 代码隐藏类  2.3 XAML中的属性和事件  2.3.1 简单属性...

    wpf编程宝典c#2010版pdf(全)2/3包,共118M

     1.6 小结  第2章 XAML  2.1 理解XAML  2.1.1 WPF之前的图形用户界面  2.1.2 XAML变体  2.1.3 XAML编译  2.2 XAML基础  2.2.1 XAML名称空间  2.2.2 代码隐藏类  2.3 XAML中的属性和事件  2.3.1 简单属性...

    ASP.NET.4揭秘

    asp.net 4揭秘.第1卷》 第一部分 构建asp.net页面 第1章 asp.net framework概览2 1.1 asp.net和.net framework5 1.1.1 框架类库5 1.1.2 公共语言运行库10 1.2 asp.net控件11 1.2.1 asp.net控件概览11 ...25.4 小结882

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...

    CLR.via.C#.(中文第3版)(自制详细书签)

    》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    2.4 本章小结 15 第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 3.1.2 跨域交互缓存处理需求 17 3.1.3 页面回退管理需求 17 3.2 缓存处理机制 18 3.2.1 跨域缓存处理 18...

Global site tag (gtag.js) - Google Analytics