5 决定数据绑定的需求
数据绑定在应用中,提供了一种在用户界面的控件和数据或者逻辑组件建立连接的方式。数据绑定允许你将数据库的数据,或者是其他结构的数据进行显示或者和他们进行交互。数据绑定是绑定目标(用户控件)和绑定源(数据结构、Model、或者是表现层逻辑组件)之间的桥梁。
数据绑定控件是一些绑定到数据源的控件。例如:DataGrid控件绑定要一个集合。数据绑定通常使用在分离的表现模式(Views),绑定到Presenters或者是Controllers,或者是表现层的实体组件。
对于每一个用户界面技术,对数据绑定的支持,和具体的实现,都不尽相同。通常来说,都可以绑定控件和对象或者集合。但是,也有需要数据源实现接口和事件,才可以支持数据绑定,例如:WPF中的INotifyPropertyChanged,和Windows Forms中的IBindingList。如果你使用分离的表现模式,确保你的表现逻辑和数据组件支持所需的接口和事件,使得用户控件可以很容易的进行绑定。
通常有两种类型的绑定可以使用:
- One-way:单向绑定。改变源属性,自动更新目标属性,但是改变目标属性,不会影响源属性。这种适合使用在控件是只读的情况,如果没有必要监测目标属性的变化的话,可以选择单向绑定,避免不必要的负载。
- Two-way:双向绑定。改变源属性或者是目标属性,都会影响到对方。这种绑定适合用在可编辑的情况,很多控件都支持双向绑定,可以在数据源改变的时候影响到控件,也可以在控件改变的时候影响到数据源。
6 确定错误处理策略
用户界面组件是应用的外部边界,因此需要你选择适当的错误处理策略,最大化应用的稳定性,提供更好的用户体验。可以参考下面的步骤:
- 设计集中管理的异常处理机制。异常和错误处理是一个跨层的关注,应该使用分离的组件来实现,使它可以跨层访问。也更容易维护,提高复用性。
- 日志记录异常信息。记录异常日志是非常关键的,你可以用来发现和诊断错误。对表现层组件来说很重要。但是要小心个人身份信息和安全敏感信息,要小心日志的数量和位置。
- 给用户显示友好的提示信息。避免直接显示错误信息,应该提供有好的错误提示。考虑提示用户如何修改这个错误,或者是正确的格式。
- 允许用户重新尝试。在提示用户的情况下,还可以允许用户重新尝试。在一些情况下非常有用,例如网络超时、临时性的断网啊。
- 显示一致的提示信息。避免暴露敏感信息。
7 确定有效性性验证策略
一个有效的输入验证策略可以帮助过滤不希望的输入,恶意的数据,保护你的应用不受攻击。典型的,在表现层的输入验证,业务规则验证发生在业务逻辑层的业务组件。在设计验证策略的时候,一定要确定所有的输入数据都是合法的。例如:从web客户端的一个输入,参数(get、post、查询字符串),隐藏字段,viewstate都应该被验证。通常情况,你应该验证所有从不可信源来的数据。
对于应用的客户端组件和服务端组件来说,例如RIA和富客户端应用,一定要在服务端再次验证那些已经在客户端进行过的验证。在客户端进行验证,如果用户输入非法的数据,可以带给用户快速的响应。可以节省时间和带宽,但是要意识到恶意的攻击可能会绕过客户端的验证。
在确定了需要验证的数据之后,再来决定你的验证技术。通常包括:
- 支持已知的正确数据。只是接受所有符合条件的数据,拒绝所有其他的数据。
- 决绝已知的错误数据。接受不满足错误条件的数据。
- 审查。消除和翻译不合法的数据,使得输入数据安全。
不同的表现层技术使用不同的验证方式。例如:WPF,使用xaml的转换器和验证规格对象。在Windows Forms中使用验证和绑定事件。
模式 & 实践小组的推荐
- Composite Application Guidance for WPF and Silverlight
- patterns & practices – Enterprise Library
- Software Factory
- patterns & practices - Unity
未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。