你的位置:首页 > ASP.net教程

[ASP.net教程]信息系统实践手记1


说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题。笔者对其中比较典型的加以收集,描述,归纳和分享。

摘要:介绍典型的客户端中列表数据展现的6个要素。

正文

 

1.客户端和服务器

一般典型的信息系统总可以分为前台(也称“客户端”)和后台(也称“服务端”)。

服务端一般提供一些列后台功能,和DB交互,从经典的J2EE到现在的restful接口,它将业务的数据处理逻辑从呈现层的UI拆分开,数据很顶层宏观的解耦合,基本深入人心,人人遵守。

客户端一般提供UI界面供用户使用,主要分为BS和CS两种。

BS方式:用WEB技术开发的客户端UI界面,只要在浏览器打入web地址就能调出UI,使用方便但界面呈现相对弱于CS。不过近来HTML5等都很有展现力。

CS方式:用比如JAVA或.NET开发的,利用OS本地类库(WINAPI/MFC/WPF/GDI/DIRECTX/JAVA等)开发,有现成控件可用,运行速度高于BS,界面元素更丰富。

使用哪种方式因公司不同,研发策略,技术路线,开发团队能力,使用场景,用户要求,合同内容等而定。

2.为开发GIS应用采用CS中包含BS的方式

为开发GIS(地理信息)应用,需要和GIS引擎交互,典型的有:百度地图API,公安标准PGIS,开源的arcGIS,第三方GIS供应商如数字位图等。这些API大都提供JS接口,也有FLEX(Flash)接口,有些是restful风格,封装的不错。其实都比较适合开发网站应用,或手机APP。因为现在典型的GIS应用主战场都在手机APP(安居客等),或网站(百度,大众点评等)场景中展开,所以都提供JS接口方便开发。

但笔者遇到的项目是传统的IT项目,客户需要开发基于GIS的应用,但只能用CS结构实现。所以经过尝试,采用了一种混合的方法,应该也有不少人在用。就是windows操作系统下的CS客户端中嵌入了IE的OCX控件,在控件中调用GIS引擎的JS/FLEX的API类库。此方式稍有点复杂,而且对于WPF层,JS层,以及和后台SERVER的信令交互,消息数据传递,局部页面PAGE的异步更新,都有一些注意点(在之后的手记中再仔细描述),大家遇到类似上下文环境可参考。

3.列表数据展现的6个要素

讲了半天,转入正题。一个嵌入了IE的OCX控件并以JS调用GIS引擎的CS客户端,一般可以用C#/WPF来开发。客户端的内容和展现上其实分2两种截然不同的部分,既有GIS地图展现相关的类似WEB的JS内容呈现,又有典型的CS对话框,窗口,设备列表等展现。两种风格混在一起,可能让开发人员不太适应。

另外,无论大小公司,研发部门总有开发规范,但实际RUN起来时流程执行到什么程度就很难把控了。下面针对一个具象的问题“列表数据的展现”,比如需要显示一个dialog,里面哪怕只有一列数据,它显示一万个设备ID,怎么做呢?三个开发会做出三个东西来。在实践,经过总结并和用户交流,给出如下6点,则基本圆满。

  1. 使用高效控件(数据量大就要考虑UI速度。比如MINIUI框架的listbox显示超过数百行就不太好用,可以改为grid控件或其他)
  2. 支持数据分页(如果列表数据字段可能超过200行,就应该分页,否则不方便用户查看)
  3. 支持数据排序(数据字段总是必须要排序的,不排序的信息毫无价值,用户脑中默认是排序的)
  4. 支持数据搜索(即使分页和排序了,还必须提供搜索功能,这样的组合拳打下来,用户就比较满意了,界面很友好,功能多层次。)
  5. 支持滚动条(因数据项本身宽度可能很长,且记录行也很多,在有限的dialog可视区域内很难看清楚,必须支持滚动来提升展现力。)
  6. 支持TIPS提示(有时滚动很麻烦,为了临时看一下数据,应支持鼠标悬停到某个数据项的时候以tips形式显示“额外信息”,界面就更友好,展现力层次丰富了。)

以上6个要素,看着容易,说说也简单,却往往都忘记和缺漏,读者可以自己摸排比对一下。最终用户要么能忍受BADUI,要么以BUG或REQ(需求)的形式反馈给产品经理,然后PM再排入开发计划,何苦呢?将“6要素”列入《UI设计规范》之中,以此标准来开发和测试所有类似情况,标准化UI元素。

 

说明:本文涉及的诸如“百度”,“安居客”,“大众点评”,“数字位图”等专有名词,包括协议名称,软件名称等,皆来自于网络信息,仅供参考。

 

[END]