本章讲述的是你在设计用户界面组件和表现层逻辑组件的时候应该有的步骤。首先需要理解用户界面的需求,选择适当的技术。然后决定如何将表现逻辑和数据绑定要UI控件上。确保你理解了用户界面中的异常错误处理和合法性验证。下面就是设计的步骤。
1 理解用户界面的需求
理解用户界面的需求是决定UI类型、技术、和控件类型的关键。你的用户界面应该被应用的功能和用户体验所驱动。
从认识应用的用户开始,理解用户希望使用系统完成的目标和工作任务。特别关注序列化任务和操作。决定用户是希望一个一步一步的结构化用户体验,还是可以同时进行多个任务的非结构化用户体验。作为过程的一部分,用户需要的信息和格式。另外,考虑用户体验的等级。这些因素都可以帮助你进行一个以用户为中心的设计。对你的技术选择影响很大的一个因素是用户界面的功能。确定用户界面是否一定要暴露丰富的功能和用户接口,是否一定要有快速的响应,是否需要图形化或者是动画支持。同时要考虑例如时间、货币等数据类型是否需要本地化。另外,要确定是否需要个性化的功能,例如用户可以在运行的时候选择布局和风格。
确保用户界面直观且容易使用,考虑如和布局和组织界面。用户如何导航。可以帮助你选择适当的控件和用户界面技术。理解一定要支持的物理的显示需求,屏幕大小,重定位。考虑访问需要,大字体和按钮。决定如何将相关的信息分组。决定用户快速查找信息的方式,搜索功能,清晰的提示,站点地图,其他适当的功能。
2 决定你需要的用户界面类型
在用户界面需求的基础上,你可以做决定需要什么杨的用户界面类型。在众多的用户界面类型中,每一种都有它自己的优点和缺点。经常会发现,你的用户界面需求可以用多种用户界面类型实现。也没有一种用户界面类型可以完全覆盖你的需求。
移动应用可以作为瘦客户端或者是胖客户端来开发。富客户端的移动应用可以支持离线或者是偶尔在线的联网方案。web或者是瘦客户端只能支持在线的方案。设备资源也是设计移动应用的时候需要考虑的限制条件。
富客户端应用通常是拥有一个图形化的用户界面,独立的,或者是联网的应用,可以部署在桌面或者是笔记本上。他们适合离线或者是偶尔在线的应用方案。富客户端提供动态的、高响应的用户体验,利用了本地的系统资源,也可以整合机器上的其他应用。
RIA应用通常就是一个web应用加上一个运行在浏览中的丰富的图像界面。RIA是典型的在线应用。它可以使用客户端计算机的处理能力。
3 选择适当的用户界面技术
在你确定了用户界面类型之后,就需要选择一个实现技术。
移动客户端可以选择下面的技术。
- Microsoft .NET Compact Framework。是.NET的子集,专门为移动设备设计。
- ASP.NET for Mobile。是ASP.NET的子集,专门为移动设备设计,不需要IIS。
- Silverlight for Mobile。Silverlight的子集,要求移动设备安装Silverlight插件。
富客户端可以选择下面的技术。
- WPF。
- Windows Forms
- Windows Forms with WPF User Controls
- WPF with Windows Forms User Controls
- XAML Browser Application using WPF
富Internet应用可以选择的技术。
- Silverlight
- Silverlight with AJAX
Web应用可以选择的技术。
- ASP.NET Web Forms
- ASP.NET Web Forms with AJAX
- ASP.NET Web Forms with Silverlight Controls
- ASP.NET MVC
- ASP.NET Dynamic Data
控制台程序可以使用的用户界面技术。
- Console
- Power Shell Commandlets
4 设计表现层组件
包括下面的三种组件:
这些组件在表现层支持不同的关注。使用依赖注入的抽象模式,使得你的表现层逻辑更容易测试。
用户界面组件
用户界面组件是显示数据和接收用户输入的元素。他们通常被看做是Views。可以参考下面的设计原则:
- 考虑将页面和窗体分离到用户控件中,最小化复杂性,支持控件重用。选择适当的用户界面组件,利用控件的数据绑定功能。
- 避免通过继承来重用代码。考虑使用组合而不是继承来创建可重用的表现组件。
- 避免建立自定义的控件,除非有特殊的显示需要。如果需要的话,可以考虑购买toolkit。如果一定要开发自己的控件,考虑扩展现有控件,而不是完全新开发。使用扩展现有控件的行为,而不是继承它。
表现层逻辑组件
表现层模型组件
未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。
分享到:
相关推荐
在“AADL学习笔记.docx”文档中,读者可以期待找到对这些概念的详细解释、实例演示以及如何将它们应用到实际项目中的指导。这份笔记对于正在学习AADL或准备采用AADL进行系统设计的人来说是一份宝贵的资源。
这份学习笔记不仅仅是一份理论知识的汇总,更包含了丰富的实践指导和案例分析,非常适合那些希望通过FreeRTOS提升嵌入式系统设计能力的工程师和学生。通过这样的学习材料,读者可以更加深入地理解实时操作系统的工作...
【WebService学习笔记】 一、基本概念 1. Web服务: Web服务是一种使应用程序能够在不同的操作系统、编程语言之间进行通信的技术。它定义了一种基于XML的消息传递标准,通过接口描述(如WSDL)来规范服务的使用。...
《51单片机RFID射频IC卡板子资料V2》是一个全面的资源包,旨在帮助开发者深入了解和操作基于51单片机的RFID(射频识别)系统。这个资料集包含了从硬件设计到软件开发的全方位指导,为初学者和有经验的工程师提供了...
9. **步步高字典**:可能是一个基于步步高学习设备的词典应用,涉及单词查询、发音和例句等功能,对于学习教育类小程序的开发有指导意义。 10. **Gank**:Gank.IO是一个开源技术分享平台,此小程序可能展示了如何...
分布式系统原理与范型是计算机科学中的一个重要...深入学习分布式系统原理与范型,不仅可以理解其背后的理论,还能掌握实际开发中应用这些原理的技能,对于提升在云计算、大数据处理、物联网等领域的专业素养非常有益。
4. **系统设计**:描述系统架构,可能包括SNMP代理、管理者、信息存储模块等组件,以及它们之间的交互方式。 5. **实现技术**:重点介绍Java在SNMP应用中的角色,可能使用了Java SNMP库如Net-SNMP或JSMPI,以及如何...
文件“xapp1115.pdf”和“xapp1115_v2_0.zip”可能是Xilinx应用笔记或设计示例,其中“xapp”通常代表Xilinx Application Note,即由Xilinx公司提供的技术文档,详细解释了如何使用他们的产品来解决特定问题或实现...
2. **MT6235_Design_Notice_V2-1.pdf**:MT6235是一款MTK的基带处理器,该设计通知可能包含了关于硬件设计、性能优化、功耗控制以及兼容性方面的指导,对进行MT6235相关产品开发的工程师来说非常关键。 3. **...