博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET 应用程序界面开发经验总结 设计良好的程序的表现之一就是细节做的还可以...
阅读量:4561 次
发布时间:2019-06-08

本文共 2001 字,大约阅读时间需要 6 分钟。

做程序主要体现的是细节,细节方面做的好,用户会觉得你的软件比较专业。良好的架构与设计模式可以使维护方便。在用户这边,要花一些心思琢磨用户的想法。有时候用户比我们的界面设计还专业,用户有很强的行业知识,他见识过的同行业的软件比我们多。下面的这几点界面设计的体会和经验,来自于用户,在这里与大家分享。

1 如果要写数据项到注册表中,最好以加密的形式保存

虽然.NET提倡的是XCOPY,但有时还是需要写一些必要的信息到注册表中,以减少用户的配置出错的可能性。比如,自动更新功能中,需要把自动更新的网址写到注册表中。ASP.NET Web程序如果不使用默认的80端口,也推荐在安装程序时把Port写到注册表中。对于需要用户反馈的程序,一种默认方法是把用户的feedback内容发送到邮箱中,这时需要提供邮箱的注册用户名和密码,这种情况是必须要加密的。

有时候不小心看了一下自己的注册表(regedit)内容,也是惨不忍睹,大量的程序都会写数据项到注册表中。

2 界面划分的基本原则是信息分类,将同类的信息放在一起,集中显示。

这是物料主档的功能的界面,先分大类,用Tabcontrol分开,基本信息,环保指令,包装规格,计划数据,附件信息。大类里面再小的类别,用GroupBox分开,比如控制点,规格。

规格这个地方,使用了ComboBox,这个有待于商量。当选择的数据项比较多时,应当使用ComboBox,数据项比较少时,我以为用RadioButton要合适一些,这也取决于空间的大小程度。

这个图片中有两组Item Type,上面一组是ComboBox的翻版,下面一组对文字进行了简化调整。

使用ComboBox的好处是,当它的item发生变化时,界面不需要变动,而RadioButton做不到这一点,也许这是选择ComboBox的一个很好的理由。

对信息分类导向的界面设计国中,菜单项的深度也应该尽量保持在三层以内,对相同的功能进行分类。请看下图

只用了二层,相同的功能菜单里面,还可以用分割符号分开,以增加可读性。

 

3 界面中的名词选择尽量选择专业的词汇,避免通用的词汇。比如以前我做ERP系统控制面板,总会加上Managment这个词语,如Sales Management/Purchasing Management以表达销售管理,采购管理,Management这个词语应该去掉。在很多信息分类的TabControl中,通常第一个tab page的名字叫General或者上面例子中的Basic Information,或General Information,当系统中有多个这样的界面布局时,应该保持一致。比如上面的物料主档用了Basic Information,其它的地方,在基本信息的tab page中也应该用Basic Information。举例说明

采购收货的界面,第一个tab page使用General Information。

物料清单的界面,第一个tab page也使用了General Information。

 

4  界面设计时字体的选择。

以我的选择,功能界面中使用Microsoft Sans Serif, 8.25pt字体。状态栏(status)和菜单(menu)使用默认的Segoe UI, 9pt。对于功能界面,除了规定程序员在设计时使用指定的字体外,还在运行时,循环遍历一下界面中的界面控件,对不是标准字体的控件予以调整。字体统一,界面才看起来整洁,美观。

不推荐在控件中使用特殊的字体,尽管你可以在部署的时候把字体也拷贝到目标机器中。Crystal Report的报表中,需要使用一些特殊的字体,运行报表前应该检测字体是否存在。比如你可以把字体以嵌入的资源的方法嵌入到程序集中,如果目标机器的指定的字体不存在,可以从程序集的资源中释放字体到字体文件夹中。

 

5 对可能造成数据无法恢复的操作必须提供确认信息,提供用户放弃选择的机会。比如删除数据,退出功能时没有保存数据,耗费很长时间的MRP运算。这在开始操作前,要给用户有反悔的选择。

对于删除确认,有一种情况,就是对用户的设计予以认可,充分信任。比如用户在设计菜单界面时,要删除一条菜单,这时,不应该弹出确认删除的对话框。Visual Studio中删除一项MenuStripItem时,没有要我们确认删除。

正准备Delete菜单项中的New项,Visual Studio会认可你的操作,没有要你确认之后再删除。

因为这个理由,我在自定义的Menu Designer,Form Designer,Workflow Designer中都实行这个策略,充分信任用户的操作。

转载于:https://www.cnblogs.com/JamesLi2015/archive/2012/01/06/2313920.html

你可能感兴趣的文章
jQuery 跨域访问问题解决方法
查看>>
谨慎能捕千秋蝉(一)——XSS
查看>>
Spring、SpringMVC、Spring Boot、Spring Cloud 概念、关系及区别
查看>>
iOS effect & swiper delete components
查看>>
CSS3 & Grid Layout All In One
查看>>
《机器学习实战》学习笔记第四章 —— 朴素贝叶斯法
查看>>
承接上篇scanf函数何时取&问题
查看>>
python笔记 - day4-之装饰器
查看>>
HttpWebResponse远程服务器返回错误: (500) 内部服务器错误
查看>>
关于.net MVC5+EF6 网站部署的问题
查看>>
异常 : identifier of an instance of com.mi.domain.Department was altered from 2 to 1
查看>>
实现托管代码调用非托管代码以及非托管代码调用托管代码->COM Interop
查看>>
简易乘方算法
查看>>
leetcode - Unique Paths
查看>>
舵机控制
查看>>
句柄类与继承
查看>>
cocos2d-x-3.1 事件分发机制 (coco2d-x 学习笔记七)
查看>>
多项式问题
查看>>
服务器实现的多种方法汇总
查看>>
理解jquery的$.extend()、$.fn和$.fn.extend()
查看>>