C/S简易UI框架开发总结(1)
2011-03-09 21:54
1471 查看
这篇文章主要是对之前做过的一个UI简易框架(我也不确定能不能算框架,毕竟不是很完整,姑且就叫框架吧。)的总结,计划分3-4片写完。
其实这个框架并没什么技术含量,完全是一种个人总结性的记录,但是我还是会比较详细的记录一些设计思路和开发细节,希望能能够抛砖引玉,我也会继续把她完善好。
最初开发UI框架的想法源于对代码中大量粘贴复制动作的疲劳性抵触,一想到实体与界面控件的赋值(取值)、每个实体窗体的新增修改等业务状态的控制就烦,于是一开始就以简单易用、去繁就简为目标,实现的功能也确实非常简单,因此叫简易框架。
想虽然简单,但是真正动手前还是做了很多功课,读了SharpDeveloper和SmartClient_SOA(codeproject上的一个开源项目)代码。SharpeDeveloper显然太庞大,所以指抄袭改写了其中的Workbench的概念和插件体系(后来发现总用不大去掉了)。
1、 UI布局
UI框架的整体布局模仿Outlook样式,如下图:
最上面是菜单和业务功能的快捷按钮;
左侧是一个手风琴菜单,用于显示业务功能菜单,每个菜单项指向一个业务功能;
右侧为客户区,显示菜单项对应的业务窗口,它可以以MDI或SDI两种风格显示业务窗口(组件),业务窗口(组件)可以是网格、实体编辑窗口(组件)也可以是其他任意自定义组件;
右侧下方可以显示一个通知区,用于对客户显示区的补充;
2、 UI组件类设计
通过对常用UI组件的抽象,框架把UI组件分成以下几类:业务控件类和容器类及调度类;业务控件类主要有实体控件类组件、网格类组件、其他显示于客户区的组件;容器类则是用于提供对SDI和MDI的支持;调度类用于处理调用关系;
2.1 工作台类(Workbench):就是主窗体,负责显示手风琴菜单,处理菜单指令和根据需要显示、维护客户区的组件。
2.2 业务窗口类(ViewBase):Workbench的一个客户区显示项就是一个View,所有的客户区控件都继承自ViewBase,Workbench会为每个客户区组件(View)自动创建相应的容器以便把他用合适的方式显示到客户区,由于不同的业务功能可能会有各异的业务动作(菜单或快键),因此他具备自定义菜单能力。
2.3 网格类控件(GridView):一个用于显示多行数据的客户区组件,它继承自ViewBase,实现网格数据的绑定,新增、修改、删除、审核(自定义)等业务动作的调度。网格类控件可以自定义网格列、排序、列次序、条件样式等。
2.4 实体控件类(EntityControl):继承自UserControl,主要用于实现业务实体的用户界面,并负责界面到业务实体和业务实体到界面的数据绑定,这个控件可以同时支持单一实体和主细表实体;一个网格类控件(GridView)通常会在客户出发新增、修改等业务动作时调用实体控件类完成相应的业务功能。
写的有点乱,忽然发现想说的太多,又不知道从何说起,表达能力太差了,大家将就看吧,希望通过博客园能提高我的表达能力,阿门。
其实这个框架并没什么技术含量,完全是一种个人总结性的记录,但是我还是会比较详细的记录一些设计思路和开发细节,希望能能够抛砖引玉,我也会继续把她完善好。
最初开发UI框架的想法源于对代码中大量粘贴复制动作的疲劳性抵触,一想到实体与界面控件的赋值(取值)、每个实体窗体的新增修改等业务状态的控制就烦,于是一开始就以简单易用、去繁就简为目标,实现的功能也确实非常简单,因此叫简易框架。
想虽然简单,但是真正动手前还是做了很多功课,读了SharpDeveloper和SmartClient_SOA(codeproject上的一个开源项目)代码。SharpeDeveloper显然太庞大,所以指抄袭改写了其中的Workbench的概念和插件体系(后来发现总用不大去掉了)。
1、 UI布局
UI框架的整体布局模仿Outlook样式,如下图:
最上面是菜单和业务功能的快捷按钮;
左侧是一个手风琴菜单,用于显示业务功能菜单,每个菜单项指向一个业务功能;
右侧为客户区,显示菜单项对应的业务窗口,它可以以MDI或SDI两种风格显示业务窗口(组件),业务窗口(组件)可以是网格、实体编辑窗口(组件)也可以是其他任意自定义组件;
右侧下方可以显示一个通知区,用于对客户显示区的补充;
2、 UI组件类设计
通过对常用UI组件的抽象,框架把UI组件分成以下几类:业务控件类和容器类及调度类;业务控件类主要有实体控件类组件、网格类组件、其他显示于客户区的组件;容器类则是用于提供对SDI和MDI的支持;调度类用于处理调用关系;
2.1 工作台类(Workbench):就是主窗体,负责显示手风琴菜单,处理菜单指令和根据需要显示、维护客户区的组件。
2.2 业务窗口类(ViewBase):Workbench的一个客户区显示项就是一个View,所有的客户区控件都继承自ViewBase,Workbench会为每个客户区组件(View)自动创建相应的容器以便把他用合适的方式显示到客户区,由于不同的业务功能可能会有各异的业务动作(菜单或快键),因此他具备自定义菜单能力。
2.3 网格类控件(GridView):一个用于显示多行数据的客户区组件,它继承自ViewBase,实现网格数据的绑定,新增、修改、删除、审核(自定义)等业务动作的调度。网格类控件可以自定义网格列、排序、列次序、条件样式等。
2.4 实体控件类(EntityControl):继承自UserControl,主要用于实现业务实体的用户界面,并负责界面到业务实体和业务实体到界面的数据绑定,这个控件可以同时支持单一实体和主细表实体;一个网格类控件(GridView)通常会在客户出发新增、修改等业务动作时调用实体控件类完成相应的业务功能。
写的有点乱,忽然发现想说的太多,又不知道从何说起,表达能力太差了,大家将就看吧,希望通过博客园能提高我的表达能力,阿门。
相关文章推荐
- C/S简易UI框架开发总结(3)
- C/S简易UI框架开发总结(2)
- 基于MVC+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理
- 基于ACE框架---C++多线程开发总结1,涉及 互斥量、读写锁、条件锁、基于条件锁的线程流水控制
- 【IOS 开发学习总结-OC-47】★ios开发之UI控件——UIAlertView与 UIActionSheet
- [转] PHP开发框架总结
- 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理
- angular JS 基于ionic框架 开发移动端项目 实现进入前台 判断用户权限 控制项目UI布局和tab的部门显示和隐藏
- 颠覆式前端UI开发框架:React
- 基于ACE Proactor框架下高并发、大容量吞吐程序设计既最近的一个产品开发总结
- Android QQ空间(Apad)项目总结---应用UI框架的搭建
- 安卓开发中常用的开发框架总结(安卓7大框架)
- .NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇)
- 轻量级的前端UI开发框架 - UIkit
- 基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts
- 权限管理和信息化系统快速开发框架源码学学习总结
- 【Facebook的UI开发框架React入门之九】按钮简介(iOS平台)-goodmao
- 2012年度最佳Web前端开发工具和框架总结
- [原创].NET 业务框架开发实战之十 第一阶段总结,深入浅出,水到渠成(前篇)
- 我用的一些Node.js开发工具、开发包、框架等总结